Upload an asset
multipart/form-data. On success, the server returns 202 Accepted and begins background processing (enrichment, derivative generation) if runEnrichment is enabled.
Request fields
The image file to upload. Must not be empty. Allowed content types are configured server-side (typically
image/png, image/jpeg, image/gif, image/webp, etc.).Optional description for the asset. Maximum 1000 characters.
Optional alt text for the asset. Maximum 1000 characters.
Whether the asset should be publicly accessible. Defaults to
true.Optional. The ID of the storage provider profile to use. If omitted, the default storage provider is used.
Whether to run AI enrichment after upload. Defaults to
true.Optional commit message for storage providers that support it (e.g. GitHub Repo).
Response — 202 Accepted
Errors
Example
List assets
Query parameters
Page number. Defaults to
1.Number of results per page. Defaults to the server-configured default, capped at the configured maximum.
Free-text search. Also accepted as
keyword. Matches file name, description, and alt text.Filter by MIME type (e.g.
image/jpeg).Filter by processing status. One of:
pending, processing, ready, failed.Field to sort by. Also accepted as
sortBy. Supported values: createdAtUtc (default), size.Sort direction. Also accepted as
sortDirection. One of: asc, desc (default).Response
Example
Get an asset
Path parameters
The unique identifier of the asset.
Response
404 Not Found with error code asset_not_found if the asset does not exist.
Example
Update asset metadata
Path parameters
The unique identifier of the asset to update.
Request body
New description. Maximum 1000 characters. Omit to leave unchanged.
New alt text. Maximum 1000 characters. Omit to leave unchanged.
New original filename. Omit to leave unchanged.
Change public visibility. Omit to leave unchanged.
Response
Returns the full updated asset object (same shape as Get an asset).Example
Delete an asset
Path parameters
The unique identifier of the asset to delete.
Request body (optional)
Optional commit message for storage backends that support versioning (e.g. GitHub Repo).
Response
404 Not Found with error code asset_not_found if the asset does not exist.
Example
Batch delete assets
notFoundIds.
Request body
An array of asset IDs to delete.
Response
Example
Get asset content
- Public asset: Returns a
307 Temporary Redirectto the public content URL. - Private asset: Streams the content directly (requires valid JWT or API key).
Path parameters
The unique identifier of the asset.
404 Not Found with error code asset_not_found if the asset does not exist.
Example
List available skills
Response
Example
Run a skill on an asset
Path parameters
The unique identifier of the asset.
The name of the skill to run. Use List available skills to discover valid skill names.
Request body (optional)
Optional skill-specific parameters as a JSON object. The accepted parameters depend on the skill being run.