FlashData API V2

Errors and retries

Use the HTTP status for protocol behavior, the stable code for product logic, and requestId for support and tracing.

Problem response

application/problem+json
{
  "type": "https://api.flashdata.dev/problems/rate_limited",
  "title": "Rate limited",
  "status": 429,
  "code": "rate_limited",
  "requestId": "req_01J..."
}

Retry decisions

400 / 422

Fix request shape or field values; do not retry unchanged.

401 / 403

Refresh credentials or permissions; never loop retries.

402

Restore available credits before retrying a charged request.

409

Read current resource state, then decide whether to retry.

429

Honor Retry-After and use bounded exponential backoff.

500 / 503

Retry idempotent operations with jitter and the same idempotency key.