Get an intraday bar series
Sub-daily bars at 1min, 5min, 15min, 30min or 1hour resolution. These bars are RAW and are NOT corporate-action adjusted - there is no adjusted parameter, because adjustment is a daily-series concern and applying a split ratio to sub-daily bars inside a live session produces numbers no exchange ever printed. Use the daily price endpoint with adjusted=true for an adjusted series. Served for equity, etf, index and crypto instruments; every other asset class is refused with 400 rather than answered from a chain that cannot serve sub-daily data. A provider that cannot serve the requested resolution is skipped by failover, never substituted with a coarser series, so the returned interval always equals the requested one.
Sub-daily bars at 1min, 5min, 15min, 30min or 1hour resolution. These bars are RAW and are NOT corporate-action adjusted - there is no adjusted parameter, because adjustment is a daily-series concern and applying a split ratio to sub-daily bars inside a live session produces numbers no exchange ever printed. Use the daily price endpoint with adjusted=true for an adjusted series. Served for equity, etf, index and crypto instruments; every other asset class is refused with 400 rather than answered from a chain that cannot serve sub-daily data. A provider that cannot serve the requested resolution is skipped by failover, never substituted with a coarser series, so the returned interval always equals the requested one.
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. Expanded to 00:00:00Z of that day.
^\d{4}-\d{2}-\d{2}$Last session date, inclusive. Expanded to 23:59:59.999Z of that day.
^\d{4}-\d{2}-\d{2}$Bar resolution. A closed set: an unsupported token is rejected with 400 naming the allowed values, never quietly answered with a coarser series.
Value in
- "1min"
- "5min"
- "15min"
- "30min"
- "1hour"
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/intraday?from=string&to=string&interval=1min"{ "data": [ { "barTimestamp": "string", "openPrice": 0, "highPrice": 0, "lowPrice": 0, "closePrice": 0, "volume": 0, "quoteCurrency": "string", "quoteUnit": "string", "source": "string" } ], "meta": { "asOf": "string", "source": "string", "stale": true, "interval": "1min" }}{ "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" ] } }}List catalyst events GET
The discrete, company-confirmed news events for an instrument - the catalyst-class facts, newest first. A strict subset of /news filtered to isCompanyConfirmed=true, so nothing here is a rumour or third-party-only report. Filter by date range and eventClass; cap with limit.
List news events GET
The news stream for an instrument, newest first. Filter by published-date range and eventClass, and cap the page with limit. Every row carries isCompanyConfirmed: true means the company itself stood behind the event (an official release or filing), false means third-party-only reporting, so a consumer can weight a confirmed catalyst above a rumour. For the confirmed subset alone, use /events.