Documentation

Start building with ReefAPI

One API key, one credit pool, 64 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 cost nothing. Most endpoints cost 1 credit; heavier ones (image rendering, AI, or large result sets) cost more, shown on each API's page. Cache hits still bill (you got a response) — caching saves our cost, not yours. See pricing.

Rate limits

Defaults: 600 requests/min per IP and 120 requests/min per key (some endpoints override these). On a limit you get RATE_LIMITED (429) with a retry hint — back off and retry.

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:

{ "reef": { "url": "https://mcp.reefapi.com" } }
Browse the API reference

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

Open the playground →