Reference
Errors & credits
The API uses conventional HTTP status codes and a simple monthly credit model. Errors carry a human-readable message you can surface or log.
Status codes
| Status | Meaning |
|---|---|
200 / 201 | Success. 201 on job creation, 200 elsewhere. |
400 | Validation error — a field is missing or malformed. |
401 | Missing, invalid, or revoked API key. |
402 | Payment required — your plan includes none of this, or its project allowance or AI-credit pool is spent. Subscribe or move up a plan at /pricing. |
404 | The referenced app or job doesn't exist on your account. |
429 | Rate limit — counted both per API key and per address — or the monthly generation allowance for your plan. |
5xx | Something failed on our side. Safe to retry with backoff. |
Error bodies follow a consistent shape:
error
{
"statusCode": 402,
"message": "Monthly AI credit limit reached — 40/month on the Free plan. Resets 2026-09-01. Subscribe to a higher plan at /pricing for more credits.",
"error": "Payment Required"
}The credit model
Generation is metered in AI credits. Studio activity and all API keys share the account's monthly allowance, and operations are charged when the work is accepted:
- Screenshot set — 2 credits per slide, so a five-slide generation job costs 10 and a ten-slide job costs 20.
- Onboarding an app and polling jobs are free.
- A job that fails is refunded — credits are charged when the work is accepted and returned if it ends in
error.
Every screenshot response echoes your usage so you can track it without a separate call:
credits in the response
"credits": { "cost": 10, "remaining": 30 }When you run out
Generation needs an active plan with credits left. Once the allowance is spent, generation returns
402 until it refills — on a paid plan that is the day your billing period renews, and otherwise the 1st (UTC). The reset date is in the error message and in resetsAt. Creating apps and polling jobs keep working, bounded by your plan's project allowance. To carry on before the reset, subscribe or move up a plan on Pricing.Retries
5xx and 429 responses are safe to retry with exponential backoff. Don't retry 400, 401, or 402 — fix the request, the key, or your credit balance first.