asset_caption
AnalysisCaption Asset
Generate a caption for a Scenario image asset. Fast, purpose-built captioning.
Args:
- asset_id: required — the image to caption
- details_level: optional — 'action' or 'action+style'
- parameters: optional — advanced controls (modelId, seed, temperature, topP, unwantedSequences)
- dry_run: optional — true returns a cost estimate without running or charging credits
- team_id, project_id: required for OAuth callers
Returns: captions (one per image) plus the job record. With dry_run=true, returns a cost estimate.
For instruction-driven or interactive analysis (specific questions, custom output format), use asset_analyze (Scenario LLM) instead — it is more flexible than this fixed caption endpoint.
read-onlyidempotentopen-world
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| asset_id | string | ✓ | Scenario asset ID of the image to caption. |
| details_level | enum(action | action+style) | — | Caption detail: 'action' (subject + action) or 'action+style' (also describes style). |
| parameters | record | — | Advanced caption controls passed through to the API (modelId, seed, temperature, topP, unwantedSequences). |
| dry_run | boolean | — | Estimate cost without running. Sends ?dryRun=true so the API returns the cost estimate without executing or charging credits. |
| team_id | string | — | Team ID. Required if user belongs to multiple teams. |
| project_id | string | — | Project ID to scope the operation to. |
| response_format | enum(json | markdown) | json | Output format: 'json' for structured data, 'markdown' for human-readable text. |
Example Request
JSON
{
"asset_id": "asset_img001",
"team_id": "team_abc123",
"project_id": "proj_xyz789"
}Example Response
JSON
{
"source_asset_id": "asset_img001",
"captions": [
"A red sports car on a wet city street at night"
],
"detailsLevel": "action"
}Common Use Cases
- Auto-caption game assets for searchability and accessibility
- Generate alt text for a batch of generated images