---
title: "API rate limits"
description: "How Noxtica API rate limiting behaves: the 429 response, the Retry-After header and how to back off and retry. No plan figures are listed here."
canonical_url: "https://noxtica.com/docs/api/rate-limits/"
markdown_url: "https://noxtica.com/docs/api/rate-limits/index.md"
last_updated: 2026-10-27
published: 2026-10-27
section: "server-apis"
section_title: "Server APIs"
openapi_release: "v0.4.0"
openapi_spec_version: "0.4.0"
site: "Noxtica"
language: "en"
source: markdown
---

# API rate limits

Noxtica limits how often a caller can use an operation. Limits depend on the operation and on your account, so this page describes the mechanism and does not list figures. Do not hard-code a limit: the response tells you when to try again.

## What a limited request returns

A request over its limit is rejected with HTTP status `429` and a JSON body. The `Retry-After` header holds the number of seconds to wait before the next request.

| Header | Meaning |
| --- | --- |
| `Retry-After` | Seconds until the bucket allows another request. |

| Field | Type | Always returned | Description |
| --- | --- | --- | --- |
| `error` | string | No | Allowed values: `Rate limit exceeded`. |
| `retryAfter` | integer | No |  |
| `requestId` | string | No |  |

Example body:

```json
{
  "error": "Rate limit exceeded",
  "retryAfter": 1,
  "requestId": "req-test"
}
```

| Header | Meaning |
| --- | --- |
| `Retry-After` | Seconds until the window resets. |

| Field | Type | Always returned | Description |
| --- | --- | --- | --- |
| `code` | string | Yes | Stable machine-readable identifier. |
| `error` | string | Yes |  |
| `message` | string | No |  |
| `requestId` | string | No |  |

| Header | Meaning |
| --- | --- |
| `Retry-After` | Seconds until the bucket allows another request. |

| Field | Type | Always returned | Description |
| --- | --- | --- | --- |
| `error` | string | Yes | Allowed values: `Rate limit exceeded`. |
| `retryAfter` | integer | Yes | Seconds to wait; equals the `Retry-After` header. |
| `requestId` | string | No |  |

Example body:

```json
{
  "error": "Rate limit exceeded",
  "retryAfter": 12,
  "requestId": "req-test"
}
```

## How to retry

1. Stop sending requests for the operation until the `Retry-After` period has passed.
2. Retry the request once, then increase the wait on each further `429`, with random jitter, up to a maximum you choose.
3. Retry only requests that are safe to repeat. For an operation that creates something, send an `Idempotency-Key` where the operation accepts one so a retry cannot create a second copy.
4. Spread bulk work over time instead of sending it in one burst.

_This page is generated from the Noxtica OpenAPI specification release `v0.4.0`: `kyc.yaml` version `1.2.0-2026-10-27` (SHA-256 `c91a695cfde0`), `mcp.yaml` version `0.1.0-2026-10-27` (SHA-256 `1a4875efa736`), `pulse.yaml` version `0.9.0-2026-10-27` (SHA-256 `95196a58bb5b`), `v1.yaml` version `1.3.0-2026-10-27` (SHA-256 `3fd15257a022`). Do not edit it by hand._
