ParcelParcelAPI docs

API docs Endpoints

Track a shipment

Markdown

Track shipments that are booked through MyParcelParcel.

GEThttps://services.parcelparcel.com/partners-api/v1/track/{trackingNumber}

Example request

Track a shipment with a dummy tracking number

curl --request GET 'https://services.parcelparcel.com/partners-api/v1/track/123456789' \
  --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 track your shipments. See the example response below.

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; you just put the tracking number at the end, and you are all set.

For example:

https://services.parcelparcel.com/partners-api/v1/track/123456789

You can use 123456789 as a dummy tracking number if you haven't created a shipment with us yet.

Response

The following response elements are returned:

NameValueComments
statusstringThe tracking status of the shipment could be: info\_received = Shipment created but not in transit yet in\_transit = After the shipment is collected exception = When there is a problem with a shipment delivered = When the shipment is delivered
podbooleanIf the proof of delivery (signed) is available or not
checkpointsarrayA collection of all the tracking events that a shipment has gone through.
checkpoints.timestringThe timestamp when the event occured
checkpoints.codestringA code that is returned from the carrier
checkpoints.locationstringThe location of the checkpoint
checkpoints.signedBystringWhen available, the name of the person who signed for the delivery.

Example Response

JSON
{
  "status": "in_transit",
  "pod": false,
  "checkpoints": [
    {
      "time": "2025-06-12T01:15:30-05:00",
      "code": "OC",
      "message": "Label created",
      "description": "Shipment information sent to FedEx",
      "location": "",
      "signedBy": ""
    },
    {
      "time": "2025-06-12T11:33:00+02:00",
      "code": "PU",
      "message": "Picked up",
      "description": "Picked up",
      "location": "6662, ELST, Netherlands (Holland)",
      "signedBy": ""
    },
    {
      "time": "2025-06-12T14:32:00+02:00",
      "code": "CC",
      "message": "In transit",
      "description": "International shipment release - Export",
      "location": "6662, ELST, Netherlands (Holland)",
      "signedBy": ""
    }
  ]
}

Examples

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

Request example - Track a shipment with a dummy tracking number

curl --location --request GET 'https://services.parcelparcel.com/partners-api/v1/track/123456789' \
--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. You can keep 123456789 as a dummy tracking number to try it out.