Skip to content

Media API

Discover media presets, estimate cost, start generation, and inspect results.
MethodPathRequestResponse
GET/api/media/presetsMediaPresetList
GET/api/media/recommendationsintent queryMediaPresetList
POST/api/media/estimatesMediaEstimateRequestMediaEstimate
POST/api/media/generationsMediaGenerationRequestMediaGeneration
GET/api/media/generationslimit queryMediaGenerationList
GET/api/media/generations/{operationId}path parameterMediaGenerationEnvelope
GET /api/media/presets
Terminal window
curl https://app.dexto.ai/api/media/presets \
-H "Authorization: Bearer $DEXTO_API_KEY"
Response fieldJSON typeRequiredDescription
presetsarray<MediaPreset>YesPresets available in this deployment
presets[].idstringYesStable preset identifier
presets[].titlestringYesDisplay name
presets[].descriptionstringYesIntended use
presets[].mediaKindimage | video | audioYesOutput media kind
presets[].argumentsobjectYesArgument contract for the preset
POST /api/media/estimates
Terminal window
curl https://app.dexto.ai/api/media/estimates \
-H "Authorization: Bearer $DEXTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"preset":"image.quality",
"arguments":{"prompt":"A precise exploded diagram of a mechanical keyboard"}
}'
Request fieldJSON typeRequiredDescription
presetstringYesID returned by the presets endpoint
argumentsobjectYesValues matching the preset’s input schema
POST /api/media/generations
Terminal window
curl https://app.dexto.ai/api/media/generations \
-H "Authorization: Bearer $DEXTO_API_KEY" \
-H "Idempotency-Key: $REQUEST_ID" \
-H "Content-Type: application/json" \
-d '{"estimateId":"724df530-01e7-45f6-a73b-756401b51d31"}'

The estimate is single-use. Reuse the same Idempotency-Key when retrying a request. Inline generations return 200 with completed resources. Asynchronous generations return 202; poll the returned generation ID.

GET /api/media/generations/{operationId}
{
"generation": {
"id": "b8698bf3-df63-4c31-bdec-929fd0c9104e",
"preset": "video.text.seedance-2",
"mediaKind": "video",
"status": "settled",
"resources": [
{
"id": "artifact_01K4MA2B",
"kind": "video",
"mimeType": "video/mp4",
"url": "https://app.dexto.ai/api/artifacts/exports/…"
}
],
"error": null,
"createdAt": "2026-09-13T10:00:00.000Z",
"updatedAt": "2026-09-13T10:03:21.000Z",
"completedAt": "2026-09-13T10:03:19.000Z"
}
}
FieldJSON typeRequiredDescription
generation.idstringYesPolling identifier
generation.presetstringYesSelected preset
generation.mediaKindstringYesimage, video, or audio
generation.statusstringYesDurable operation state
generation.resourcesarray<Resource>YesResult artifacts and downloadable URLs
generation.errorobject | nullYesStructured failure category and message
generation.completedAtstring | nullYesISO-8601 completion timestamp