REST Quickstart
Get started with the Massari REST API
Every endpoint here runs the same code the Massari terminal runs, then removes what we will not promise. There is no second implementation to fall out of step, because there is no second implementation. What you read on the screen is what you get on the wire.
Browse the surface
38 endpoints across eight groups. Pick a group to see its paths, parameters and response contract.
Authenticate
One token, sent as a bearer credential on every request. There is no anonymous tier, so an endpoint that looks public still needs it. Access is arranged with us directly rather than self served, which means we know what you are building and can size it with you.
export MASSARI_TOKEN="msk_..."
curl "https://api.massari.ai/v1/gex/SPY" \
-H "Authorization: Bearer $MASSARI_TOKEN"Your first request
The call above returns end of day dealer gamma levels for one symbol. A successful response carries X-Massari-Contract: v1, which marks a body that has been reduced to the contract documented on its endpoint page. If that header is missing you are talking to something other than the supported surface.
Reading a response contract
Every endpoint states which parts of its response we are standing behind. This is the part of an API that usually goes unsaid, and it is the part that costs you a week when it turns out to be wrong.
Every field in the response is part of the contract.
Only the fields listed are promised. Anything else may change.
Everything except the fields named as withheld, which are ours and not yours.
Every contract was last checked against the live API on August 18, 2026. The check calls the endpoint across several subjects, reads every field it returns at every level of the response, and fails if anything comes back that these pages do not describe.
Errors and limits
| Status | Meaning |
|---|---|
| 401 | No credential, or a credential that is not active. |
| 404 | No data for that identifier. The endpoint is fine; the subject is not covered. |
| 429 | Rate limited. Back off and retry. |
| 5xx | Ours. Retry, and tell us if it persists. |
An upstream failure is passed through with its own status rather than dressed as an empty success, so a 404 always means absence and a 200 always means data.