AfterShip Tracking
Read and write AfterShip trackings across 1,200+ couriers, detect couriers, list couriers and predict estimated delivery dates.
Keep one tracking timeline for every carrier and feed delivery status, ETAs and exceptions into commerce and customer service.
Source actions
5
Destination actions
4
Data types
6
Validation status
Implemented · fixture tested.
Implementation is checked against provider-shaped fixtures for every action, authentication failures, rate limits, pagination and duplicate safety. Provider sandbox and authorised account validation are recorded separately when credential-backed runs are completed.
What you can map
courier detections
- Detect courierSource
Couriers that match a tracking number.
courier_detections.search
couriers
- List couriersSource
Couriers supported by AfterShip, or only those activated on the account.
couriers.list
estimated delivery dates
- Predict delivery dateSource
Predict the delivery date for a courier, service and route before or after shipping.
estimated_delivery_dates.search
tracking completions
- Mark tracking completedDestinationProvider duplicate protectionApproval before production
Mark a tracking as delivered, lost or returned to sender and stop tracking.
tracking_completions.create
tracking retracks
- Retrack trackingDestinationNot retried automaticallyApproval before production
Reactivate an expired tracking (at most three times).
tracking_retracks.create
trackings
- Create trackingDestinationProvider duplicate protectionApproval before production
Start tracking a shipment, with order and customer context.
trackings.create - Get trackingSource
One tracking with checkpoints, optionally translated.
trackings.get - List trackingsSourceIncremental
Trackings with status, ETAs and checkpoints, filtered by update time or tag.
trackings.list - Update trackingDestinationProvider duplicate protectionApproval before production
Update a tracking's order, customer, courier and destination details.
trackings.update
Authentication
AfterShip API key
Plans and access
AfterShip Tracking plans include API access; tracking volume counts against the plan's shipment quota. Estimated delivery date prediction requires the EDD add-on. Each created tracking consumes plan quota; trackings older than 120 days are not returned by list.
Test environment
Use a trial account and AfterShip's testing-courier slug for test trackings.
Rate limits
Per endpoint per second: POST /trackings 20, GET /trackings 6, single tracking reads and updates 5, courier detect 3, couriers 5; HTTP 429 with X-RateLimit-Reset.
Pagination
cursor and limit (max 200) with data.pagination.next_cursor and has_next_page.
Provider events
Webhooks for tracking updates (tag and checkpoint changes), signed with HMAC. Nexra event triggers are not yet available; flows run on demand or on a schedule.
Before you build a flow
- Deleting trackings and managing courier connections are not implemented.
- Trackings are addressed by AfterShip ID in this API version; use trackings.list with trackingNumbers to find an ID.
- Creating a tracking that already exists for the same slug and tracking number returns HTTP 400 (meta code 4003) and does not create a duplicate.
- trackings.list returns trackings from the last 120 days only.
- Retracking is allowed only for expired trackings and at most three times.
- Notification endpoints from the legacy API do not exist in version 2026-07.
- Paths and fields were verified against AfterShip's official Tracking SDK v17 (API 2026-07); estimated delivery date prediction needs the EDD add-on.
Developer reference
- Create the AfterShip credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose AfterShip Tracking, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/aftership and the Connections API.