Files

Request signed upload URL (recommended)

Get a signed URL to upload a file directly to storage, bypassing the server. This is the recommended upload method for large files.

Flow:

  1. Call this endpoint with content_type and file_size_bytes
  2. POST to the returned upload_url with header x-goog-resumable: start to get a session URI
  3. PUT your file content to the session URI (supports chunked/resumable uploads)
  4. Use the returned file_id as input to generation endpoints

Allowed types: application/x-zip-compressed, application/zip, audio/mpeg, audio/wav, font/otf, font/ttf, image/jpeg, image/png, image/webp, video/mp4. Max size: 64 MB. Upload URL expires in 15 minutes.

post/v1/workspaces/{workspace_id}/files/upload-url

Path parameters

workspace_idstring uuid required

Id of the workspace that owns the resource.

Id of the workspace that owns the resource.

Headers

Idempotency-Keystring

Opaque key making this request safe to retry. The first request with a given key executes; a later request with the same key returns that first response with Idempotent-Replayed: true instead of executing again. The key covers the method, path, query, and body it was first used with; reusing it for a different request is rejected with 422. Replayable for 24 hours.

Request body

content_typestring required

MIME type of the file to upload.

file_namestring nullable

Optional file name.

file_size_bytesinteger required

Expected file size in bytes. Used to enforce upload limits.

source_type'pose' | 'reference' | 'mask' | 'composite' | 'google_drive' | 'miro' | 'transformed_reference' | 'skill_resource' | 'skill_bundle'

Response

Successful Response

file_idstring uuid required

Unique identifier for the file. Use as input to generation endpoints after upload completes.

upload_urlstring required

Signed upload URL. POST to this URL to initiate a resumable upload, then PUT file chunks to the session URI returned in the Location header. Expires in 15 minutes.

content_typestring required

MIME type to use when uploading.

source_type'pose' | 'reference' | 'mask' | 'composite' | 'google_drive' | 'miro' | 'transformed_reference' | 'skill_resource' | 'skill_bundle'

Changes

No recorded changes to this endpoint across all 1 revision of this API.