Start building with ReefAPI
One API key, one credit pool, 585 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. Successful responses consume credits. Verified SHEIN NOT_FOUND responses on product/detail and price cost 4 credits; timeout, blocked and capacity errors remain free. A billed absence still returns ok: false, data: null, and meta.charged_credits: 4. Other failed calls remain free. 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: 30 requests every 3 seconds per key, which is about 10 requests a second, and the same again per client IP. The window is counted per endpoint, so product/detail and product/offers each get their own budget instead of sharing one. Brief bursts are fine, 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 a higher sustained rate than that? It comes with a Custom plan — tell us the rate you need to hold and we will price it.
Errors
On failure, ok is false and error carries a stable code, a message, and retryable.
| MISSING_PARAM | A required parameter was omitted (400). |
| INVALID_PARAM | A parameter was malformed (400). |
| NOT_FOUND | The requested resource doesn't exist (404). |
| AUTH_FAILED | Missing or invalid x-api-key (401). |
| QUOTA_EXCEEDED | Out of credits (402). |
| RATE_LIMITED | Too many requests — back off and retry (429). retryable. |
| DISABLED | Endpoint temporarily turned off (503). |
| TARGET_BLOCKED | Upstream anti-bot wall (502). usually retryable. |
| UPSTREAM_TIMEOUT | Upstream took too long (504). retryable. |
| PARSE_ERROR | Upstream changed shape (502). |
| INTERNAL | Unexpected 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_…" }
} } }585 APIs · pick one from the sidebar, or start in the playground.
Open the playground →