Get a price series
Daily bars for a date range. Set adjusted=true to apply the corporate-action set server-side. The response carries actionSetVersion: re-request the same version and the numbers are identical, permanently. Supply asOf to adjust using only the actions known on that date, which is what makes a backtest reproducible rather than silently re-stated.
Daily bars for a date range. Set adjusted=true to apply the corporate-action set server-side. The response carries actionSetVersion: re-request the same version and the numbers are identical, permanently. Supply asOf to adjust using only the actions known on that date, which is what makes a backtest reproducible rather than silently re-stated.
Authorization
ApiKeyAuth prices:readPresent your API key as a bearer token: Authorization: Bearer pk_live_....
Two environments are issued per account. A pk_test_ sandbox key returns the SAME real historical data as a live key and does NOT consume your LIVE allowance, so learning the API is free. It has its own separate windows and can be rate limited on them. A pk_live_ key reads against your allowance.
Keys carry explicit scopes (instruments:read, prices:read, actions:read, fx:read, earnings:read, options:read, news:read, sentiment:read, events:read, analytics:read, correlations:read, technicals:read, macro:read) and are enforced fail-closed, so a leaked key is bounded to what it was issued for. Revocation is immediate.
In: header
Scope: prices:read
Path Parameters
Instrument identifier (UUID).
uuidQuery Parameters
First session date, inclusive.
^\d{4}-\d{2}-\d{2}$Last session date, inclusive.
^\d{4}-\d{2}-\d{2}$Apply corporate-action adjustment server-side. The adjustment arithmetic exists once, here, rather than subtly differently in every consumer.
"false"Value in
- "true"
- "false"
Point-in-time knowledge cut-off. Returns the answer as it would have been known at this moment, excluding any corporate action that only became knowable afterwards. A date is treated as the end of that day; a full ISO instant is used exactly.
^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{1,3})?Z)?$Include corporate actions whose knowledge date is unknown (provenance = backfilled). Off by default, because such an action cannot honestly be presented as something a reader knew on your asOf date. Setting it true forces meta.provenance.pitValid to false whenever such an action actually contributed.
"false"Value in
- "true"
- "false"
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/instruments/497f6eca-6276-4993-bfeb-53cbbbba6f08/prices?from=string&to=string"{ "data": [ { "barDate": "string", "openPrice": 0, "highPrice": 0, "lowPrice": 0, "closePrice": 0, "volume": 0, "quoteCurrency": "string", "quoteUnit": "string", "stale": true, "asOf": "string", "source": "string" } ], "meta": { "asOf": "string", "source": "string", "stale": true, "adjusted": true, "actionSetVersion": -9007199254740991, "provenance": { "observed": -9007199254740991, "vendor_pit": -9007199254740991, "announced": -9007199254740991, "backfilled": -9007199254740991, "pitValid": true }, "priceBasis": { "priceBasis": "raw", "adjustedThrough": "string", "actionsApplied": -9007199254740991, "actionsAlreadyReflected": -9007199254740991 }, "actionCoverage": { "checked": true, "lastCheckedAt": "string", "source": "string", "coveredFrom": "string", "actionsFound": -9007199254740991, "coversSeries": true, "gap": "never_checked" } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}Get an option chain GET
Listed contracts for an underlying with their latest observed quote and their Greeks, optionally narrowed by expiry, strike and right. Every Greek declares its greeksSource: provider is an observation, computed is a model output that additionally carries the model name and the spot, rate and dividend yield it was run with, so the number can be reproduced or falsified rather than merely trusted. A contract whose Greeks were neither supplied nor computable is returned WITH its quote and WITHOUT Greeks, naming the missing inputs - never zeros, and never nulls that read as measured. meta.greeksCoverage counts the observed / modelled / absent split across exactly the rows returned.
List sentiment scores GET
Signed sentiment scores for an instrument, returned EXACTLY as stored and never rescaled - negative is bearish, positive is bullish, magnitude is the source own scale. Every row carries subjectClass (business sentiment may LEAD price; market_commentary is REACTIVE and must not be read as a signal) and isHeadlineOnly (whether the score is headline-only, a lower-confidence coverage depth). Filter by as-of date range, subjectClass and source.