Skip to article

Uploads

Upload an image and confirm that the asset is ready.

Reserve, transfer and confirm

  1. Call POST /api/v1/uploads or create_upload_url with fileName, contentType and sizeBytes.
  2. PUT the exact file bytes to the returned signature.uploadUrl, using the signed content type and any required signed headers.
  3. Call POST /api/v1/uploads/{assetId}/complete or confirm_upload.
  4. Use the confirmed ready assetId in a supported generation operation.
json
{"fileName":"ranger.png","contentType":"image/png","sizeBytes":123456}

Limits and validation

PNG, JPEG and WebP are accepted, with a maximum declared size of 20 MiB. Confirmation verifies the stored object and reads image dimensions. A reserved asset is not a ready generation input. Do not claim a different content type or size from the bytes you upload.

The upload asset belongs to the authenticated account. Confirmation and reuse enforce that ownership. A failed or incomplete transfer must be corrected before generation.

Reuse instead of re-uploading

Generated images already present in the asset library can be passed directly by asset ID; there is no need to download and upload them again. Use Search and reuse.