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.
402Monthly credit allowance exhausted.
404The referenced app or job doesn't exist on your account.
429Too many requests — slow down and retry.
5xxSomething failed on our side. Safe to retry with backoff.

Error bodies follow a consistent shape:

error
{
  "statusCode": 402,
  "message": "Monthly credit limit reached (100/month on the free plan). Resets on the 1st (UTC).",
  "error": "Payment Required"
}

The credit model

Generation is metered in credits. Each key carries a monthly allowance, and operations are charged when the work is accepted:

  • Screenshot set — 5 credits per generation job.
  • Onboarding an app and polling jobs are free.

Every screenshot response echoes your usage so you can track it without a separate call:

credits in the response
"credits": { "cost": 5, "remaining": 95 }
When you run out
Once the monthly allowance is spent, generation returns 402 until it resets on the 1st (UTC). Onboarding and polling keep working. Need a higher limit? Reach out from the Studio.

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.