> ## Documentation Index
> Fetch the complete documentation index at: https://api.tryspecter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limits & Credit Limits

> Two meters govern every request: how fast you can call (rate) and how much data you can pull (credits).

Two meters govern every request: how fast you can call (rate) and how much data you can pull (credits). Each has its own headers and error code.

## Rate limits

Each API key allows **15 requests per second**. Exceed it and requests return `429 RATE_LIMITED` — wait for the one-second window to reset, then retry.

### Headers

| Header                  | Meaning                             |
| ----------------------- | ----------------------------------- |
| `X-RateLimit-Limit`     | Max requests per second             |
| `X-RateLimit-Remaining` | Requests left in the current window |
| `X-RateLimit-Reset`     | Seconds until reset                 |

### Notes

* Limits apply per API key, shared across your team — parallel jobs draw on the same budget.
* Bulk endpoints (up to 50 items per request) cut your request volume.

## Credit usage

Data is metered in credits per billing period. Every reference page states its exact cost in a note at the top.

### How credits are charged

* **Single lookups** (search, get by ID) — 1 credit per request.
* **Per-result endpoints** (enrich, bulk, list and search results) — charged per record returned. Misses aren't charged; queued enrichments are billed when the async pipeline fulfils them.
* **Revenue signals** (company, list, and search results) — 10 credits per signal returned. Get by ID costs 1 credit per request.
* **Management and detail endpoints** — no credit cost.

When credits run out, requests return `402 OUT_OF_CREDITS` and stop until the allowance resets.

### Headers

The `X-CreditLimit-*` headers appear on `402` and `429` responses:

| Header                    | Meaning                      |
| ------------------------- | ---------------------------- |
| `X-CreditLimit-Limit`     | Total credits for the period |
| `X-CreditLimit-Remaining` | Credits left                 |
| `X-CreditLimit-Reset`     | Seconds until credits renew  |

### Best practices

* Track credit usage client-side (you know each call's cost up front) so a `402` never surprises you mid-run — `X-CreditLimit-Reset` tells you when it renews.
* Use bulk endpoints to cut both rate and credit usage.
* Use the no-cost management and detail endpoints for dashboards and monitoring.
* Expect empty results (not errors) when data isn't available.
