Skip to content

Forty courier integrations

One API for every courier you ship with.

Ask Royal Mail, DPD, DHL, UPS, FedEx, PostNL and Amazon Shipping what they would charge, all at once in one request, then buy the label and track the parcel without ever learning a carrier's own vocabulary.

Bring your own carrier accounts. Shipstack uses your negotiated rates, not ours.

One request. Every carrier.

Describe the parcel once. Shipstack asks every courier enabled on your account simultaneously and returns their rates sorted cheapest first, with the surcharges itemised, so you can see why a price is what it is.

  • A carrier that times out is reported in failures. It never fails the whole quote.
  • Prices are integer minor units. No floats, no lost pennies.
  • Up to 50 parcels in a single multi-piece consignment.
Quotes API reference
POST /v1/quotes
curl -X POST https://api.shipstack.example/v1/quotes \
  -H "Authorization: Bearer $SHIPSTACK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": { "name": "Acme", "line1": "1 Mill Lane", "city": "Leeds",
              "postcode": "LS1 4DL", "country": "GB" },
    "to":   { "name": "Sam Reed", "line1": "44 Bright Street", "city": "Bristol",
              "postcode": "BS1 5TR", "country": "GB", "residential": true },
    "parcels": [
      { "weight_g": 1200, "length_mm": 300, "width_mm": 200, "height_mm": 100 }
    ]
  }'
200 OK
{
  "rates": [
    {
      "courier": "royalmail_clickanddrop",
      "service_code": "TPN48",
      "service_name": "Royal Mail Tracked 48",
      "total": { "amount": 419, "currency": "GBP" },
      "estimated_days": 2
    },
    {
      "courier": "dpd",
      "service_code": "1^16",
      "service_name": "DPD Next Day",
      "total": { "amount": 749, "currency": "GBP" },
      "estimated_days": 1,
      "surcharges": [
        { "code": "FUEL", "name": "Fuel surcharge",
          "amount": { "amount": 62, "currency": "GBP" } }
      ]
    }
  ],
  "failures": [
    { "courier": "ups", "reason": "upstream timeout" }
  ]
}

Five couriers in the time of one.

Rate shopping is only useful if it is fast. Shipstack's quote engine fans out to every enabled carrier concurrently under a fixed latency budget, so the response takes about as long as the slowest single carrier, not the sum of all of them.

Sequentially

~1000ms

Each carrier waits for the one before it.

Shipstack

~200ms

All five asked at once.

Five couriers responding in 200ms each. Measured in the API's own test suite.

Forty integrations, one interface.

Carriers that share a brand rarely share an API. DHL is three separate businesses; DPD and DPD Local are separate contracts. Shipstack treats each as what it is, and hides all of it behind one format.

Compare coverage
  • Royal Mail Click & Drop Royal Mail Click & Drop The Click & Drop API, for merchants shipping on a Royal Mail online account.
  • Royal Mail OBA Royal Mail OBA Online Business Account, for higher-volume contract shippers.
  • DPD DPD Next-day and timed UK delivery, plus European road and air.
  • DPD Local DPD Local DPD’s franchise network, including Sunday delivery.
  • DHL Express DHL Express The international air network, worldwide.
  • DHL Parcel UK DHL Parcel UK The UK domestic ground network, formerly UK Mail.
  • DHL eCommerce DHL eCommerce Consolidated consumer parcels.
  • UPS UPS Domestic and worldwide, with the full label format set.
  • FedEx FedEx Domestic and worldwide express.
  • PostNL PostNL The international send network out of the Netherlands.
  • Amazon Shipping Amazon Shipping Amazon’s carrier network for merchant-fulfilled orders.
  • Evri Evri The UK courier network built around ParcelShops and lockers.
  • Yodel Yodel UK domestic delivery, with Yodel Store collection points.
  • Parcelforce Worldwide Heavier UK and international consignments, collected at Post Office branches.
  • InPost InPost The UK locker network, plus staffed points.
  • DPD Germany DPD Germany DPD’s German subsidiary, on its own account and product codes.
  • DPD Austria DPD Austria DPD’s Austrian subsidiary.
  • DPD Ireland DPD Ireland DPD’s Irish subsidiary, for domestic Ireland and cross-border.
  • DPD Netherlands DPD Netherlands DPD’s Dutch subsidiary.
  • DPD C2C DPD C2C DPD’s consumer-to-consumer send product.
  • DHL Parcel Spain DHL Parcel Spain DHL Parcel’s Spanish domestic network.
  • DHL Parcel Netherlands DHL Parcel Netherlands DHL Parcel’s Dutch domestic network.
  • DHL Parcel Poland DHL Parcel Poland DHL Parcel’s Polish domestic network.
  • DHL Paket DHL Paket The dominant domestic parcel network in Germany.
  • GLS GLS The pan-European ground network, reaching local rates across sixteen subsidiaries.
  • Colissimo La Poste’s parcel network, the dominant domestic carrier in France.
  • Mondial Relay Mondial Relay The Point Relais pickup network, dominant in France and large in Belgium and Spain.
  • bpost bpost Belgium’s national operator, and the default for Belgian merchants.
  • Chronopost Chronopost La Poste’s express arm, the main next-day carrier in France.
  • Correos Correos Spain’s national operator, with the widest rural coverage in the country.
  • SEUR SEUR Spain’s largest private carrier, part of GeoPost/DPD.
  • Deutsche Post Deutsche Post German letter and small-parcel postage, franked from a prepaid wallet.
  • Poste Italiane Poste Italiane Italy’s national operator, with the widest rural coverage in the country.
  • Packeta Packeta Central and Eastern European pickup points and home delivery.
  • Pall-Ex Pall-Ex Palletised freight across the UK network.
  • ArrowXL ArrowXL Two-person delivery for large and heavy items, to 150kg.
  • TNT TNT Express road and air freight across Europe and beyond.
  • DX DX UK next-day and irregular-dimension delivery.
  • APC Overnight APC Overnight The UK overnight network, run as a delivery partnership.
  • Whistl Whistl Downstream access and parcel consolidation at high volume.

Integrate once. Never again.

Every carrier's bespoke request and response shape is translated by its adapter into one canonical format. Carrier-specific types are structurally prevented from reaching you. The API's test suite proves it by reflection on every build.

Adding a courier to Shipstack does not change your integration.

How it works
Customs
HS codes, incoterms, IOSS and EORI on international consignments.
Pickup points
Lockers and parcel shops as a destination, validated before booking.
Label formats
PDF, ZPL and PNG, depending on the carrier.
Service options
Signature, age check, insurance, Saturday, cash on delivery, safe place.
Multi-piece
Several parcels in one consignment, with per-parcel references.
Tracking
One normalised status vocabulary across every carrier.

Security

Your carrier credentials are encrypted before they touch the database.

Courier secrets are encrypted at the application layer with AES-256-GCM and stored as binary, never as text. A database backup leak is not a credential leak. The marketing site you are reading holds no shipping data and has no database credentials at all.

Start with a quote request.

Create an account in Shipstack Manager, add the carrier credentials you already hold, and make your first call.