← BalticDryIndex.com

BalticDryIndex API

Machine-readable Baltic Dry Index analytics and dry-bulk shipping calculators, built for AI agents and logistics tools. One endpoint is free; the rest are pay-per-call with USDC micropayments over x402 — no signup, no card — or an API-key subscription for regular users.

Base URL

https://www.balticdryindex.com/v1

All endpoints are GET and return JSON. CORS is open.

Paying for a call

Paid endpoints use the x402 protocol. The flow is automatic if your client supports it:

  1. Request the endpoint with no payment → you get HTTP 402 with the price, token (USDC), network and pay-to address.
  2. Your wallet pays and retries with an X-PAYMENT header.
  3. The payment is verified and the data is returned.

Prefer a subscription? Send a header X-API-Key: <your-key> and the payment step is skipped. Contact us for a key.

Settlement: USDC on Base (Solana coming). Prices are per successful call.

Free endpoint

EndpointPriceReturns
GET/v1/latestFreeToday's headline BDI value, change and date.

Example

curl https://www.balticdryindex.com/v1/latest
{
  "index": "BDI",
  "value": 2991,
  "change": 27,
  "pct": 0.91,
  "date": "2026-05-22",
  "source": "Baltic Exchange"
}

Index analytics (paid)

Computed from our own recorded history. These are our analytics, not a copy of the index.

EndpointPriceReturns
GET/v1/signals$0.01Trend states, momentum z-score, volatility, regime, distance from ATH.
GET/v1/brief$0.02Machine-readable market summary with drivers, streaks and per-vessel notes.
GET/v1/forecast$0.05Directional projection with confidence band. Param: horizon (1–30 days, default 7).

Shipping calculators (paid)

Pure computation with built-in vessel, route and commodity reference data. All assumptions are returned and overridable. Estimates, not firm quotes.

EndpointPriceKey parameters
GET/v1/distance$0.01from,to or route or distance_nm; speed_kn
GET/v1/bunker$0.02vessel, route/distance_nm, speed_kn, fuel_price_usd_per_t
GET/v1/tce$0.03vessel, route, freight_rate_usd_per_t, cargo_t, commission_pct
GET/v1/freight-estimate$0.03commodity, route, vessel, daily_hire_usd, fuel_price_usd_per_t
GET/v1/voyage$0.05vessel, route, freight_rate_usd_per_t (optional), cargo_t
GET/v1/co2$0.02fuel_tonnes or (vessel+route), fuel_type, cargo_t

Example — cost to ship iron ore Brazil → China

curl "https://www.balticdryindex.com/v1/freight-estimate?route=tubarao-qingdao&vessel=capesize&commodity=iron_ore"
{
  "estimated_cost_per_tonne_usd": 12.18,
  "estimated_total_cost_usd": 2082363,
  "cargo_t": 171000,
  "vessel": "capesize",
  "distance_nm": 11067,
  "voyage_days": 38.94,
  "cost_breakdown": { "bunker_usd": 1115738, "port_usd": 110000, "hire_usd": 856625 },
  "disclaimer": "Estimate only..."
}

Known routes include Dampier–Qingdao, Tubarao–Qingdao, Newcastle–Qingdao, US Gulf–Qingdao, Richards Bay–Rotterdam and more. Any pair can be priced by passing distance_nm.

Underlying BDI values © Baltic Exchange, served with attribution. Shipping figures are independent estimates and not financial or commercial advice. An MCP server exposing these as agent tools is coming soon.