Delivery Estimates

Forecast delivery time (beta)

Beta endpoint. Returns a statistical delivery-time estimate without starting carrier tracking or consuming tracking quota.

Minimum input per shipment

  • carrier_slug (find it with GET /carriers)
  • transport_mode returned for that carrier
  • origin.country_code
  • destination.country_code

Add city/state, a real IATA airport, or an official UN/LOCODE only when known. For a shipment already in transit, supply exactly one of accepted_at, shipped_at, or elapsed_days to receive a remaining-time estimate. Most callers should omit completion_scope; the API chooses the normal boundary for the selected mode.

Read estimate.median_days, estimate.typical_days, and confidence.level first. For progress requests also read estimate.remaining_status. estimated means the right-censored risk set supports a remaining window. insufficient_censored_data or insufficient_tail_data means the API deliberately withheld an optimistic remaining ETA; the total-duration estimate remains available. If route history itself is insufficient, the item returns INSUFFICIENT_DATA. Exact ocean port requests never degrade to a country/global estimate.

post/delivery-estimates

Request

Request body

Example request

{
  "shipments": [
    {
      "client_reference": "order-123",
      "carrier_slug": "sutton-transport",
      "carrier_name": "Sutton Transport",
      "origin": {
        "country_code": "US",
        "admin1_code": "US-MN",
        "city": "Duluth",
        "iata": "JED",
        "unlocode": "SGSIN",
        "port_name": "Singapore"
      },
      "destination": {
        "country_code": "US",
        "admin1_code": "US-MN",
        "city": "Duluth",
        "iata": "JED",
        "unlocode": "SGSIN",
        "port_name": "Singapore"
      }
    }
  ]
}

Response

One result per input item. Most integrations only need median_days, typical_days, and confidence.level. Insufficient data is a per-item result, so mixed batches remain HTTP 200.

generated_atstring date-time required
model_versionstring required

Example response

{
  "results": [
    {
      "model": {
        "version": "delivery-forecast-v1.2",
        "histogram_bucket_hours": 6
      },
      "error": {
        "minimum_sample_count": 8
      }
    }
  ],
  "model_version": "delivery-forecast-v1.2"
}

Changes

No recorded changes to this operation across all 1 revision of this API.