## `401 UNAUTHORIZED` or `INVALID_API_KEY`

- Confirm the key is copied exactly. Keys are shown once at creation.
- Confirm the key is not revoked.
- Send it as `Authorization: Bearer <key>`. The legacy `x-api-key` header is still accepted on the API host; the MCP server accepts Bearer only.

## `429 RATE_LIMITED`

You exceeded the request limit for the key: 60 requests per minute on email verification, 10 requests per second by default on other metered tools. Back off and retry after the `Retry-After` interval. See [Rate limits and credits](/concepts/rate-limits).

## `402 INSUFFICIENT_CREDITS`

The prepaid wallet cannot cover the price of the call. Top up in the dashboard under **Billing**. There is no monthly allowance; the wallet is spent from the first call, and a refused call costs nothing.

## `402 BUDGET_EXCEEDED` or `CALL_CAP_EXCEEDED`

A credit cap or call cap set on this key, org or agent would be exceeded. Raise the cap in the dashboard or use a key without one.

## `402 POLICY_DENIED`

A deny rule on the key blocked this host, path or method. The rule's note is in the response body.

## `409 CATALOG_PRICE_UNVERIFIED`

The entry's price has no provenance, so the call is refused rather than served as free. This is a catalog problem on our side; write to us.

## `502 UPSTREAM_ERROR` or `UPSTREAM_UNAVAILABLE`

The provider behind the tool answered an error or could not be reached. Nothing was charged. Retry shortly.

## `403 EMAIL_NOT_VERIFIED`

Verify your email first: open the link sent at registration, or call `POST /auth/resend-verification`.

## `400 VALIDATION_ERROR`

The request does not match the entry's input. For email verification, `email` must be a syntactically valid address; for bulk jobs, the multipart field is `file`.

## Turnstile errors

- `TURNSTILE_REQUIRED`: a token must be included on register and login.
- `TURNSTILE_FAILED`: token invalid or expired; refresh the widget and retry.

## Top-up paid but credits not added yet

Credits are added only when Polar confirms the payment to us (`order.paid`), which usually takes a few seconds after checkout. Check the invoice with `GET /billing/topup/status/{invoice_id}` or refresh **Billing** in the dashboard:

- `pending`: the payment has not been confirmed yet. Wait a moment and check again.
- `paid`: the credits are in your balance.
- `review`: the order did not match the invoice and is held for a person to check. Write to us with the invoice id.
- `failed`: the checkout could not be created or the payment did not go through. Nothing was charged; start a new top-up.

Do not pay the same checkout twice. If a payment left your card and the invoice is still not `paid` after a few minutes, write to us with the invoice id.

## Still stuck

- Email [hello@1toolring.com](mailto:hello@1toolring.com).
- Security reports go to [support@1toolring.com](mailto:support@1toolring.com) (`/.well-known/security.txt`).