Skip to content

Documentation

Couriers

Discover which couriers your account can quote against, and what each one is capable of.

List couriers

GET /v1/couriers

Returns every courier this build supports along with its capabilities. Use it to drive your own UI rather than hard-coding a list that will go stale.

Request
curl https://api.shipstack.example/v1/couriers \
  -H "Authorization: Bearer $SHIPSTACK_API_KEY"
200 OK
{
  "couriers": [
    {
      "code": "dpd",
      "name": "DPD",
      "capabilities": {
        "domestic": true,
        "international": true,
        "multi_piece": true,
        "max_parcels": 30,
        "label_formats": ["pdf", "zpl"],
        "void": true,
        "tracking": true,
        "options": {
          "signature_required": true,
          "age_check": true,
          "insurance": true,
          "saturday_delivery": true,
          "cash_on_delivery": false,
          "safe_place": true
        },
        "pickup_points": ["shop", "locker"]
      }
    }
  ]
}

Reading capabilities

Capabilities are not documentation. They are enforced. A request using an option or a lane a carrier does not support is rejected before any network call, so you get a clear error instead of a carrier-specific one.

FieldMeaning
domestic, internationalThe lanes this carrier serves.
multi_pieceWhether one consignment may hold several parcels.
max_parcelsCap on a single consignment. Absent means no adapter-side cap.
max_weight_gPer-parcel weight ceiling, where the carrier states one.
label_formatsDocument formats this carrier can return.
voidWhether a label can be cancelled after purchase.
trackingWhether scan history is retrievable.
optionsWhich value-added services are supported.
countriesWhen present, restricts destinations to these ISO codes.
pickup_pointsCollection-point types served. Absent means door delivery only.

Credential schema

GET /v1/couriers/:code/schema

Each courier declares the credential fields it needs. This is what Shipstack Manager renders its settings forms from, and it is available to you for the same purpose.

Request
curl https://api.shipstack.example/v1/couriers/dpd/schema \
  -H "Authorization: Bearer $SHIPSTACK_API_KEY"

Currently supported

Every integration below is implemented and conformance-tested, and is in beta pending validation against live carrier accounts. See the full capability matrix for the detail.

CourierCode
Royal Mail Click & Drop royalmail_clickanddrop
Royal Mail OBA royalmail_oba
DPD dpd
DPD Local dpd_local
DHL Express dhl_express
DHL Parcel UK dhl_parcel_uk
DHL eCommerce dhl_ecommerce
UPS ups
FedEx fedex
PostNL postnl
Amazon Shipping amazon_shipping
Evri evri
Yodel yodel
Parcelforce Worldwide parcelforce
InPost inpost
DPD Germany dpd_de
DPD Austria dpd_at
DPD Ireland dpd_ie
DPD Netherlands dpd_nl
DPD C2C dpd_c2c
DHL Parcel Spain dhl_parcel_es
DHL Parcel Netherlands dhl_parcel_nl
DHL Parcel Poland dhl_parcel_pl
DHL Paket dhl_paket
GLS gls
Colissimo colissimo
Mondial Relay mondial_relay
bpost bpost
Chronopost chronopost
Correos correos
SEUR seur
Deutsche Post deutsche_post
Poste Italiane poste_italiane
Packeta packeta
Pall-Ex pallex
ArrowXL arrowxl
TNT tnt
DX dx
APC Overnight apc
Whistl whistl