Couriers Please API Docs

Empower Your Dev Team with the Couriers Please Tracking API via AfterShip.
Integrate seamless Couriers Please tracking integration with robust RESTful API and webhooks to automate Couriers Please delivery updates in real-time.
With an AfterShip developer account, you'll experience fast tracking updates and industry-leading 99.9% API uptime. Enhance your logistics now with the Couriers Please Tracking API.
09:56 AM
192 Glenlake CourtSee more info
Couriers Please Tracking API
Create a tracking
Creates a new tracking object.
Parameters
tracking_numberstring required
Tracking number of a shipment. Duplicated tracking numbers, tracking numbers with invalid tracking number format will not be accepted.
Only accept tracking numbers with length from 4 to 100slugstring, staticcouriers-please.titlestring
By default this field shows thetracking_number, but you can customize it as you wish with any info (e.g. the order number).order_idstring
A globally-unique identifier for the order.order_promised_delivery_datestring
The promised delivery date of the order. It uses the formatYYYY-MM-DD. This has no timezone and uses whatever date you provide. Since other EDDs use the shipment recipient’s timezone, we suggest following the same logic here.
Returns
Return a tracking object if the call succeeded.
Retrieve a tracking
Retrieves the details of an existing tracking. Supply the unique tracking ID from either a tracking creation request or the tracking list, and AfterShip will return the corresponding tracking information.
Parameters
fieldsstring
List of fields to include in the response. Use comma for multiple values. Fields to include:tracking_postal_code,tracking_ship_date,tracking_account_number,tracking_key,tracking_origin_country,tracking_destination_country,tracking_state,title,order_id,tag,checkpointslangstring
Translate checkpoint messages from the carrier’s provided language to the target language.
Returns
Returns a tracking object if a valid identifier was provided.
Update a tracking
Updates the specific tracking by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
Parameters
smsesarray[string]
The phone number(s) to receive sms notifications. Input [] to clear the value of this field. Supports up to 3 phone numbers.emailsarray[string]
Email address(es) to receive email notifications. Input [] to clear the value of this field. Supports up to 3 email addresses.titlestring
By default this field shows the tracking_number, but you can customize it as you wish with any info (e.g. the order number).customer_namestring
Customer name of the tracking.order_idstring
A globally-unique identifier for the order.order_id_pathstring
The URL for the order in your system or store.notestring
Text field for the note. Input""to clear the value of this field.languagestring
The recipient’s language. If you set up AfterShip notifications in different languages, we use this to send the recipient tracking updates in their preferred language. Use an ISO 639-1 Language Code to specify the language.order_promised_delivery_datestring
The promised delivery date of the order. It uses the format YYYY-MM-DD. This has no timezone and uses whatever date you provide. Since other EDDs use the shipment recipient’s timezone, we suggest following the same logic here.
Returns
Returns the tracking object if the update succeeded.
Delete a tracking
Delete a tracking.
Parameters
idstring required
Tracking ID
Returns
Returns a deleted object on success. Otherwise, this call raises an error.
Retrack an expired tracking
Retrack an expired tracking. Max 3 times per tracking.
Parameters
idstring, required
Tracking ID
Returns
Returns the tracking object if the retrack succeeded.
Mark tracking as completed
Mark a tracking as completed. The tracking won't auto update until retrack it.
Parameters
reason string required
required
One of DELIVERED, LOST or RETURNED_TO_SENDER.
- Mark the tracking as completed with
DELIVERED. The tag of the tracking will be updated to Delivered and the subtag will be updated toDelivered_001. - Mark the tracking as completed with
LOST. The tag of the tracking will be updated toExceptionand the subtag will be updated toException_013. - Mark the tracking as completed with
RETURNED_TO_SENDER. The tag of the tracking will be updated to Exception and the subtag will be updated toException_011.
Allowed values: DELIVERED LOST RETURNED_TO_SENDER
Returns
meta meta required
Meta data
codeinteger required
meta code
Example:200messagestring
error message, only exist if the response status is not 2xxtypestring
error type, only exist if the response status is not 2xx
Allowed values:BadRequestUnauthorizedForbiddenNotFoundTooManyRequestsInternalError
dataobject requiredtrackingTracking
Object describes the tracking information.
Couriers Please Last Checkpoint API
Get last checkpoint
Return the tracking information of the last checkpoint of a single tracking.
Parameters
fieldsstring
List of fields to include in the response. Use comma for multiple values. Fields to include:slug,created_at,checkpoint_time,city,coordinates,country_iso3,country_name,message,state,tag,zip
Example:city,taglangstring
Support Chinese to English translation forchina-emsandchina-postonly
Example:en
Returns
metametacodeinteger required
meta code
Example: 200messagestring
error message, only exist if the response status is not 2xxtypestring
error type, only exist if the response status is not 2xx
Allowed values:BadRequestUnauthorizedForbiddenNotFound
TooManyRequestsInternalError
dataobjectidstring
Tracking idtracking_numberstring
Tracking number.slugstring couriers-please
Unique code of courier.tagstring
Current status of tracking. (See tag definition)
Allowed values:PendingInfoReceivedInTransitOutForDeliveryAttemptFailDeliveredAvailableForPickupExceptionExpired
Example:Deliveredsubtagstring
Current subtag of tracking. ([See subtag definition]subtag_messagestring
Normalized tracking message. (See subtag message definition)checkpointCheckpoint
Object describes checkpoint information.
Couriers Please Estimated delivery date API
Batch predict the estimated delivery date
The estimated delivery date is provided by AfterShip, based on its AI-predictive model. You can display the EDD on the product page, cart, and order checkout page. It indicates when a customer will receive the order.
You can use AfterShip’s AI-powered predictive estimated delivery date API to provide expected delivery dates to shoppers for online orders without tracking numbers. You can get the earliest date, the latest date, and the most-likely-arrival date through our AI-predictive EDD API.
Display accurate estimated delivery dates on the product page, store cart, and order checkout page to encourage customers to check out faster and give them a better customer experience.
Contact sales to activate this feature.
Supported functionalities require:
- One
EstimatedDeliveryDateobject for one prediction result. - Maximum 5
EstimatedDeliveryDateobjects are allowed. - API call will fail if any of the requests
EstimatedDeliveryDateobjects do not meet the specification requirement.
Parameters
estimated_delivery_datesarray[EstimatedDeliveryDate] required
>= 1 items<= 5 itemsslugstringcouriers-pleaserequired
AfterShip's unique code of courier. Please refer to https://track.aftership.com/couriers/download.service_type_namestring or null
AfterShip’s unique code represents carrier’s shipping and delivery options. Refer to Download Link.origin_addressobjectrequired
The location from where the package is picked up by the carrier to be delivered to the final destination.destination_addressobjectrequired
The final destination of the customer where the delivery will be made.weightobject or null
AfterShip uses this object to calculate the total weight of the order.package_countinteger or null
The number of packages.pickup_timestring or null
The local pickup time in the origin address time zone of the package.estimated_pickupobject or null
The local pickup time of the package. Eitherpickup_timeorestimated_pickupis required.
Returns
metameta requiredcodeinteger required
meta codemessagestring
error message, only exist if the response status is not 2xxtypestring
error type, only exist if the response status is not 2xx
Allowed values:BadRequestUnauthorizedForbiddenNotFoundTooManyRequestsInternalError
- data object required
estimated_delivery_datesarray[EstimatedDeliveryDate] required
Couriers Please Rate API
Get a rate
Get rate
Parameters
idstring required
Rate id
Returns
metaMetacodeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataRateRecord
RateRecord object: the description of rates informationcreated_atstring
the timestamp of created_at, example: 2022-05-18T09:17:38+00:00idstring
rate idupdated_atstring
the timestamp of updated_at, example: 2022-05-18T09:17:38+00:00statusstring
Allowed values:calculatingcalculatedfailedratesarray[Rate]
rates array
Calculate rates
Calculate rates
Parameters
asyncboolean
enable async mode or not (set to false if not provided)is_documentboolean
If the shipment is document type. (set to false if not provided)ship_datestring
Ship Date in YYYY-MM-DD, if not provided, will be today of the shipper account timezoneshipper_accountsarray[object]- id string
shipmentShipment
Shipment object: the description of shipment informationship_fromAddress required
Address object: the description of address informationship_toAddress required
Address object: the description of address informationparcelsarray[Parcel] required
required
Parcels of shipmentreturn_toAddress
Address object: the description of address informationdelivery_instructionsstring
Instructions to aid in prompt delivery of the shipment.
Returns
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataRateRecord
RateRecord object: the description of rates informationcreated_atstring
the timestamp of created_at, example: 2022-05-18T09:17:38+00:00idstring
rate idupdated_atstring
the timestamp of updated_at, example: 2022-05-18T09:17:38+00:00statusstring
Allowed values:calculatingcalculatedfailedratesarray[Rate]
rates array
Couriers Please Label API
Create a label
Create a label.
Parameters
billingBilling
Billing object: the description of billing informationpaid_bystring required
Allowed values:shipperthird_partyrecipientmethodPaymentMethodAccount
PaymentMethodAccount object: the description of account information
customsCustoms
Customs object: the description of customs informationpurposestring required
Allowed values:giftmerchandisepersonalsamplereturn
repairnon-merchandiseterms_of_tradestring
Allowed values:datdduddpdapexwfcafobcipcif
cptcfrdpueeione of: AES
AES object: the description of EEI Type - aesbillingBilling
Billing object: the description of billing informationimporter_addressAddress
Address object: the description of address informationpassportobject
Passport Objectadditional_chargesarray[object]
This array contains additional_charges object. Additional charge to be added to the commercial invoice of this shipment. Only applies to FedEx, DHL, UPS currently.
shipmentShipment
Shipment object: the description of shipment informationship_fromAddress required
Address object: the description of address informationship_to Addressrequired
Address object: the description of address informationparcelsarray[Parcel] required
Parcels of shipmentreturn_toAddress
Address object: the description of address informationdelivery_instructionsstring
Instructions to aid in prompt delivery of the shipment.
Return
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataLabel
Label object: the description of label objectidstring
Label IDstatusstring
Allowed values:creatingcreatedcancellingcancelledmanifestingmanifestedfailed
ship_datestring
tracking_numbersarray[string]
Get a label
Get a label.
Parameters
idstring required
label id
Returns
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataLabel
Label object: the description of label objectidstring
Label IDstatusstring
Allowed values:creatingcreatedcancellingcancelledmanifestingmanifestedfailed
Couriers Please Manifest API
Couriers Please Cancel Label API
Couriers Please Pickup API
Create a pickup
Create a pickup. Applicable for FedEx, UPS, DHL Express, Purolator.
Parameters
pickup_datestring
Pickup Date should be provided in YYYY-MM-DD format. If it is not provided, it will default to today's date in the shipper account's timezonepickup_start_timestring required
Preferred start time for pickup in HH:mm:sspickup_end_timestring required
Preferred end time for pickup in HH:mm:sspickup_fromAddress required
Address object: the description of address informationstreet1string required
address_line1 of addresscountrystring required
Country in ISO 3166-1 alpha 3 codecontact_namestring required
contact_name of address
pickup_parcelsarray[PickupParcel]
Parcel detail information which to be pickup. If label_ids are not present, pickup_parcels are required. When pickup_parcels are present, shipper_account is requiredweightWeight required
Weight object: unit weight of the itemquantityinteger required
The quantity of the packages. Minimum: 1
Returns
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Meta
dataPickup
Pickup object: the description of pickup informationidstring
Pickup IDstatus
Allowed values:creatingcreatedfailedcancellingcancelledpickup_confirmation_numbersarray[string]
The confirmation numbers dispatch from carrier when pickup successpickup_datestring
Pickup Date in YYYY-MM-DD
Get a pickup
Get a pickup.
Parameters
idstring required
Pickup id
Returns
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataPickup
Pickup object: the description of pickup informationidstring
Pickup IDstatus
Allowed values:creatingcreatedfailedcancellingcancelledpickup_confirmation_numbersarray[string]
The confirmation numbers dispatch from carrier when pickup success
Couriers Please Cancel Pickup API
Cancel a pickup
Cancel a pickup.
Parameters
pickupobject requiredidstring
Returns
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataobjectidstringstatusstring
Allowed values:cancellingcancelledfailedrefund_statusstringlabelobjectcreated_atstringupdated_atstring
Get a cancelled pickup
Get a cancelled pickup.
Parameters
idstring required
Cancel pickup id
Returns
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataobjectidstringstatusstring
Allowed values:cancellingcancelledfailedrefund_statusstringlabelobjectcreated_atstringupdated_atstring
Couriers Please Shipper Account API
Create a shipper account
This endpoint allows you to create your shipper account via API. You can integrate our API with your system and manage the shipper account according to your needs.
Please ensure that your account credentials are correct. Different carriers have different requirements for account credentials, you can refer to Shipper account's credetials for more details.
Parameters
slugstringcouriers-pleasedescriptionstringtimezonestringcredentialsobject
Please refer to Shipper account's credetialsaddressAddress
Address object: the description of address informationstreet1string required
address_line1 of addresscountrystring required
Country in ISO 3166-1 alpha 3 codecontact_namestring required
contact_name of address
Returns
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataShipperAccount
ShipperAccount object: the description of shipper account informationidstring
Shipper Account IDaddressAddress
Address object: the description of address information
Get a shipper account
This endpoint allows you get a specific shipper account details by shipper account id.
Parameters
idstring required
Shipper account id
Returns
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataShipperAccount
ShipperAccount object: the description of shipper account informationidstring
Shipper Account IDaddressAddress
Address object: the description of address information
Couriers Please Address Validation (Beta) API
Create an address validation
Create an address validation
Parameters
addressAddress
Address object: the description of address informationstreet1string required
address_line1 of addresscountrystring required
Country in ISO 3166-1 alpha 3 codecontact\_namestring required
contact_name of address
Returns
metaMeta
Meta data object.codeinteger required
Code of Metamessagestring required
Message of Metadetailsarray[Error]
Details of Metaretryableboolean
Whether this request will be retryable or not
dataShipperAccount
ShipperAccount object: the description of shipper account informationidstring
Shipper Account IDaddressAddress
Address object: the description of address information
Why use AfterShip API for Couriers Please Integration
Integrating directly with Couriers Please's native API requires months of development, constant maintenance, and deep carrier-specific expertise. AfterShip offers a single unified RESTful API that supports Couriers Please and 1,200+ global carriers—while reducing development overhead, handling documentation changes, and managing regional exceptions. With AfterShip, you can focus on scaling operations rather than separate carrier technical challenges.- Cost-saving and faster integrationIntegrating directly with Couriers Please's native API requires months of development, constant maintenance, and deep carrier-specific expertise. AfterShip offers a single unified RESTful API that supports Couriers Please and 1,200+ global carriers—while reducing development overhead, handling documentation changes, and managing regional exceptions. With AfterShip, you can focus on scaling operations rather than separate carrier technical challenges.
- Comprehensive developer resourcesAccess open, easy-to-follow API documentation with tutorials, code samples, and clearly-defined endpoints—ready for immediate implementation.
- Multi-language SDK supportUse open-source SDKs in your preferred programming language, including Go, Python, PHP, Java, JavaScript, and C#.
- 24/7 live chat with technical supportResolve technical issues and integration questions with 24/7 live chat backed by our dedicated support team.
- Unified carrier managementReplace separate carrier integrations with one connection to Couriers Please and 1,200+ other providers via AfterShip API, eliminating maintenance overhead.
AfterShip's Couriers Please Tracking API: Building seamless shipment visibility
Easily integrate AfterShip's Couriers Please shipment tracking API into your website or internal system to deliver a unified, real-time tracking experience across multiple touchpoints. With 8B+ shipments tracked and 99.99%+ API uptime, AfterShip ensures unmatched reliability and visibility across 1,200+ carriers globally.- Effortless global tech stack integrationsAccess 1,200+ international carriers, including FedEx, UPS, DHL, USPS, and many more, and track shipments across 70+ eCommerce platforms, such as Shopify, Magento, Salesforce Cloud Commerce, BigCommerce, supporting multiple languages and reducing implementation time.
- Accurate and standardized tracking dataTransform tracking data into 7 standardized delivery statuses & 33 sub-statuses and normalize different data formats, including pickup dates, delivery dates, and location names, improving reporting accuracy and enabling data-driven decisions.
- AI-optimized data integrityGet full updates by automatically detecting multi-carrier shipments with a single tracking number and continuously recognizing new number patterns, resolving carrier data discrepancies through advanced algorithms.
- Real-time and reliable data retrievalRetrieve dependable tracking data in <100 ms with 99.99%+ uptime. Enterprise-grade reliability ensured by diversified cloud storage, distributed data center, and security-first architecture, guaranteeing real-time visibility at scale.
AfterShip's Couriers Please Shipping API: Automating multi-carrier logistics
Simplify global fulfillment by integrating AfterShip's Shipping API with Couriers Please and 125 carriers worldwide. With a single scalable API built for eCommerce, you can streamline shipping and automate 80% of fulfillment with one portal—while managing all carriers to cut supply chain costs.- Automated shipping labels and ordersCreate shipping labels certified by carriers and place carrier orders in a single API request with access to 125 trusted and international carriers, helping you reduce manual work, eliminate errors, and speed up the shipping process with automated label generation.
- Real-time shipping rate calculationDisplay and compare live rates across carriers to choose the best option based on cost and speed, allowing customers to select preferred services at checkout to increase conversions and reduce cart abandonment.
- Cross-border fulfillment optimizationAutomatically add required information for the customs clearance, including item HS code and origin, shipping purpose, and terms of trade, and generate customs documents, including commercial invoices, to ensure smooth customs clearance and improve operational efficiency.
- Carrier accounts managementConnect your existing carrier accounts to retain your negotiated shipping rates. Enable only the services you need and offer flexible delivery options to fit your business and customers and avoid unnecessary service costs.
AfterShip's Couriers Please Address API: Enhancing delivery accuracy
Ensure smooth order fulfillment and fewer delivery errors with AfterShip's Address API. Designed for eCommerce businesses, it verifies customer-entered addresses in real time—reducing failed deliveries, eliminating manual checks, and enhancing user experience at checkout. Integrate with AfterShip's Address API alongside your Couriers Please to streamline the entire shipping process from cart to doorstep.- Real-time address validationValidate customer addresses in real time during checkout and the label generation process, flag potential errors for invalid or incomplete addresses, and suggest corrections—before the order is even placed, helping reduce delivery failures and operational costs.
- Surcharge prevention & timely deliveriesAvoid Couriers Please address correction surcharges by catching errors early and ensuring packages arrive on time and at the correct destination to deliver a better post-purchase experience—leading to higher retention and better reviews.
Enterprise-grade security and privacy for Couriers Please API integration
AfterShip's API infrastructure meets global compliance standards—ensuring secure, audit-ready Couriers Please integration for enterprise workloads:- SOC 2 complianceWe adhere to meet SOC 2 standards for ensuring our processes are designed to secure sensitive information.
- ISO 27001 certificationWe are certified to the world's most rigorous standards for information security and privacy.
- GDPR complianceWe comply with the GDPR rules to protect user data and privacy across Europe.
Recognized by customers for exceptional service
Frequently Asked Questions
How to generate Couriers Please API key?
To ensure secure access, AfterShip requires an as-api-key in the header of each request. You can request a free API key by submitting the form. Get a free API Key
Do I need a Couriers Please developer account to use this API?
No, you don't need a Couriers Please account. AfterShip has partnered with Couriers Please, allowing you direct access to Couriers Please tracking data through the AfterShip API.
