Container Tracking

Check a container number, identify its carrier and try to read tracking details. Returns available status information and tracking links.

Pay by wallet (x402) AI-generated container-track

Example

Example answer
{
  "error": "Invalid container number format. Expected ISO 6346: 4 letters (3 owner code + U/J/Z) + 6 digits + 1 check digit. Example: MAEU1234567.",
  "carrier": "unknown",
  "category": "",
  "owner_code": "",
  "check_digit": "",
  "valid_format": false,
  "serial_number": "",
  "tracking_urls": {
    "searates": "https://www.searates.com/container/tracking/?number=TEST",
    "track_trace": "https://www.track-trace.com/container?number=TEST"
  },
  "tracking_status": "Container number format is invalid. Cannot track.",
  "container_number": "TEST",
  "check_digit_valid": false,
  "expected_check_digit": null
}

Inputs

FieldTypeRequiredWhat it is
carrierstringNo—
container_numberstringYesContainer number (e.g. MAEU1234567)

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
eventsarrayAlways (present in every successful answer)
statusstringAlways (present in every successful answer)
carrierstringAlways (present in every successful answer)
valid_formatbooleanAlways (present in every successful answer)
container_numberstringAlways (present in every successful answer)

How to call it

The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.

# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
  -H "Authorization: Bearer $STRALE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "capability_slug": "container-track",
    "inputs": {
      "container_number": "test_value"
    },
    "max_price_cents": 5
  }'

Limitations

  • Carrier website changes can interrupt tracking

    Tracking reads carrier websites, whose page layouts can change without notice and cause temporary failures.

    What to do instead: If tracking fails, use the carrier name and container number to check the carrier's website directly

  • Positions may update only at port milestones

    Tracking updates depend on carrier reporting frequency — some carriers update positions only at port milestones, not in transit

    What to do instead: Check the last_updated timestamp in the response to assess data freshness before making logistics decisions