Generation API Jobs AI Generator
Generated on PixelDojo. Produced by PixelDojo's generation pipeline.
Every generation request on the API is a job. You POST to /api/v1/models/{apiId}/run, get a 202 back carrying a jobId and a statusUrl, then poll that URL until the status reads completed or failed. There is no requests per minute ceiling on these endpoints. What limits you is your credit balance, which is checked and deducted before the job is submitted, and a request you cannot afford comes back as a 402 that tells you exactly how many credits were needed and how many you had. Outputs stay available for 24 hours. Everything below was read out of the API route and job store files on August 26, 2026.
How a generation job behaves from submit to expiry
Submitting a job
POST /api/v1/models/{apiId}/run with an Authorization: Bearer header and a JSON body. The response is a 202 carrying jobId, status, statusUrl, creditCost, creditsRemaining and expiresAt. It is always async, even for models that finish in a second.
What actually limits you
There is no per minute or per hour request cap on the generation endpoints. Credits are the limit. The route checks the balance, returns 402 with the required and available amounts if it is short, and only then deducts and submits.
No subscription required
The public API authenticates with an API key and charges credits. It does not check for an active plan, which is why an API key with a credit balance works on its own.
The fast path returns completed straight away
Some models hand back their output at submit time instead of queueing. When that happens the job is marked completed before the response is written and status comes back as completed rather than pending, so your first poll already has the file.
Polling a job
GET /api/v1/jobs/{jobId} returns status, output, an assets array and the webhook state. Each asset carries an assetId, a kind of image, video or audio, a URL and its own expiresAt. Statuses are pending, processing, completed and failed.
Listing recent jobs
GET /api/v1/jobs lists jobs for the key owner. The limit parameter defaults to 20 and is clamped between 1 and 100. An optional status filter accepts pending, processing, completed or failed and anything else is ignored.
How long a job lives
Job records expire 24 hours after they are created. Poll and download inside that window. Ask for a job past its expiry and the poll route answers 410.
Webhooks instead of polling
Pass webhook_url in the submit body and the terminal result is delivered to it. Up to three attempts with exponential backoff and a 10 second timeout each. The payload is signed with HMAC SHA256 in an X-PixelDojo-Signature header, with the job id in X-PixelDojo-Job-Id.
Replaying and inspecting a webhook
GET /api/v1/jobs/{jobId}/webhook shows whether a webhook is configured, whether it was delivered and how many attempts it took. POST to the same path replays a terminal webhook, which is the recovery path when your endpoint was down.
When credits come back
If submission fails before a provider job exists, the credits are returned on the spot and the response says so. Once a provider job is live the refund is deliberately left to the poll route and the reconciler, so you are never refunded for work that may still be delivered.
The give up rule
A job that is still not terminal after 6 hours is settled as failed and refunded, well inside the 24 hour record lifetime. That exists so a job whose provider can never be verified cannot quietly expire while still charged.
Jobs settle even when nobody is watching
A finished job still settles if you stop polling. Server side settlement waits until a record is at least 3 minutes old before touching it, so it never races a client that is already polling its own job.
The error codes you will actually hit
401 for a missing or invalid key. 400 for invalid JSON, a schema validation error or an unknown preset. 402 for insufficient credits. 404 for an unknown model id. 410 for a retired model or an expired job. 451 when a safety check rejects the request. 500 for a submission failure or an internal error.
Presets as request shorthand
Send a preset slug in the body and its parameters seed the request. Anything you set explicitly overrides the preset, and validation runs on the merged result, so a preset can never smuggle through a parameter the model would otherwise reject.
Read from the route handlers themselves rather than a docs page: the submit route, the poll route, the job store and the webhook deliverer. Where a number is a hard constant in the code, it is quoted as one.
Why Choose Pixel Dojo for Generation API Jobs
Professional-quality results with cutting-edge AI technology
Credits are the throttle, not a request counter
Nothing in these endpoints counts your requests per minute. The balance check runs before submission, so an oversized batch fails on the request it cannot afford rather than being throttled part way through.
One request shape for every model
The same key, the same POST and the same job lifecycle cover every model in the catalog. Switching from an image model to a video model is a change of one string in the path.
A 24 hour window to collect
Every job record and every asset carries an expiresAt. Copy what you want into your own storage inside that day rather than treating the returned URL as permanent.
Failures are answerable
Refunds are tracked per job rather than assumed. Submit time failures pay back immediately, live provider jobs settle through the poll route, and anything unresolved after 6 hours is failed and refunded automatically.
How It Works
The whole loop, in three calls:
Submit and keep the job id
POST your inputs to /api/v1/models/{apiId}/run with a Bearer key. The 202 response carries jobId, statusUrl, what you were charged and what is left. Store the jobId before you do anything else.
Poll the status URL, or register a webhook
GET the statusUrl until status is completed or failed. For long video jobs, pass webhook_url at submit time instead and let the delivery find you. Check the signature header before trusting the payload.
Collect the output inside 24 hours
The completed response carries the output URLs and an assets array with an expiresAt on each one. Download or copy them into your own storage before that timestamp passes.
Loved by creators on PixelDojo
Real feedback from people using PixelDojo, pulled from our in-product surveys.
A well resourced sunscription with attention to updates.
Easy to use and there's lots of options.
super lora download
Great variety of tools to create and modify images and video.
Lots of Tools, and the one time I needed support I got help right away
Easy to use once you get the hang of it
Explore more AI tools on PixelDojo
AI Tools
Compare & Switch
- Best AI Image Generators
- Best AI Video Generators
- Midjourney Alternatives
- Civitai Alternatives
- Runway Alternatives
- Leonardo Alternatives
- Pika Alternatives
- Luma Alternatives
- Magnific Alternatives
- Veo Alternatives
- Flux Alternatives
- Freepik Alternatives
- Seedance Alternatives
- Seedream Alternatives
- Pixverse Alternatives
- GPT Image Alternatives
- Synthesia Alternatives
- Playground Alternatives
- NightCafe Alternatives
- Canva AI Alternatives
- ElevenLabs Alternatives
- ComfyUI Alternatives
- Fal Alternatives
- Replicate Alternatives
Common Questions
Everything you need to know about Generation API Jobs
Does the PixelDojo generation API have rate limits?
There is no requests per minute ceiling on the generation endpoints. Your credit balance is the real limit. Every call checks the balance before it submits, and a call you cannot afford returns 402 with the required and available amounts in the body.
How do I know when a job is finished?
Poll GET /api/v1/jobs/{jobId} until status reads completed or failed, or pass webhook_url when you submit and let the result be delivered. Some models finish at submit time and come back as completed in the very first response.
How long do generated files stay available?
24 hours from job creation. The submit response and every asset in the poll response carry an expiresAt timestamp that says exactly when. Copy anything you want to keep into your own storage inside that window.
What happens to my credits if a job fails?
On refundable models they come back. A failure before the provider job exists refunds immediately and the response says so. Once the provider job is live the refund is handled by the poll route and the reconciler instead, and a job still unresolved after 6 hours is settled as failed and refunded.
Do I need a subscription to use the API?
No. The API authenticates with an API key and charges credits per generation. There is no plan check on the generation endpoints.
Are webhook deliveries verified?
Yes. Each delivery is signed with HMAC SHA256 in an X-PixelDojo-Signature header and carries the job id in X-PixelDojo-Job-Id. Delivery is retried up to three times with exponential backoff and a 10 second timeout per attempt, and a terminal webhook can be replayed by POSTing to /api/v1/jobs/{jobId}/webhook.