Get an API key
Create and manage keys at app.blockworks.com/account/api. Keys are shown once at creation, so store yours in a secret manager or environment variable.Using your key
Pass the key in theX-Blockworks-API-Key header on every request to https://api.blockworks.com:
The header name is
X-Blockworks-API-Key. Header names are case-insensitive, so
x-blockworks-api-key works identically. The legacy x-messari-api-key header is still
accepted for existing integrations; new code should send X-Blockworks-API-Key.Access tiers
Not every dataset requires the same level of access. Each model in the catalog declares an access tier, and the API enforces it per request:
Models restricted to internal users do not appear in the public catalog or in this reference.
Paid is the default tier of the reference, so reference pages only call out the exceptions (public
models and models that need a specific permission). You can read the tier of any model from
access.tier in the
catalog endpoints. See Errors for
the exact messages.
Rate limits
Each account gets one allowance, shared by every endpoint it calls. The allowance depends on your plan:
Every response reports where you stand in the current window:
A request over the limit gets
429 Too Many Requests with a Retry-After header giving the whole
number of seconds to wait before the next request will succeed:
Retry-After before you retry, and send one request at a time while you wait.
Handling keys safely
Server-side only
Call the API from your backend. A key shipped to a browser or mobile app is a public key.
Environment variables
Load the key from the environment or a secrets manager rather than hardcoding it.
Rotate regularly
Regenerate your key periodically, and immediately if you suspect it has leaked.
Verify your setup
/query/ping is a lightweight endpoint for confirming your client is wired up correctly. The
request above returns: