Prepare a media asset upload
Changed onPrepare a media asset upload for use in world generation.
This API endpoint creates a media asset record and returns a signed upload URL. Use this workflow to upload images or videos that you want to reference in world generation requests.
Workflow
- Prepare Upload (this endpoint): Get a media_asset_id and upload_url
- Upload File: Use the signed URL to upload your file
- Generate World: Reference the media_asset_id in /worlds:generate with source type "media_asset"
Request Parameters
- file_name: Your file's name (e.g., "landscape.jpg")
- extension: File extension without dot (e.g., "jpg", "png", "mp4")
- kind: Either "image" or "video"
- metadata: Optional custom metadata object
Response
Returns a MediaAssetPrepareUploadResponse containing:
- media_asset: Object with media_asset_id (use this in world generation)
- upload_info: Object with upload_url, required_headers, and curl_example
Uploading Your File
Use the returned upload_url and required_headers to upload your file:
curl --request PUT \
--url <upload_url> \
--header "Content-Type: <content-type>" \
--header "<header-name>: <header-value>" \
--upload-file /path/to/your/file
Replace:
- <upload_url>: The upload_url from the response
- <content-type>: MIME type (e.g., image/png, image/jpeg, video/mp4)
- <header-name>: <header-value>: Each header from required_headers
- /path/to/your/file: Path to your local file
Example Usage in World Generation
After uploading, use the media_asset_id in a world generation request:
{
"world_prompt": {
"type": "image",
"image_prompt": {
"source": "media_asset",
"media_asset_id": "<your-media-asset-id>"
}
}
}
post/marble/v1/media-assets:prepare_upload
Request
- Base URLhttps://api.worldlabs.ai
- AuthAPI key in header WLT-Api-Key
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Request body
Example request
{
"extension": "mp4"
}Response
Successful Response
Example response
{
"media_asset": {
"extension": "mp4"
}
}Changes
- breaking
added required request body
- info
api operation id
prepare_media_asset_upload_marble_v1_media_assets_prepare_upload_postwas added - info
added the non-success response with the status
- info
added the success response with the status
- breaking