ParcelParcelAPI docs

API docs Endpoints

List your shipments

Markdown

Retrieve and filter all shipments linked to your ParcelParcel account.

GEThttps://services.parcelparcel.com/partners-api/v1/shipments

Example request

Booked DHL shipments

curl --request GET 'https://services.parcelparcel.com/partners-api/v1/shipments?status=created_at_carrier&carrier=DHL' \
  --header 'X-PP-API: {YourAPIKey}@{YourAPISecret}' \
  --header 'Content-Type: application/json'

Tip: copy the cURL and paste it in Postman under Import, or straight into the URL bar of a new request. Postman fills in the method, headers and body for you. Replace {YourAPIKey}@{YourAPISecret} with your own API key and secret (use your sandbox key while testing), or import the whole Postman Collection.

This endpoint allows you to fetch and filter all shipments linked to your account.

You need to add the following headers:

NameValue
Content-Typeapplication/json
X-PP-API{YourAPIKey}@{YourAPISecret}

Don't you have an API Key and API Secret yet? Check our Authentication page and how to get them in under a minute.

Body

There is no body needed. All filters are passed as query parameters.

For example:

https://services.parcelparcel.com/partners-api/v1/shipments?status=created_at_carrier&carrier=DHL

Query Parameters

All query parameters are optional and can be combined freely.

NameTypeDescription
pageintegerPage number. Defaults to 1.
perPageintegerNumber of results per page. Defaults to 25, maximum 100.
statusstringFilter by shipment status. See status values below. Omit to return all active statuses.
shipmentIdintegerFilter by a specific shipment ID.
carrierstringFilter by carrier ID (e.g. DHL, FEDEX, UPS).
bookedFromstringReturn shipments booked on or after this date. Format: YYYY-MM-DD.
bookedTostringReturn shipments booked on or before this date. Format: YYYY-MM-DD.
originCountrystringFilter by origin country. Use ISO 3166-1 alpha-2 codes (e.g. NL, DE, US).
destinationCountrystringFilter by destination country. Use ISO 3166-1 alpha-2 codes (e.g. NL, DE, US).

Shipment status values

StatusDescription
waiting_for_bookingDraft shipment, not yet submitted to the carrier
progressShipment is being processed
created_at_carrierShipment is booked and has a tracking number
doneShipment has been delivered
cancelledShipment has been cancelled

Response

The following response elements are returned:

NameValueComments
errorsbooleanWhether an error occurred.
messagestringA human-readable result message.
dataarrayA collection of shipment objects.
data.idintegerThe unique identifier of the shipment.
data.statusstringThe current status of the shipment. See status values above.
data.trackingNumberstringThe tracking number assigned by the carrier. null if not yet booked.
data.trackingUrlstringA direct link to track the shipment on the carrier's website. null if not yet booked.
data.trackingStatusstringThe latest tracking event status. Possible values: info_received, in_transit, exception, delivered.
data.labelsUrlstringURL to retrieve the shipping label PDF. null if not yet booked. Requires the same X-PP-API header.
data.referencestringYour own reference for the shipment, as provided when creating it.
data.carrierstringThe display name of the carrier (e.g. DHL, FedEx).
data.productstringThe name of the shipping product (e.g. FedEx Priority Overnight).
data.pricefloatThe shipment price excluding VAT, rounded to 2 decimals.
data.pickupAddressobjectThe sender address. See address fields below.
data.destinationAddressobjectThe recipient address. See address fields below.
data.createdAtstringISO 8601 timestamp of when the shipment was created.
data.bookedAtstringISO 8601 timestamp of when the shipment was booked at the carrier. null if not yet booked.
meta.totalintegerTotal number of shipments matching the applied filters.
meta.pageintegerThe current page number.
meta.perPageintegerThe number of results per page.

Address fields

Both pickupAddress and destinationAddress contain the following fields:

NameTypeDescription
companystringCompany name
contactPersonstringFull name of the contact person
phonestringPhone number
emailstringEmail address
addressLine1stringFirst line of the street address
addressLine2stringSecond line of the street address
zipcodestringPostal code
citystringCity
stateOrProvincestringState or province
countrystringISO 3166-1 alpha-2 country code
vatNumberstringVAT number
eoriNumberstringEORI number (used for customs clearance)

Example Response

JSON
{
  "errors": false,
  "message": "Query processed successfully",
  "data": [
    {
      "id": 387766,
      "status": "created_at_carrier",
      "trackingNumber": "1ZG2237K6804083920",
      "trackingUrl": "https://www.ups.com/track?loc=en_US&tracknum=1ZG2237K6804083920",
      "trackingStatus": "in_transit",
      "labelsUrl": "https://services.parcelparcel.com/partners-api/v1/shipments/387766/labels",
      "reference": "my-order-ref-123",
      "carrier": "UPS",
      "product": "UPS Standard",
      "price": 57.23,
      "pickupAddress": {
        "company": "My Company",
        "contactPerson": "John Doe",
        "phone": "0201234567",
        "email": "[email protected]",
        "addressLine1": "Teststreet 1",
        "addressLine2": null,
        "zipcode": "1057 BN",
        "city": "Amsterdam",
        "stateOrProvince": null,
        "country": "NL",
        "vatNumber": null,
        "eoriNumber": null
      },
      "destinationAddress": {
        "company": null,
        "contactPerson": "Jane Smith",
        "phone": "12312312311",
        "email": "[email protected]",
        "addressLine1": "123 Main St",
        "addressLine2": null,
        "zipcode": "75001",
        "city": "Dallas",
        "stateOrProvince": "TX",
        "country": "US",
        "vatNumber": null,
        "eoriNumber": null
      },
      "createdAt": "2026-04-13T09:12:00+00:00",
      "bookedAt": "2026-04-13T09:14:32+00:00"
    }
  ],
  "meta": {
    "total": 1,
    "page": 1,
    "perPage": 25
  }
}

Examples

Don't know how to test these requests? Check our guide.

Request example - Booked DHL shipments

curl --location --request GET 'https://services.parcelparcel.com/partners-api/v1/shipments?status=created_at_carrier&carrier=DHL' \
--header 'X-PP-API: {YourAPIKey}@{YourAPISecret}' \
--header 'Content-Type: application/json'

Don't forget to change the X-PP-API element in the header for this request to work. Leave out the query parameters to list all your shipments.