Skip to main content
The Ornn Data API authenticates requests with an API key passed as a Bearer token, and not every endpoint requires one.

The Authorization header

Send your key in the Authorization 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.
Your full key (sk_live_...) is shown only once, at creation. Store it somewhere safe. If you lose it, revoke it and create a new one. You cannot retrieve it later.

Which endpoints need a key?

Ornn Data’s access tiers mirror what you can already see for free on index.ornn.com. A specific set of GPU and token indices is public with a limited history window; an API key unlocks the full history, every other index, and the premium datasets. 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 full history — the response then returns "access": "full". 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.
To discover the free-vs-paid split at runtime — for example to render a pricing table — pair the full catalog with its -free companion: /api/gpu-types with /api/gpu-types-free, and /api/token-types with /api/token-types-free. The -free routes return the same list regardless of caller tier.
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 a 401:
A revoked key returns {"error": "Unauthorized", "message": "API key is inactive"}. See Errors & status codes for the full list.