Boxping
v1 · port 3020 · Israel

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.

$0.12live pull
$0.05cached
$5API key (Polar)

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".

Live path

Public Maersk tracking HTML only. No login. We parse what is on the page. Empty shell = not live.

Pay path

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