REST API

REST API reference

23 endpoints under the base path /api/v1. All routes are API-key protected except GET /health.

Pass your key with the X-API-Key header (or Authorization: Bearer). See Authentication for headers, errors, and quotas.

Commodity(7)

Current active commodity impact alerts, newest first, each with a severity band and an impact_score.

NameRequiredType / defaultDescription
limitoptionaldefault 50, range 1–500Max alerts to return.
severityoptionallow/moderate/high/criticalFilter to a single severity band.

Daily closing price history for a commodity symbol.

NameRequiredType / defaultDescription
symboloptionalstringCommodity symbol; omit for all.
daysoptionaldefault 30Days of history.

Breaks a (region, commodity) impact score into weather vs tariff factors.

NameRequiredType / defaultDescription
symbolrequiredstringCommodity symbol.
regionrequiredstringRegion ID.
dateoptionalYYYY-MM-DD, default todayDate to decompose.

Historical weather episodes most similar to a region's conditions, plus a forward price-move distribution.

NameRequiredType / defaultDescription
regionrequiredstringRegion ID.
symbolrequiredstringCommodity symbol.
dateoptionalYYYY-MM-DDReference date.
limitoptionaldefault 5, range 1–20Max analogs.
min_similarityoptional0–100Minimum similarity score.
same_stageoptionaltrue/falseRestrict to the same crop growth stage.

Standardized 1–14 day forward weather-impact outlook for a (region, commodity).

NameRequiredType / defaultDescription
regionrequiredstringRegion ID.
symbolrequiredstringCommodity symbol.

Seasonal climate percentiles vs the record since 1981.

NameRequiredType / defaultDescription
regionrequiredstringRegion ID.
dateoptionaldefault latest weather dayDate to rank.

Streaming per-day backtest matrix (CSV or JSONL) for one (region, symbol).

NameRequiredType / defaultDescription
regionrequiredstringRegion ID.
symbolrequiredstringCommodity symbol.
fromoptionaldefault to−1yrStart date (inclusive).
tooptionaldefault todayEnd date (inclusive).
formatoptionaldefault csv; csv|jsonlOutput format.

Tariffs(2)

Currently active US import tariff rates (USITC HTS).

NameRequiredType / defaultDescription
symboloptionalstringCommodity symbol; omit for all.

Historical US import tariff rates for a commodity.

NameRequiredType / defaultDescription
symbolrequiredstringCommodity symbol.
daysoptionaldefault 90Days of history.

Shipping(3)

Latest buoy observations per active station (port-operational score, delay probability).

NameRequiredType / defaultDescription
corridoroptionalstringCorridor ID; omit for all.

Shipping-disruption risk for one grain export corridor (sea-state + river-draft where applicable; worse-of).

404 if no buoy data for the corridor.

NameRequiredType / defaultDescription
corridorrequiredstringCorridor ID.
dateoptionaldefault todayDate to evaluate.

Global maritime shipping-disruption index: 0–100 per chokepoint/corridor plus a weighted global composite.

No parameters.

Grid(6)

Lists the US balancing authorities / ISOs covered (id, name, ISO, EIA BA code, lat/lon).

No parameters.

Standardized 0–10 grid reliability stress per BA plus a demand-weighted national composite.

NameRequiredType / defaultDescription
regionoptionalstring (alias iso)Narrow to one BA; region wins over iso; omit for all + national.

Forward weather-driven grid demand outlook (~14 days) for one BA.

NameRequiredType / defaultDescription
regionrequiredstringBA / ISO id.

Forward 'cleanest hours' carbon projection (~48h) for one BA.

NameRequiredType / defaultDescription
regionrequiredstringBA / ISO id.

Average grid carbon intensity (gCO2/kWh) per BA from EIA-930, with a clean/moderate/high band.

No parameters.

Cleanest upcoming carbon window plus current grid-stress for one BA, in one call.

NameRequiredType / defaultDescription
regionrequiredstringBA / ISO id.

Meta(5)

Cross-domain snapshot: coverage, top current alerts, national grid stress, global shipping status.

No parameters.

Creates a webhook alert subscription (secret returned once).

JSON body. 201 on success; 422 if the per-key subscription limit is reached.

NameRequiredType / defaultDescription
regionoptionalstringFilter to a region.
symboloptionalstringFilter to a symbol.
min_severityrequiredlow/moderate/high/criticalMinimum severity that triggers the webhook.
target_urlrequiredHTTPS URLDelivery URL (Slack incoming webhooks supported).

Deletes one of the key's subscriptions.

204 on success; 404 if not found / not owned.

NameRequiredType / defaultDescription
idrequiredUUID (path param)Subscription id.