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