request_id, and retrieve results using one of three methods:
Webhooks
Results pushed to your server (recommended).
WebSockets
Real-time updates with live previews.
Polling
Query
/api/v2/jobs/{id} manually.Webhooks (Recommended)
For most integrations, use webhooks. They’re the most reliable way to receive results without maintaining persistent connections or implementing polling logic.
- No polling required — results arrive automatically
- Automatic retries with exponential backoff (up to 10 retries over ~24 hours)
- Works with serverless and traditional backends
- Secure with HMAC signature verification
WebSockets (Real-time)
For interactive applications that need instant feedback and live previews during generation:- Instant updates (milliseconds latency)
- Live preview images during generation
- Progress percentage updates
- Ideal for user-facing UIs
Polling (Fallback)
If webhooks or WebSockets aren’t feasible, poll the status endpoint:
→ Get Job Results Endpoint Reference
Choosing a Method
How Jobs Are Processed
Every model endpoint follows the same pattern:1
Submit request
Send
POST /api/v2/{resource}/{operation} with your parameters (optionally include webhook_url).2
Receive request_id
Response contains
request_id for tracking.3
Job queued
Request enters the queue with status
pending.4
Worker processes
GPU worker picks up the job, status becomes
processing.5
Results delivered
Via webhook POST, WebSocket event, or polling response.
- Keeps long-running jobs off the HTTP request path
- Avoids timeout issues for video/audio generation
- Enables efficient GPU scheduling across the distributed network
- Provides a consistent pattern across all endpoints