One map, four interfaces
TrackJet exposes every capability through machine interfaces. Docs explain here; the normative reference lives at /developers and /developers/api — no duplicated specs that can drift.
REST + GraphQL
The commercial API: detection, tracking surfaces, carriers, webhooks, EPCIS. OpenAPI 3.1 at /api/v1/openapi.json. Start with the quickstart.
Every REST response — success or error — uses the same envelope, so error handling is uniform. A keyed call looks like:
``bash curl -s https://trackjet.world/api/v1/track/MSCU2095867 \ -H 'Authorization: Bearer <your-key>' ``
Without a key you get a structured 401 rather than an opaque failure — the shape is the contract:
``json { "ok": false, "error": { "code": "unauthorized", "message": "Missing or invalid API key.", "status": 401 }, "meta": { "request_id": "33d44e16…", "api_version": "v1" } } ``
ok, meta.request_id and meta.api_version are present on every response. Keys come from the dashboard; the full surface is in the quickstart.
MCP (Model Context Protocol)
Twelve read-only tools for AI agents — detection, carrier info, transit statistics, delivery probability, timeline verification, truth assessment — served per the MCP spec. Connect Claude or any MCP client to https://trackjet.world and your agent can answer "is this container number valid and where does it track?" with live data. No key needed to list the tools:
``bash curl -s https://trackjet.world/mcp -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' ``
returns the twelve tools — detect_tracking_number, get_carrier_info, get_tracking_url, list_supported_carriers, … — each with its own JSON schema. Full tool list + client config: /developers and the MCP doc.
SSE live streams
GET /api/v1/track/{number}/stream pushes events as they arrive where a licensed feed exists (DHL Group today); other numbers close immediately with no_live_feed — never fabricated events.
EPCIS 2.0
Supply-chain capture/query in the GS1 shape — see EPCIS onboarding.
Transparency endpoints (public, no key)
Proof, inclusion and root-history endpoints back the verification story — see transparency for auditors. They are public because a transparency log you cannot read is theatre.
Changelog & status
API changes are announced in the blog; live availability is on /network-status.