?async=true to the run endpoint. The submit returns in under 500ms with an executionId; you then either poll GET /api/executions/:id or receive a webhook callback when the run completes.
This page documents the async lifecycle. For webhook-based delivery, see Webhooks.
When to use async
- Video generation — Seedance runs can take 30–90 seconds. Async lets your client return a job id immediately and poll/listen.
- Audio generation — Suno V5 typically takes 30–60s for two tracks.
- Image generation with long pipelines — gpt-image-2 with high
qualitysettings. - CI / cron — submit dozens of jobs in parallel, poll/wait at the end.
Compatibility
?async=true is only supported on HTTP+polling defs (Seedance variants, Suno V5, gpt-image-2). Other providers reject the query parameter:
| Provider type | Supports async? |
|---|---|
| HTTP+polling (Seedance, Suno, gpt-image-2) | ✅ |
| Fal-backed (kling-v3-i2v, kling-o3-ref2v, kling-v3-motion, seedream-v5, nano-banana-2) | ❌ → 400 ASYNC_NOT_SUPPORTED |
| Anthropic-backed (claude-sonnet) | ❌ → 400 ASYNC_NOT_SUPPORTED |
?async=true) for unsupported providers.
Submit an async run
Always
true — sentinel telling clients “this is an async submit, not a sync result”.Knouds-generated UUID. Use this to poll status or to dedupe webhook deliveries.
Provider-side request id (Kie.ai’s
taskId, Suno’s id, etc.) — useful for cross-referencing in provider logs.processing immediately after submit. Transitions to completed, failed, cancelled, or cancel_requested over time.{configured: true, url: '...'} if your key has a webhook configured; otherwise {configured: false}.Convenience path you can hit to check status (same as
/api/executions/{executionId}).POST /api/workflows/:slug/run?async=true.
Poll an execution
execution:read (in every tier’s session AND api-key ceiling — even Free users can poll their own canvas async runs).
Response:
processing→completed(success —resultpopulated)processing→failed(provider error —error.codepopulated)processing→cancel_requested→cancelled(you called cancel; provider may have already finished, in which caseresultis also populated)
Cancel an in-flight execution
execution:cancel (every tier).
Recommended pattern
Errors
| Status | Code | Meaning |
|---|---|---|
400 | ASYNC_NOT_SUPPORTED | Provider doesn’t support polling. Use sync mode. |
404 | EXECUTION_NOT_FOUND | The UUID doesn’t resolve to a row owned by you (or it was deleted). |
500 | PROVIDER_SUBMIT_FAILED | Async submit hit upstream 4xx/5xx. Body includes providerStatus + providerBody so you don’t wait on a stuck processing row. |
500 | PROVIDER_RESPONSE_INCOMPLETE | Polling completed but the provider’s response didn’t contain the expected output. Credits NOT deducted. |