Documentation

Start building with ReefAPI

One API key, one credit pool, 165 production data APIs. Every endpoint returns the same JSON envelope — so once you've called one, you've called them all.

Quickstart

Every request is POST https://api.reefapi.com/<api>/v1/<action> with your key in the x-api-key header and params as a JSON body.

curl -X POST https://api.reefapi.com/currency/v1/convert \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"from":"USD","to":"EUR","amount":1000}'

Every response is the same envelope:

{
  "ok": true,
  "data": { /* the result */ },
  "meta": { "latency_ms": 38, "record_count": 1, "completeness_pct": 100, "cache_hit": false },
  "error": null
}

Create a free account for 1,000 credits, or try any endpoint in the playground with no setup.

Authentication

Pass your key as the x-api-key header on every request. Generate and manage keys from your dashboard — the full key is shown only once, so store it safely. Keep it server-side; never ship it to a browser.

Credits & pricing

All APIs draw from a single credit balance. You're charged only on a successful response — failed or blocked calls (anything where ok is false) cost nothing. Most endpoints cost 1 credit; heavier ones (image rendering, AI, or large result sets) cost more, shown on each API's page. Every call fetches live data — we don't serve stale cached responses. See pricing.

Rate limits

Defaults: ~5 requests/second per key and ~10 requests/second per IP, enforced over a short 3-second rolling window — so brief bursts are fine, but a sustained flood is smoothed. On a limit you get RATE_LIMITED (429) — back off briefly and retry; it clears within seconds. Each API also has its own concurrency budget, so one heavy endpoint can never starve the others. Need higher limits for production traffic? Tell us — we raise them per account.

Errors

On failure, ok is false and error carries a stable code, a message, and retryable.

MISSING_PARAMA required parameter was omitted (400).
INVALID_PARAMA parameter was malformed (400).
NOT_FOUNDThe requested resource doesn't exist (404).
AUTH_FAILEDMissing or invalid x-api-key (401).
QUOTA_EXCEEDEDOut of credits (402).
RATE_LIMITEDToo many requests — back off and retry (429). retryable.
DISABLEDEndpoint temporarily turned off (503).
TARGET_BLOCKEDUpstream anti-bot wall (502). usually retryable.
UPSTREAM_TIMEOUTUpstream took too long (504). retryable.
PARSE_ERRORUpstream changed shape (502).
INTERNALUnexpected error on our side (500).

Use with AI agents

Point ChatGPT, Claude, or Cursor at Reef once and your assistant can call every API directly — no glue code. Add Reef to your assistant's tools:

{ "mcpServers": { "reefapi": {
  "url": "https://api.reefapi.com/mcp",
  "headers": { "Authorization": "Bearer ak_live_…" }
} } }
Browse the API reference

165 APIs · pick one from the sidebar, or start in the playground.

Open the playground →