Skip to main content
Financial Data API authenticates every data request with an API key sent in an HTTP header. Create and manage keys in the dashboard: sign up, verify your email, and your key works immediately. See Pricing for per-tier limits. Keys are SHA-256 hashed server-side and never shown again, so store yours securely the moment you create it.
Treat your API key like a password. Keep it out of client-side code, public repositories, and shared logs. If a key is ever exposed, rotate it immediately in the dashboard. Anyone holding the key can make requests with its scopes.

Send your key

You can pass the key in either of two header forms. Both are equivalent. Pick one and use it consistently.
In application code, set the header once on a client or session:

Scopes

Each key is granted one or more scopes. A scope controls which families of routes the key may call. Calling a route your key lacks the scope for returns 403 forbidden.
admin is a superset: a key with admin can also call data:read and ops:read routes. Request the narrowest scope that covers your use case.

Endpoints that need no key

A small set of discovery and health endpoints are open and require no authentication:
  • GET /health
  • GET /ready
  • GET /openapi.json
  • GET /llms.txt
  • GET /llms-full.txt
The /llms.txt and /llms-full.txt files are agent-readable indexes of the API, designed so an AI agent can discover Financial Data API before it ever holds a key.

Errors

Authentication and authorization failures use the standard Financial Data API error envelope with a stable machine-readable code:
401
No key was supplied, or the key is invalid. Check that the header is present and the value is correct.
403
The key is valid but lacks the scope required by the route. Request a key with the needed scope (or use an admin key).
401 unauthorized

Rate limits

Rate limits are enforced per client, per required scope, in a fixed window. Every API response includes the current limit state in headers: Default limits use a 60-second window: data:read allows 1000 requests per minute, ops:read allows 500 per minute, and admin allows 250 per minute. When you exceed a limit, Financial Data API returns 429 rate_limited with details describing the breach:
429 rate_limited
Read x-ratelimit-remaining and x-ratelimit-reset from successful responses to pace your requests before you hit a 429, and back off until the reset time when you do.

Next steps

Quickstart

Make your first authenticated call and page through results.

API reference

Browse every endpoint, parameter, and response field.