Skip to main content
POST
Request presigned upload URLs for a new model's images
Première étape du flux presigned upload pour les fichiers volumineux. Envoie le name du modèle, sa category et les métadonnées des 1 à 10 files que tu vas uploader (le premier fichier est la couverture). La réponse renvoie un id de modèle et un upload_url PUT presigné par fichier. Envoie chaque fichier avec PUT sur son URL, puis appelle POST /models/{id}/complete avec les clés uploadées pour lancer le traitement. Nécessite le scope models.write.
Utilise ce flux en deux étapes quand les images sont trop volumineuses pour être envoyées inline. Pour les petites images ou les URLs distantes, POST /models est plus simple. Le content_type de chaque fichier vaut l’une des valeurs image/jpeg, image/png, image/webp ; fournis la size (≤ 10 Mo) quand tu la connais.

Autorisations

Authorization
string
header
requis

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

Corps

application/json

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

name
string
requis
Required string length: 1 - 100
Exemple:

"Acme Brand Style"

category
enum<string>
requis

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

Options disponibles:
style,
object,
person,
setting
Exemple:

"style"

files
PublicModelFileMeta · object[]
requis

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

Réponse

Successful Response

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

id
string<uuid>
requis

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

uploads
PublicUploadSlot · object[]
requis
expires_in
integer
requis

Presigned URL lifetime in seconds.

Exemple:

3600