Skip to main content
POST
Request presigned upload URLs for a new model's images
Schritt eins des Presigned-Upload-Flows für große Dateien. Sende den Modell-name, category und Metadaten für die 1–10 files, die du hochladen wirst (die erste Datei ist das Cover). Die Antwort gibt eine Modell-id und pro Datei eine presigned PUT-upload_url zurück. PUT jede Datei an ihre URL, dann rufe POST /models/{id}/complete mit den hochgeladenen Keys auf, um die Verarbeitung zu starten. Erfordert den models.write Scope.
Nutze diesen zweistufigen Flow, wenn Bilder zu groß sind, um sie inline zu senden. Für kleine Bilder oder Remote-URLs ist POST /models einfacher. Der content_type jeder Datei ist einer von image/jpeg, image/png, image/webp; gib size (≤ 10 MB) an, wenn du sie kennst.

Autorisierungen

Authorization
string
header
erforderlich

Organization API key as a bearer token: Authorization: Bearer samsa_sk_....

Body

application/json

POST /models/prepare body — request presigned PUT URLs for large files.

name
string
erforderlich
Required string length: 1 - 100
Beispiel:

"Acme Brand Style"

category
enum<string>
erforderlich

Model category — one of style, object, person, setting.

Verfügbare Optionen:
style,
object,
person,
setting
Beispiel:

"style"

files
PublicModelFileMeta · object[]
erforderlich

Metadata for the 1-10 files you will upload (first = cover).

Required array length: 1 - 10 elements
instruction
string | null

Optional free-text guidance for how to use the model.

Maximum string length: 8000

Antwort

Successful Response

202 body for POST /models/prepare — presigned upload slots.

id
string<uuid>
erforderlich

The PENDING model's id (send to /complete).

uploads
PublicUploadSlot · object[]
erforderlich
expires_in
integer
erforderlich

Presigned URL lifetime in seconds.

Beispiel:

3600