For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Register a media URL as a reusable asset and get back its id. Use the id in generation inputs (input[].assetId) or as a voice clone sample. To upload a local file, first request a presigned URL via POST /v2/assets/upload, PUT the file there, then register the returned url here. Registration verifies the upload happened and enforces plan limits on the actual file size.
projectId is optional. When provided it must reference a project in your organization — a stale or foreign id is rejected with a 422 and errorCode project_not_found; omit the field if you don't need the asset attached to a project.
Authentication
x-api-keystring
API Key authentication via header
Request
This endpoint expects an object.
urlstringRequired
The public URL of the media to register — e.g. the url returned by POST /v2/assets/upload. Registration verifies the upload happened and enforces plan limits on the actual file size.
typeenumRequired
The type of asset.
Allowed values:
namestringOptional
An optional display name for the asset.
projectIdstringOptional
Optionally attach the asset to a project (created via POST /v2/projects) so it appears in Studio under that project’s media. Must reference a project in your organization — otherwise the request is rejected with 422.
Response
Asset registered successfully
idstring
A unique identifier for an asset.
createdAtdatetime
The date and time the asset was created.
updatedAtdatetime
The date and time the asset was last updated.
typeenum
The type of asset file.
Allowed values:
visibilityenum
Visibility scope for the asset.
Allowed values:
namestringOptional
The filename of the asset.
urlstringOptional
The URL to access the asset media.
sizelongOptional
File size in bytes.
formatstringOptional
File format/extension (e.g., “mp4”, “wav”).
inputTypeenumOptional
The source type of the asset.
durationSecondsdoubleOptional
Duration of the media in seconds (for audio/video).
thumbnailUrlstringOptional
URL to the asset's thumbnail image.
widthintegerOptional
Width in pixels (for video/image).
heightintegerOptional
Height in pixels (for video/image).
projectIdstringOptional
The id of the project this asset is attached to, or null when it belongs to no project.
Errors
400
Bad Request Error
401
Unauthorized Error
422
Unprocessable Entity Error
500
Internal Server Error
Register a media URL as a reusable asset and get back its id. Use the id in generation inputs (input[].assetId) or as a voice clone sample. To upload a local file, first request a presigned URL via POST /v2/assets/upload, PUT the file there, then register the returned url here. Registration verifies the upload happened and enforces plan limits on the actual file size.
projectId is optional. When provided it must reference a project in your organization — a stale or foreign id is rejected with a 422 and errorCode project_not_found; omit the field if you don’t need the asset attached to a project.