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

StatusMeaning
200 / 201Success. 201 on job creation, 200 elsewhere.
400Validation error — a field is missing or malformed.
401Missing, invalid, or revoked API key.
402Payment 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.
404The referenced app or job doesn't exist on your account.
429Rate limit — counted both per API key and per address — or the monthly generation allowance for your plan.
5xxSomething 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.