ParcelParcel API
Compare shipping options, book shipments, get labels and track parcels from your own software.
With the ParcelParcel API you connect your own software (webshop, ERP or WMS) to your ParcelParcel account. You get the prices of your own account, and every shipment you create shows up in MyParcelParcel. The API works the same for accounts of ParcelParcel Netherlands B.V. and ParcelParcel Belgium BV.
Base URL
All endpoints start with:
Every request needs two headers: X-PP-API with your API key and secret, and Content-Type: application/json. Every response is JSON with the same three elements: errors, message and data (see General information).
Quickstart
Start with your sandbox key
On the same page you can generate a sandbox key (it starts with sbx_). Every call works with live rates and tracking, but bookings never go to the carrier and nothing is charged. More about the sandbox.
- Get your API key and API secret. Log in to MyParcelParcel and go to Settings → Developers → API keys. See Authentication. No account yet? Create an account.
- Compare shipping options. Send the parcels, origin and destination to Compare shipping options. You get the price and transit time per carrier, each with a
productId. - Create a shipment. Send the addresses, parcels and content items to Create a (draft) shipment. Add the
productIdaspreferredShippingOption, or leave it out and we pick the cheapest option. WithbookShipment: truewe book it directly and return the labels. - Get the labels and track. Fetch the labels with Get the shipping documents and follow the parcel with Track a shipment.
curl --request POST 'https://services.parcelparcel.com/partners-api/v1/rates' \
--header 'X-PP-API: {YourAPIKey}@{YourAPISecret}' \
--header 'Content-Type: application/json' \
--data-raw '{
"parcels": [
{
"type": "NONDOC",
"weight": "8.3",
"height": "21",
"width": "25",
"length": "65",
"count": "1"
}
],
"fromCountry": "NL",
"toCountry": "US",
"recipientType": "business"
}'Endpoints
/meCheck your API keySee which ParcelParcel account your API key belongs to.POST/ratesCompare shipping optionsGet shipping rates from ParcelParcelPOST/shipmentsCreate a (draft) shipmentCreate a draft shipment or book your shipment directly in ParcelParcel.POST/shipments/{shipmentId}/cancelCancel a (draft) shipmentCancel a (draft) shipment directly in ParcelParcel.GET/track/{trackingNumber}Track a shipmentTrack shipments that are booked through MyParcelParcel.GET/shipmentsList your shipmentsRetrieve and filter all shipments linked to your ParcelParcel account.GET/shipments/{shipmentId}/labelsGet the shipping documents (labels)Receive the shipping documentation in a base64 string.POST/duties-taxes-estimateEstimate duties/taxesEstimate the import duties and taxes of a shipment.GET/dutiable-route/{countryFrom}/{countryTo}/{parcelType}Check if a shipment goes through customsFind out if a shipment between two countries is dutiable, before you create it.POST/hooks/subscribeWebhooksGet a message on your own URL as soon as a shipment is booked.For AI agents and code generators
- OpenAPI spec (also as YAML): every endpoint, field, required value and example in OpenAPI 3.1. Use it to generate a client, to give an AI agent the API as tools, or to import it in Postman or Insomnia.
- llms.txt and llms-full.txt: these docs for language models, as an index or all pages in one file. Every page is also available as markdown with the Markdown button.
- MCP server: let Claude or ChatGPT compare rates and book shipments for you, without writing code.
Other ways to connect
- MCP for Claude or ChatGPT: compare rates, book, get labels and track from the chat.
- Postman Collection: every request ready to try, without writing code.
- Webhooks: get a message when a shipment is created or booked.
Questions about the API? See Support.