Guides
Generations
Image, video, voice and music calls: quote, hold, settle or release.
Lifecycle
| Step | Wallet |
|---|---|
POST /quote | Nothing yet. The quote is valid for 15 minutes. |
POST /generations | The quoted amount is held. Status queued. |
| Render starts | Status running. It can no longer be cancelled. |
| Succeeded | The hold settles. charged is true. |
| Failed or cancelled | The hold is released in full. You pay ₹0. |
Skip the quote
Send { model, params, input } to POST /generations and we quote and hold in one step. You still pay exactly the book price.
Polling
curl https://userouter.in/api/v1/generations/gen_... -H "Authorization: Bearer $ROUTER_KEY"Images usually finish in under a minute; video and music take one to several minutes. Poll every few seconds. Outputs are signed URLs; download what you want to keep.
Cancel
POST /generations/{id}/cancel works while a render is queued. Once it is running you get 409 not_cancellable.
Not enough balance
If the wallet can't cover the hold you get 402 insufficient_balance and nothing runs. Key and workspace limits return key_limit_reached and spend_limit_reached.