Shipping rates API

Quote shipping for a basket of variants bound for a destination address. Rates are advisory — the final charge is locked in when the order is created.

Base URL: https://developer.allthe.com/api/v1 Required scope: shipping:read Status: request shape stable; live pricing wiring coming soon (501 not_implemented today).

Not implemented yet. Every call returns 501 not_implemented. The request and response shapes below are settled and will not change, but nothing is wired behind them. To get real shipping figures today, call POST /orders/estimate — it prices a full basket, charges nothing, and returns the same numbers the order would be charged.

Endpoint

POST /shipping/rates
Content-Type: application/json

Request body

{
  "destination": {
    "country":  "GB",
    "postcode": "EC1V 2NX",
    "state":    null,
    "city":     "London"
  },
  "items": [
    { "variant_id": "ckv1...", "qty": 2 },
    { "variant_id": "ckv2...", "qty": 1 }
  ],
  "currency": "GBP"
}

| Field | Type | Notes | | ------------------- | ------ | --------------------------------------------------- | | destination.country | string | ISO 3166-1 alpha-2 (GB, US, DE, …). | | destination.postcode | string | Full postcode. Required for all countries. | | destination.state | string | Two-letter state/region for US, CA, AU. | | destination.city | string | Optional, improves carrier matching. | | items[].variant_id | string | Base product variant id from the Catalog API. | | items[].qty | int | 1–10 000. | | currency | string | ISO 4217 currency code. Defaults to GBP. |

Response (planned shape)

{
  "data": [
    {
      "id": "rate_standard_uk",
      "service": "Standard",
      "carrier": "Royal Mail 48",
      "amount": 3.99,
      "currency": "GBP",
      "eta_days": { "min": 2, "max": 4 }
    }
  ]
}

Errors

  • 422 validation_failed — field missing or malformed.
  • 501 not_implemented — live pricing wiring is not yet available; the request is accepted and validated.