---
title: "API errors"
description: "Every error QuotaStack returns, grouped by status, with the type URI, why it happens, and how to fix it."
---

# Errors

Every 4xx and 5xx QuotaStack returns carries a `type` URI — `https://api.quotastack.io/errors/<slug>` — that resolves to the matching page below.

## 4xx

| Status | Slug | Title |
|---|---|---|
| 400 | [`bad-request`](/docs/api/errors/bad-request.md) | Bad Request |
| 401 | [`invalid-credentials`](/docs/api/errors/invalid-credentials.md) | Invalid credentials |
| 401 | [`unauthorized`](/docs/api/errors/unauthorized.md) | Unauthorized |
| 403 | [`access_controls_required`](/docs/api/errors/access_controls_required.md) | Access controls required |
| 403 | [`email_not_verified`](/docs/api/errors/email_not_verified.md) | Email not verified |
| 403 | [`forbidden`](/docs/api/errors/forbidden.md) | Forbidden |
| 403 | [`live_access_required`](/docs/api/errors/live_access_required.md) | Live access required |
| 403 | [`live_access_suspended`](/docs/api/errors/live_access_suspended.md) | Live access suspended |
| 403 | [`sandbox_access_required`](/docs/api/errors/sandbox_access_required.md) | Sandbox access required |
| 403 | [`sandbox_access_suspended`](/docs/api/errors/sandbox_access_suspended.md) | Sandbox access suspended |
| 404 | [`not-found`](/docs/api/errors/not-found.md) | Not Found |
| 409 | [`conflict`](/docs/api/errors/conflict.md) | Conflict |
| 409 | [`idempotency-key-reuse`](/docs/api/errors/idempotency-key-reuse.md) | Conflict |
| 409 | [`insufficient-credits`](/docs/api/errors/insufficient-credits.md) | Insufficient Credits |
| 409 | [`key_quota_exceeded`](/docs/api/errors/key_quota_exceeded.md) | Key quota exceeded |
| 409 | [`reservation-expired`](/docs/api/errors/reservation-expired.md) | Reservation Expired |
| 422 | [`validation-error`](/docs/api/errors/validation-error.md) | Validation Error |
| 422 | [`variant-not-active`](/docs/api/errors/variant-not-active.md) | Unprocessable Entity |
| 429 | [`account-locked`](/docs/api/errors/account-locked.md) | Account locked |
| 429 | [`rate-limited`](/docs/api/errors/rate-limited.md) | Too Many Requests |

## 5xx

| Status | Slug | Title |
|---|---|---|
| 500 | [`commit-failed`](/docs/api/errors/commit-failed.md) | Commit Failed |
| 500 | [`internal`](/docs/api/errors/internal.md) | Internal Server Error |
| 500 | [`internal-error`](/docs/api/errors/internal-error.md) | Internal Server Error |

23 of 23 errors documented in full.
