Referencia de la API
Generada a partir del documento OpenAPI 3.1 que sirve la API. Abre una solicitud o respuesta para ver sus campos.
Models
What you can run and what it costs.
get/v1/models
· List modelsPúblico, sin claveEvery model open to the API right now, in display order: task type, params with their enum values and ranges, defaults, input limits and priceFromCoins (the coins of a request that sets only the prompt). Send only the params you want to set: omitted params take the model default. Public, cached for a minute.
Respuestas
200The catalog.
get/v1/effects
· List effectsPúblico, sin claveStyle filters and templates. Run one by quoting and submitting with its modelId and effectId; params then hold the effect input (images or video, and an optional prompt direction). Public.
Respuestas
200The effects.
Generations
Quote, start, follow and cancel generations.
post/v1/quotes
· Quote a generationPermiso: generatePrices a request exactly as a submit would. The quoteToken (valid 10 minutes) reserves exactly coins when you submit with it; after it expires the submit is accepted only at the same price (else price_changed).
Cuerpo de la solicitud
application/json QuoteRequest
modelIdstringobligatoriomin length 1
paramsobjectobligatoriodraftbooleandefault false
effectIdstringpattern ^[a-z0-9][a-z0-9-]{0,63}$
Respuestas
200The price.
400Invalid request: invalid_params, invalid_quote, idempotency_key_required, consent_required, input_too_large, input_duration, wrong_media…
401No valid key: unauthorized, invalid_api_key, api_key_revoked, api_key_expired.
403insufficient_scope, cooldown, account_locked.
404not_found or unknown_model.
429rate_limited: wait Retry-After seconds.
503unavailable, maintenance or channel_disabled: nothing was charged; retry later.
get/v1/generations
· List generationsPermiso: readYour generations, newest first, with cursor pagination: pass nextCursor back as cursor until it is null.
Parámetros
cursorstringconsultanextCursorof the previous page.limitintegerconsulta≥ 1 · ≤ 100 · default 30
statusstringconsultaone of "queued", "processing", "succeeded", "failed", "canceled"
modalitystringconsultaone of "image", "video", "audio", "3d"
workspacestringconsultaone of "image", "video", "audio", "3d", "tools"
modelIdstringconsultaactivebooleanconsultaOnly generations that are still queued or processing.
Respuestas
200One page.
400Invalid request: invalid_params, invalid_quote, idempotency_key_required, consent_required, input_too_large, input_duration, wrong_media…
401No valid key: unauthorized, invalid_api_key, api_key_revoked, api_key_expired.
403insufficient_scope, cooldown, account_locked.
429rate_limited: wait Retry-After seconds.
post/v1/generations
· Start a generationPermiso: generateHolds the coins and queues the generation. Send exactly one of quoteToken (charge exactly the quoted coins) or maxCoins (charge the current price, refused with max_coins_exceeded above it): you are never charged more than either. The Idempotency-Key header is required: repeating a key with the same body returns the original generation (200); the same key with another body is idempotency_conflict (409). Failed generations are refunded in full; partial results are charged per delivered output.
Parámetros
Idempotency-Keystringcabeceraobligatoriomin length 16 · max length 128 · pattern ^[A-Za-z0-9_-]+$
16–128 characters of A–Z a–z 0–9 _ -, unique per intended generation (a UUID works). Scoped to your account.
Cuerpo de la solicitud
application/json CreateGenerationRequest
modelIdstringobligatoriomin length 1
paramsobjectobligatorioquoteTokenstringmin length 1
maxCoinsinteger> 0
projectIdstring | nullmin length 1
effectIdstringpattern ^[a-z0-9][a-z0-9-]{0,63}$
consenttrue
Respuestas
200A replay of an earlier request with the same key.
201Created and queued.
400Invalid request: invalid_params, invalid_quote, idempotency_key_required, consent_required, input_too_large, input_duration, wrong_media…
401No valid key: unauthorized, invalid_api_key, api_key_revoked, api_key_expired.
402insufficient_coins, or spend_cap_exceeded for the key's monthly cap.
403insufficient_scope, cooldown, account_locked.
404not_found or unknown_model.
409idempotency_conflict, price_changed, max_coins_exceeded, not_cancelable.
429rate_limited: wait Retry-After seconds.
503unavailable, maintenance or channel_disabled: nothing was charged; retry later.
get/v1/generations/{id}
· Get a generationPermiso: readStatus (queued, processing, succeeded, failed, canceled), progress, coins and outputs. Output URLs are signed and short-lived: read the generation again for fresh ones. Prefer webhooks to polling; poll no faster than every 2 seconds.
Parámetros
idstring (uuid)rutaobligatorioThe generation id.
Respuestas
200The generation.
401No valid key: unauthorized, invalid_api_key, api_key_revoked, api_key_expired.
403insufficient_scope, cooldown, account_locked.
404not_found or unknown_model.
429rate_limited: wait Retry-After seconds.
post/v1/generations/{id}/cancel
· Cancel a queued generationPermiso: generateFree, and only while the generation is still queued (not yet sent for processing); the held coins are released. Otherwise not_cancelable (409).
Parámetros
idstring (uuid)rutaobligatorioThe generation id.
Respuestas
200Canceled.
401No valid key: unauthorized, invalid_api_key, api_key_revoked, api_key_expired.
403insufficient_scope, cooldown, account_locked.
404not_found or unknown_model.
409idempotency_conflict, price_changed, max_coins_exceeded, not_cancelable.
429rate_limited: wait Retry-After seconds.
Files
Input uploads and output files.
post/v1/uploads
· Upload an input filePermiso: uploadsOne image (PNG, JPEG, WebP ≤ 20 MB, ≤ 8192 px), audio file (MP3, WAV, M4A, OGG ≤ 50 MB, ≤ 10 min) or video (MP4, WebM, MOV ≤ 200 MB, ≤ 60 s, ≤ 4096 px) as multipart/form-data in the field file. Use the returned id in a media param (image, images, first_frame, audio, video…). Uploads are deleted after 30 days.
Cuerpo de la solicitud
multipart/form-data object
filestringobligatorioOne of image/png, image/jpeg, image/webp, audio/mpeg, audio/wav, audio/mp4, audio/ogg, video/mp4, video/webm, video/quicktime.
Respuestas
201Stored.
400Invalid request: invalid_params, invalid_quote, idempotency_key_required, consent_required, input_too_large, input_duration, wrong_media…
401No valid key: unauthorized, invalid_api_key, api_key_revoked, api_key_expired.
403insufficient_scope, cooldown, account_locked.
413upload_too_large, upload_too_long.
415upload_invalid.
429rate_limited: wait Retry-After seconds.
503unavailable, maintenance or channel_disabled: nothing was charged; retry later.
get/v1/assets/{id}
· Get a filePermiso: readAn output or upload with freshly signed, short-lived download URLs (about an hour).
Parámetros
idstring (uuid)rutaobligatorioThe asset id.
Respuestas
200The file.
401No valid key: unauthorized, invalid_api_key, api_key_revoked, api_key_expired.
403insufficient_scope, cooldown, account_locked.
404not_found or unknown_model.
429rate_limited: wait Retry-After seconds.
Account
Balance and limits.
get/v1/generations/concurrency
· Running-generation limitPermiso: readHow many generations run at once for you, and how many run or wait now. Generations over the limit wait in the queue.
Respuestas
200The limit.
401No valid key: unauthorized, invalid_api_key, api_key_revoked, api_key_expired.
403insufficient_scope, cooldown, account_locked.
429rate_limited: wait Retry-After seconds.
get/v1/account
· Balance and limitsPermiso: accountYour coin balance, running-generation limit, rate limits and the calling key with its monthly spend.
Respuestas
200The account.
401No valid key: unauthorized, invalid_api_key, api_key_revoked, api_key_expired.
403insufficient_scope, cooldown, account_locked.
429rate_limited: wait Retry-After seconds.
Eventos de webhook
Solicitudes que inker envía a tus endpoints.
POST generation.succeeded
Sent to your endpoint when a generation ends this way. Verify Inker-Signature (t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>.<raw body>")>), refuse a t more than 300 s off, dedupe on Inker-Event-Id and answer 2xx within 10 s. Failed deliveries are retried for about a day.
application/json
idstringobligatoriomin length 1
typestringobligatorioone of "generation.succeeded", "generation.failed", "generation.canceled"
createdAtstring (date-time)obligatoriodataobjectobligatorioCampos
- Generation
generationGenerationobligatorio
POST generation.failed
Sent to your endpoint when a generation ends this way. Verify Inker-Signature (t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>.<raw body>")>), refuse a t more than 300 s off, dedupe on Inker-Event-Id and answer 2xx within 10 s. Failed deliveries are retried for about a day.
application/json
idstringobligatoriomin length 1
typestringobligatorioone of "generation.succeeded", "generation.failed", "generation.canceled"
createdAtstring (date-time)obligatoriodataobjectobligatorioCampos
- Generation
generationGenerationobligatorio
POST generation.canceled
Sent to your endpoint when a generation ends this way. Verify Inker-Signature (t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>.<raw body>")>), refuse a t more than 300 s off, dedupe on Inker-Event-Id and answer 2xx within 10 s. Failed deliveries are retried for about a day.
application/json
idstringobligatoriomin length 1
typestringobligatorioone of "generation.succeeded", "generation.failed", "generation.canceled"
createdAtstring (date-time)obligatoriodataobjectobligatorioCampos
- Generation
generationGenerationobligatorio
Esquemas
Los objetos que aceptan y devuelven los endpoints, documentados una sola vez.
Asset
idstringobligatoriomin length 1 · max length 128 · pattern ^[A-Za-z0-9_-]+$
kindstringobligatorioone of "image", "video", "audio", "3d", "text"
urlstringobligatoriomin length 1
thumbnailUrlstringobligatoriomin length 1
posterUrlstring | nullobligatoriomin length 1
mimeTypestringobligatoriomin length 1
widthinteger | nullobligatorio> 0
heightinteger | nullobligatorio> 0
durationSecondsnumber | nullobligatorio> 0
waveformUrlstring | nullmin length 1
transparentbooleandownloadsarray of objectCampos
formatstringobligatorioone of "obj", "fbx", "usdz", "stl"
urlstringobligatoriomin length 1
bytesintegerobligatorio> 0
stemstring | nullone of "vocals", "drums", "bass", "other"
subtitlesobject | nullCampos
srtUrlstringobligatoriomin length 1
vttUrlstringobligatoriomin length 1
Generation
idstringobligatoriomin length 1
modelIdstringobligatoriomin length 1
modelNamestringobligatoriomin length 1
taskTypestringobligatorioone of "image.generate", "image.edit", "video.generate", "video.animate", "image.upscale", "image.remove-bg", "image.inpaint", "image.outpaint", "image.relight", "image.vectorize", "image.restore", "image.effect", "video.v2v", "video.extend", "video.upscale", "video.interpolate", "video.remove-bg", "video.add-audio", "video.lipsync", "video.effect", "video.reframe", "audio.tts", "audio.music", "audio.sfx", "audio.voice-change", "audio.isolate", "audio.stt", "3d.from-text", "3d.from-image", "image.erase", "image.reframe", "image.sketch", "image.restyle", "image.colorize", "image.retouch", "image.product-shot", "image.replace-bg", "image.try-on"
modalitystringobligatorioone of "image", "video", "audio", "3d"
workspacestringobligatorioone of "image", "video", "audio", "3d", "tools"
effectobject | nullobligatorioCampos
idstringobligatoriomin length 1
textstring | nullobligatorio
statusstringobligatorioone of "queued", "processing", "succeeded", "failed", "canceled"
progressnumber | nullobligatorio≥ 0 · ≤ 1
queuePositioninteger | nullobligatorio> 0
paramsobjectobligatoriocoinsQuotedintegerobligatorio> 0
coinsChargedinteger | nullobligatorio≥ 0
- Asset
outputsarray of Assetobligatorio outputsRequestedintegerobligatorio> 0
errorobject | nullobligatorioCampos
codestringobligatorioone of "content_policy", "invalid_input", "unavailable", "timeout", "internal"
projectIdstring | nullobligatoriomin length 1
createdAtstring (date-time)obligatoriostartedAtstring (date-time) | nullobligatoriocompletedAtstring (date-time) | nullobligatorio
GenerationPage
- Generation
itemsarray of Generationobligatorio nextCursorstring | nullobligatoriomin length 1
QuoteResponse
modelIdstringobligatoriomin length 1
coinsintegerobligatorio> 0
coinsPerOutputintegerobligatorio> 0
outputsintegerobligatorio> 0
quoteTokenstring | nullobligatoriomin length 1
expiresAtstring (date-time)obligatorioavailableCoinsintegerobligatorio≥ 0
Concurrency
limitintegerobligatorio> 0
raisedLimitinteger | nullobligatorio> 0
runningintegerobligatorio≥ 0
queuedintegerobligatorio≥ 0
PublicModelsResponse
modelsarray of objectobligatorioCampos
idstringobligatoriomin length 1
listingIdstringobligatoriomin length 1
taskTypestringobligatorioone of "image.generate", "image.edit", "video.generate", "video.animate", "image.upscale", "image.remove-bg", "image.inpaint", "image.outpaint", "image.relight", "image.vectorize", "image.restore", "image.effect", "video.v2v", "video.extend", "video.upscale", "video.interpolate", "video.remove-bg", "video.add-audio", "video.lipsync", "video.effect", "video.reframe", "audio.tts", "audio.music", "audio.sfx", "audio.voice-change", "audio.isolate", "audio.stt", "3d.from-text", "3d.from-image", "image.erase", "image.reframe", "image.sketch", "image.restyle", "image.colorize", "image.retouch", "image.product-shot", "image.replace-bg", "image.try-on"
modalitystringobligatorioone of "image", "video", "audio", "3d"
workspacestringobligatorioone of "image", "video", "audio", "3d", "tools"
vendorstringobligatoriomin length 1
displayNamestringobligatoriomin length 1
paramsarray of object | object | object | object | object | objectobligatorioCampos
namestringobligatorioone of "prompt", "negative_prompt", "aspect_ratio", "resolution", "duration", "num_outputs", "seed", "images", "image", "first_frame", "last_frame", "generate_audio", "upscale_factor", "mask", "expand_left", "expand_right", "expand_top", "expand_bottom", "video", "audio", "fps", "effect", "text", "voice", "language", "speed", "lyrics", "style", "instrumental", "stem", "polycount", "texture", "format", "garment", "lighting", "light_direction", "palette", "pbr", "quad", "geometry_quality", "texture_quality"
requiredbooleanobligatoriouiobjectobligatorioCampos
controlstringobligatorioone of "prompt", "textarea", "aspect", "segmented", "select", "switch", "seed", "image", "images", "script", "lyrics", "tags", "voice", "language", "slider", "audio", "video", "mask", "expand", "effect"
groupstringobligatorioone of "prompt", "inputs", "basic", "advanced"
orderintegerobligatorio
kind"text"obligatoriomaxLengthintegerobligatorio> 0
minLengthinteger> 0
Campos
namestringobligatorioone of "prompt", "negative_prompt", "aspect_ratio", "resolution", "duration", "num_outputs", "seed", "images", "image", "first_frame", "last_frame", "generate_audio", "upscale_factor", "mask", "expand_left", "expand_right", "expand_top", "expand_bottom", "video", "audio", "fps", "effect", "text", "voice", "language", "speed", "lyrics", "style", "instrumental", "stem", "polycount", "texture", "format", "garment", "lighting", "light_direction", "palette", "pbr", "quad", "geometry_quality", "texture_quality"
requiredbooleanobligatoriouiobjectobligatorioCampos
controlstringobligatorioone of "prompt", "textarea", "aspect", "segmented", "select", "switch", "seed", "image", "images", "script", "lyrics", "tags", "voice", "language", "slider", "audio", "video", "mask", "expand", "effect"
groupstringobligatorioone of "prompt", "inputs", "basic", "advanced"
orderintegerobligatorio
kind"enum"obligatoriovaluesarray of string | number | booleanobligatoriomin items 1
Campos
namestringobligatorioone of "prompt", "negative_prompt", "aspect_ratio", "resolution", "duration", "num_outputs", "seed", "images", "image", "first_frame", "last_frame", "generate_audio", "upscale_factor", "mask", "expand_left", "expand_right", "expand_top", "expand_bottom", "video", "audio", "fps", "effect", "text", "voice", "language", "speed", "lyrics", "style", "instrumental", "stem", "polycount", "texture", "format", "garment", "lighting", "light_direction", "palette", "pbr", "quad", "geometry_quality", "texture_quality"
requiredbooleanobligatoriouiobjectobligatorioCampos
controlstringobligatorioone of "prompt", "textarea", "aspect", "segmented", "select", "switch", "seed", "image", "images", "script", "lyrics", "tags", "voice", "language", "slider", "audio", "video", "mask", "expand", "effect"
groupstringobligatorioone of "prompt", "inputs", "basic", "advanced"
orderintegerobligatorio
kind"range"obligatoriominnumberobligatoriomaxnumberobligatoriostepnumberobligatorio> 0
Campos
namestringobligatorioone of "prompt", "negative_prompt", "aspect_ratio", "resolution", "duration", "num_outputs", "seed", "images", "image", "first_frame", "last_frame", "generate_audio", "upscale_factor", "mask", "expand_left", "expand_right", "expand_top", "expand_bottom", "video", "audio", "fps", "effect", "text", "voice", "language", "speed", "lyrics", "style", "instrumental", "stem", "polycount", "texture", "format", "garment", "lighting", "light_direction", "palette", "pbr", "quad", "geometry_quality", "texture_quality"
requiredbooleanobligatoriouiobjectobligatorioCampos
controlstringobligatorioone of "prompt", "textarea", "aspect", "segmented", "select", "switch", "seed", "image", "images", "script", "lyrics", "tags", "voice", "language", "slider", "audio", "video", "mask", "expand", "effect"
groupstringobligatorioone of "prompt", "inputs", "basic", "advanced"
orderintegerobligatorio
kind"seed"obligatoriomaxintegerobligatorio> 0
Campos
namestringobligatorioone of "prompt", "negative_prompt", "aspect_ratio", "resolution", "duration", "num_outputs", "seed", "images", "image", "first_frame", "last_frame", "generate_audio", "upscale_factor", "mask", "expand_left", "expand_right", "expand_top", "expand_bottom", "video", "audio", "fps", "effect", "text", "voice", "language", "speed", "lyrics", "style", "instrumental", "stem", "polycount", "texture", "format", "garment", "lighting", "light_direction", "palette", "pbr", "quad", "geometry_quality", "texture_quality"
requiredbooleanobligatoriouiobjectobligatorioCampos
controlstringobligatorioone of "prompt", "textarea", "aspect", "segmented", "select", "switch", "seed", "image", "images", "script", "lyrics", "tags", "voice", "language", "slider", "audio", "video", "mask", "expand", "effect"
groupstringobligatorioone of "prompt", "inputs", "basic", "advanced"
orderintegerobligatorio
kind"media"obligatorioacceptstringobligatorioone of "image", "audio", "video"
Campos
namestringobligatorioone of "prompt", "negative_prompt", "aspect_ratio", "resolution", "duration", "num_outputs", "seed", "images", "image", "first_frame", "last_frame", "generate_audio", "upscale_factor", "mask", "expand_left", "expand_right", "expand_top", "expand_bottom", "video", "audio", "fps", "effect", "text", "voice", "language", "speed", "lyrics", "style", "instrumental", "stem", "polycount", "texture", "format", "garment", "lighting", "light_direction", "palette", "pbr", "quad", "geometry_quality", "texture_quality"
requiredbooleanobligatoriouiobjectobligatorioCampos
controlstringobligatorioone of "prompt", "textarea", "aspect", "segmented", "select", "switch", "seed", "image", "images", "script", "lyrics", "tags", "voice", "language", "slider", "audio", "video", "mask", "expand", "effect"
groupstringobligatorioone of "prompt", "inputs", "basic", "advanced"
orderintegerobligatorio
kind"media_list"obligatorioaccept"image"obligatoriominItemsintegerobligatorio≥ 0
maxItemsintegerobligatorio> 0
defaultsobjectobligatoriopriceFromCoinsinteger | nullobligatorio> 0
inputLimitsobjectCampos
maxOutputPixelsinteger> 0
maxOutputSideinteger> 0
minInputSecondsinteger> 0
maxInputSecondsinteger> 0
maxInputBytesinteger> 0
EffectsResponse
effectsarray of objectobligatorioCampos
idstringobligatoriopattern ^[a-z0-9][a-z0-9-]{0,63}$
kindstringobligatorioone of "image", "video"
categorystringobligatorioone of "style", "template"
nameKeystringobligatoriomin length 1
thumbnailstring | nullobligatoriomin length 1
inputobject | objectobligatorioCampos
type"images"obligatoriominintegerobligatorio> 0
maxintegerobligatorio> 0
Campos
type"video"obligatorio
modelIdstringobligatoriomin length 1
PublicAccount
balanceobjectobligatorioCampos
availableintegerobligatorioheldintegerobligatorio≥ 0
- Concurrency
concurrencyConcurrencyobligatorio rateLimitsobjectobligatorioCampos
keyobjectobligatorioCampos
limitintegerobligatorio> 0
windowSecondsintegerobligatorio> 0
accountobjectobligatorioCampos
limitintegerobligatorio> 0
windowSecondsintegerobligatorio> 0
keyobject | nullobligatorioCampos
idstring (uuid)obligatoriopattern ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
namestringobligatorioscopesarray of stringobligatoriomonthlySpendCapCoinsinteger | nullobligatorio> 0
spentThisMonthCoinsintegerobligatorio≥ 0
expiresAtstring (date-time) | nullobligatorio
channelstringobligatorioone of "web", "api", "mcp"
WebhookEvent
idstringobligatoriomin length 1
typestringobligatorioone of "generation.succeeded", "generation.failed", "generation.canceled"
createdAtstring (date-time)obligatoriodataobjectobligatorioCampos
- Generation
generationGenerationobligatorio
Problem
typestringobligatoriomin length 1
titlestringobligatoriomin length 1
statusintegerobligatorio≥ 400 · ≤ 599
detailstringobligatoriocodestringobligatorioone of "invalid_params", "unknown_model", "invalid_quote", "price_changed", "max_coins_exceeded", "insufficient_coins", "idempotency_conflict", "idempotency_key_required", "cooldown", "account_locked", "unauthorized", "not_found", "not_cancelable", "rate_limited", "unavailable", "input_too_large", "input_duration", "input_file_too_large", "consent_required", "upload_too_large", "upload_invalid", "upload_too_long", "wrong_media", "download_too_large", "maintenance", "explore_blocked", "explore_limit", "explore_not_shareable", "explore_removed", "internal", "invalid_api_key", "api_key_revoked", "api_key_expired", "insufficient_scope", "channel_disabled", "spend_cap_exceeded"
instancestringissuesarray of objectCampos
pathstringobligatoriomessagestringobligatorio
QuoteRequest
modelIdstringobligatoriomin length 1
paramsobjectobligatoriodraftbooleandefault false
effectIdstringpattern ^[a-z0-9][a-z0-9-]{0,63}$
CreateGenerationRequest
modelIdstringobligatoriomin length 1
paramsobjectobligatorioquoteTokenstringmin length 1
maxCoinsinteger> 0
projectIdstring | nullmin length 1
effectIdstringpattern ^[a-z0-9][a-z0-9-]{0,63}$
consenttrue