Where is the box.
A tiny ocean container tracking API an operator can sell. Public track-and-trace. Honest fixtures when the live page is quiet.
Demo track stays open until payment is required.
After Polar marks the checkout succeeded/paid/confirmed we mint a key
and show it once on the success page (also GET /v1/key?checkout_id=).
Send it as Authorization: Bearer or X-Api-Key on
/v1/track. Unpaid checkouts get 402/404 — no invented key.
Empty Polar keys → HTTP 503 polar_unset.
Alternate Polar product you can create: 50 live pulls pack, $6.
Call it
GET /v1/track?id=MSCU1234567 GET /v1/track?id=MSCU1234567 Authorization: Bearer <key> GET /v1/track?id=MSCU1234567 X-Api-Key: <key> GET /v1/key?checkout_id= GET /v1/vessel?imo=9286243 POST /v1/checkout GET /.well-known/x402 GET /health
Demo boxes
MSCU1234567 (MSC → Haifa) and MSKU0072092 (Maersk → Ashdod).
If a live Maersk public page parse fails, we still serve these — labeled
source: "fixture", never "live".
Public Maersk tracking HTML only. No login. We parse what is on the page. Empty shell = not live.
Demo is open, with X-RateLimit-*. Polar: POST /v1/checkout then a real key after Polar says paid. Paid keys: Authorization: Bearer or X-Api-Key. Production gate: HTTP 402 and retry with X-PAYMENT.
Legal line
- Public track-and-trace pages only.
- No login bypass. No account cookies.
- No MarineTraffic resale. No stolen AIS commercial feed.
- AIS in v1 is a static fixture (lat/lon stub).