GET
Get price history
/api/v1/markets/{marketId}/history · public, no key needed
The market's price chart, oldest first.
The YES price the website's chart shows, with the best bid and offer at the time, one point per interval (the last one in it), oldest first. VPX samples a market at most once a minute while it is watched or traded, so quiet periods have gaps. For every execution, use GET /trades.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| marketId * | path | string | The market's id, or its slug |
| interval | query | "raw" | "1m" | "5m" | "1h" | "1d" | Point spacing (default 1h) Default "1h". |
| since | query | string (date-time) | From this time (ISO 8601, e.g. 2026-10-27T18:00:00Z) |
| until | query | string (date-time) | Up to this time (ISO 8601, e.g. 2026-10-27T18:00:00Z) |
Request
curl "https://www.vancouverpx.ca/api/v1/markets/3f1c0f2e-6a55-4a8e-9b53-2a1f0c9d7e11/history?interval=1d"Response
200 with this object:
| Field | Type | Description |
|---|---|---|
| marketId | string | |
| interval | string | |
| points | PricePoint[] | At most 5000, the latest ones |
Example
{
"marketId": "3f1c0f2e-6a55-4a8e-9b53-2a1f0c9d7e11",
"interval": "1d",
"points": [
{
"time": "2026-10-25T00:00:00.000Z",
"price": 51,
"bid": 50,
"ask": 53
},
{
"time": "2026-10-26T00:00:00.000Z",
"price": 54,
"bid": 52,
"ask": 55
}
]
}Errors
MARKET_NOT_FOUND, and the errors every endpoint can answer.