The Authorization header
Send your key in theAuthorization header on every request to a protected endpoint:
Getting a key
API keys are created in the dashboard, not through the API. Sign in to data.ornn.com, go to Settings → API Keys, and create one. See Manage API keys for details.Which endpoints need a key?
Ornn Data’s access tiers are Index (free), Premium ($500/month, or a 72-hour trial), and Full (custom). Index mirrors what you can already see on index.ornn.com. Ask_prem_ key unlocks every index family at daily grain with complete history. A sk_live_ key unlocks hourly, real-time, and neocloud site data. See Access tiers for the full matrix and data.ornn.com/pricing for prices.
Granularity by tier
Premium is a daily-grain tier at every range: the 1-year view, the all-time view and API-key access are all served at daily. A request for
granularity=hourly or auto is answered at daily rather than refused, so existing integrations keep working — read the granularity field on the response to see what you were served. The two endpoints that exist only to serve sub-daily data, /api/gpu/{gpuName}/hourly and /api/gpu/{gpuName}/realtime, return 403 for a premium key; both are included with a full subscription.
Public GPU indices (current price + trailing 3 months of history, no key): H100 SXM, H200, B200, A100 SXM4, RTX 5090.
Public token indices — OTPI (current value + trailing 1 month of history, no key): anthropic, openai, google, deepseek.
On the windowed endpoints, an anonymous request returns the free window and includes
"access": "public-3mo" (GPU) or "public-1mo" (OTPI). Send your API key to reach the complete history — the response then returns "access": "premium" (Premium/sk_prem_) or "access": "full" (Full/sk_live_). A startDate earlier than the free window, a non-free GPU, or a non-free OTPI lab is only served with a key (otherwise 401). The Workload Cost Index and LLM coding analytics do not have a free window: /api/workload, /api/llm-coding/index, and /api/llm-coding/history require a key on every request.Public index and catalog routes that use the public limiter are limited to 60 requests/minute per IP. Because the limiter runs before optional authentication, sending a valid API key does not switch those requests to a separate per-key limit. See Rate limits.
Authentication errors
If the key is missing, malformed, or invalid, you get a401:
{"error": "Unauthorized", "message": "API key is inactive"}. See Errors & status codes for the full list.
