Public JSON API
Read-only free reference surface. Prefer static /data/*.json when embedding; API mirrors the same files. Not a licensed PRA feed. Respect robots and cache politely.
As-of and provenance
- Price rows include
date,mid,data_type,source, optionalsource_url, andinterpolated. - Export months include
observation_class:reported,allocated_bridge, orallocated_equal_month. /api/v1/prices/latestreturnsas_ofplushubsmids used by the hub map.- Dashboard charts use anchors only; densified series remain in
/api/v1/pricesfor completeness.
Endpoints
| Endpoint | Description |
|---|---|
| /api/v1/health | Health |
| /api/v1/prices/latest | Latest hub mids + as_of |
| /data/prices-anchors.json | Non-interpolated price anchors (preferred for charts) |
| /api/v1/prices | Full monthly series including densify fills |
| /api/v1/inventory?monthly=1 | Alberta inventory monthly (filter platform_estimate client-side) |
| /api/v1/exports?monthly=1 | Reported + bridge months (default). Add all=1 for equal-month fills |
| /api/v1/exports/annual | Vancouver annual VFPA throughput |
| /api/v1/destinations | Destination mix with Other / unlisted residual |
| /api/v1/netbacks | Origin-matched FOB + freight + transit days |
| /api/v1/outlook/latest | Latest Outlook with as_of ≤ today |
| /api/v1/outlook | Published archive index |
| /api/v1/production/canada | Canada production annual |
| /api/v1/production/us | USGS US annual |
| /api/v1/intel | Open intel archive |
| /api/v1/sources | Sources catalog |
| /api/v1/series/meta | Window + observation-class counts |
| /api/v1/facilities | Canada producers + US facility nodes |
| /api/v1/berths | Vancouver berth capability board (not AIS) |
| /api/v1/series | Series catalog (paths, classes, counts) |
| /api/v1/stems | Stem/logistics open-intel slice |
| /data/audit-report.json | Latest automated audit |
Example
GET /api/v1/prices/latest
→ { "as_of": "2026-07-01", "hubs": { "SR-VAN-FOB-G": 1045, "SR-GULF-FOB-G": 1125, "SR-BASIS-VG": -80, ... }, "data": [ ... ] }
GET /api/v1/exports?monthly=1
→ { "data": [ { "period": "2025-09", "quantity_mt": 386000, "observation_class": "reported", ... } ] }