Skip to main content
The Tumban API uses standard HTTP status codes. Failures return a JSON body with a detail field; validation errors include a list of field-level reasons.

Status codes

Error envelope

Most errors:
Validation errors (422) — detail is a list. Each entry follows the underlying validation library’s native shape: loc (an array of segments locating the offending field), msg, type, and may include input, ctx, and url.
Use loc to locate the field — the last segment is the field name.

Common detail strings

Rate limits

When the organization’s daily_scan_limit is exceeded, scan-submission endpoints return 429 with a JSON object (not a string) under detail:
  • error — always daily_scan_limit_exceeded for this case.
  • limit — the org’s configured cap.
  • used — scans counted against the cap so far today (UTC day, rolls over at 00:00 UTC).
Create batch has a partial-acceptance path: if the batch is larger than the remaining budget, the request succeeds with the first N profiles accepted and the response sets daily_limit_truncated and profiles_skipped. Only a fully-rejected batch (zero capacity remaining) returns 429. Tumban does not return X-RateLimit-* headers or accept an Idempotency-Key header. Plan retries around the 429 body shape above.