Package Tracking API: AfterShip Shipment Export avatar

Package Tracking API: AfterShip Shipment Export

Pricing

from $8.00 / 1,000 tracking record returneds

Go to Apify Store
Package Tracking API: AfterShip Shipment Export

Package Tracking API: AfterShip Shipment Export

Export package and parcel tracking data from your AfterShip account across 1,100+ carriers: shipment status, checkpoints, delivery dates and ETAs, filtered by status, courier, country and date. Also courier lists, courier detection and AI delivery date estimates. Bring your own key.

Pricing

from $8.00 / 1,000 tracking record returneds

Rating

0.0

(0)

Developer

Nabeel Hassan

Nabeel Hassan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Export the package and parcel tracking data in your own AfterShip account, across 1,100+ carriers, as one clean dataset row per shipment, courier or delivery estimate.

AfterShip is a shipment tracking platform that follows parcels across UPS, FedEx, USPS, DHL, Royal Mail, China Post and more than 1,100 other carriers and normalises every scan into one status model. This actor is a workflow and export tool on top of the documented AfterShip Tracking API (version 2026-07 on api.aftership.com): it pulls the trackings you already have, filtered by status, courier, country and date, flattens the latest checkpoint and delivery estimate into columns, and hands the rows to CSV, Excel, Google Sheets, BI dashboards, CRMs, webhooks or AI agents. Bring your own API key.

BYOK, not live tested: every route, parameter and field comes from AfterShip's own published SDKs for API version 2026-07, and the routes were probed on 2026-10-25 with an invalid key. The actor has not been run against a live AfterShip key.

What it does

  • Get trackings (export): every shipment in your account with tracking number, courier, status and substatus, the full checkpoint history, origin and destination, order ID and number, pickup and delivery dates, on time status, returned to sender flag and the carrier, AfterShip AI and latest estimated delivery dates. Filter by status, courier, origin and destination country, created or updated date range, keyword, tracking numbers, order IDs, shipment tags, transit time and return to sender. Pages are followed automatically, 200 trackings per request.
  • Get tracking by ID: one row per AfterShip tracking ID, with optional translation of checkpoint messages into 41 languages.
  • Get couriers: the 1,100+ carriers AfterShip supports, or only the ones active on your account, with slug, name, website, phone, required tracking fields, languages and service countries.
  • Detect courier: the likely carrier (slug and full courier record) for each tracking number, before you track it.
  • Estimated delivery date: AfterShip's AI predicted delivery date, with earliest and latest date and a confidence code, for a carrier and route, one prediction per destination postal code.
  • Create trackings (opt-in): adds new tracking numbers to your AfterShip account so AfterShip starts following them. It runs only when you tick the confirm box, and every new tracking counts against your own AfterShip shipment quota.
  • Pay only for results: refused, unknown and empty lookups are recorded as a free row that says why, never charged.

How to use it

  1. In the AfterShip admin open Settings, API keys (organization.automizely.com/api-keys) and create an API key.
  2. Paste the key into the API key field (or set the DATA_API_KEY secret). It is sent only to AfterShip in the as-api-key header and is removed from everything the actor logs.
  3. Pick a mode, set filters, and start the run. Download the rows as JSON, CSV or Excel, schedule the run for a daily sync with the Updated after filter, or call the actor from your own code.

A missing or rejected key, a plan that does not cover the chosen feature or an empty input ends the run cleanly with a status message that says what to change.

Input

FieldModesDescription
modealllistTrackings (default), getTracking, listCouriers, detectCourier, predictDeliveryDate or createTrackings
trackingNumbersGet trackings, Detect courier, Create trackingsTracking numbers, one per line
trackingIdsGet tracking by IDAfterShip tracking IDs
tagsGet trackingsStatus: Pending, InfoReceived, InTransit, OutForDelivery, AttemptFail, Delivered, AvailableForPickup, Exception, Expired
slugsGet trackings, Get couriers, Detect courierCourier codes such as ups, fedex, usps, dhl
keywordGet trackingsSearches tracking number, title, order ID, customer and custom fields
origins, destinations, courierDestinationsGet trackingsISO 3166-1 alpha-3 country codes such as USA or CHN
createdAtMin, createdAtMax, updatedAtMin, updatedAtMaxGet trackingsDates such as 2026-10-01 or date and times
shipmentTags, orderIds, returnToSender, transitTimeGet trackingsFurther documented filters
langGet tracking by IDTranslate checkpoint messages
activeOnlyGet couriersOnly the couriers active on your account
courierSlugEstimated delivery date, Create trackingsOne courier code
confirmCreateCreate trackingsMust be on for that mode to run
originCountry, originState, originPostalCode, destinationCountry, destinationState, destinationPostalCodes, pickupTime, serviceTypeNameEstimated delivery dateThe route to predict
maxResultsallMost rows to return and charge for
requestsPerMinuteallPacing for calls to AfterShip
apiKeyallYour AfterShip API key (secret)

Output

Every row keeps every field AfterShip returns (including the checkpoints array), plus flat columns that are easy to filter: trackingId, trackingNumber, courierSlug, courierName, status, subStatus, statusMessage, originCountry, destinationCountry, orderId, expectedDelivery, shipmentDeliveryDate, lastCheckpointTime, lastCheckpointMessage, lastCheckpointLocation and checkpointCount. Detection rows add matchedCount and matchedSlugs; estimate rows add estimatedDeliveryDate, estimatedDeliveryDateMin, estimatedDeliveryDateMax and confidenceCode. A refused lookup has found set to false and a note with AfterShip's own words.

Example Get trackings row (shape from the AfterShip 2026-07 tracking model, values illustrative):

{
"mode": "listTrackings",
"modeLabel": "Get trackings",
"recordType": "tracking",
"query": "1Z999AA10123456784",
"found": true,
"trackingId": "7f3a1c6c2e2b4c1e9a0d5b8f6e4c3a21",
"trackingNumber": "1Z999AA10123456784",
"courierSlug": "ups",
"status": "InTransit",
"subStatus": "InTransit_001",
"statusMessage": "In Transit",
"originCountry": "CHN",
"destinationCountry": "USA",
"orderId": "6845a095a27a4caeb27487806f058add",
"expectedDelivery": "2026-10-28",
"shipmentDeliveryDate": null,
"lastCheckpointTime": "2026-10-24T09:12:00-07:00",
"lastCheckpointMessage": "Arrived at Facility",
"lastCheckpointLocation": "Louisville, KY, United States",
"checkpointCount": 6,
"active": true,
"transit_time": 4,
"return_to_sender": false,
"courier_tracking_link": "https://www.ups.com/track?tracknum=1Z999AA10123456784",
"latest_estimated_delivery": { "type": "specific", "source": "Carrier EDD", "datetime": "2026-10-28", "datetime_min": null, "datetime_max": null },
"checkpoints": [
{ "checkpoint_time": "2026-10-24T09:12:00-07:00", "city": "Louisville", "state": "KY", "country_region": "USA", "message": "Arrived at Facility", "tag": "InTransit", "subtag": "InTransit_001", "slug": "ups" }
],
"created_at": "2026-10-20T03:15:22+00:00",
"updated_at": "2026-10-24T16:20:41+00:00",
"retrievedAt": "2026-10-25T12:00:00.000Z",
"note": null
}

Pricing

EventPriceCharged for
tracking-record0.008 USDEach tracking read (Get trackings, Get tracking by ID)
courier-record0.005 USDEach courier listed
courier-detection0.005 USDEach tracking number matched to a courier
delivery-estimate0.01 USDEach AI estimated delivery date
tracking-created0.01 USDEach tracking added in the opt-in Create mode

Refused, unknown, duplicate and empty lookups are never charged. Your AfterShip plan and shipment quota are billed separately by AfterShip.

FAQ

What is the AfterShip Tracking API?

The AfterShip Tracking API is the REST API of AfterShip (Automizely Pte. Ltd.) for shipment tracking. It lets a merchant add tracking numbers, read normalised statuses and checkpoints across 1,100+ carriers, list and detect couriers and get AI estimated delivery dates, at api.aftership.com/tracking/2026-07 with an as-api-key header.

Do I need my own AfterShip API key?

Yes. This is a bring your own key actor: it calls AfterShip with your key, under your plan, its quotas and its terms. Create the key in the AfterShip admin under Settings, API keys.

Can this actor track any package number for me?

It reads the trackings already in your AfterShip account. To start following a new number, use the opt-in Create trackings mode (or add it in AfterShip); AfterShip then fetches carrier updates and the next Get trackings run exports them. Each new tracking uses your own AfterShip shipment quota.

How do I export all delivered or delayed shipments to CSV or Google Sheets?

Run Get trackings with Status set to Delivered, or to Exception and AttemptFail for problem shipments, add a created date range, then download the dataset as CSV or Excel or connect it to Google Sheets through an Apify integration.

How do I find which courier a tracking number belongs to?

Use Detect courier. AfterShip matches the number format against its couriers (optionally only the slugs you list) and the row carries matchedSlugs plus the full courier records, including any extra fields the carrier needs such as a postal code or ship date.

How far back can I export trackings?

AfterShip keeps trackings for 120 days, so created and updated date filters work inside that window. Schedule the actor daily with Updated after set to yesterday to keep a longer history in your own storage.

What does the estimated delivery date mode need?

A courier slug, origin and destination countries (ISO alpha-3), an origin state or postal code, a destination state or postal codes, and the local pickup time. The AI estimated delivery date is an AfterShip feature that must be active on your account; otherwise AfterShip refuses the request and the run ends with that message, uncharged.

What do I pay?

Pay per result: 0.008 USD per tracking, 0.005 USD per courier or courier detection, and 0.01 USD per delivery estimate or created tracking. Refused and empty lookups are free.

Keyword map

package tracking API, parcel tracking API, shipment tracking API, AfterShip API, AfterShip tracking export, AfterShip to CSV, AfterShip to Google Sheets, multi carrier tracking, UPS FedEx USPS DHL tracking, tracking number lookup, courier detection API, carrier list API, delivery status export, estimated delivery date API, EDD prediction, order tracking data, ecommerce shipment analytics, delivery exception report.

Routes probed and sources

Routes and fields were taken from AfterShip's own SDKs for API version 2026-07 (tracking-sdk-nodejs 17.0.0 and tracking-sdk-python), because aftership.com/docs blocks scripted readers. On 2026-10-25 every route was called with an invalid key: all answered AfterShip's 401 envelope "The API key is invalid", and so did invented paths, because AfterShip checks the key before the route. The API version is confirmed live: an invented version such as /tracking/2099-01 answers 404 before the key is read, while /tracking/2026-07 answers 401.

Licensing and data use

This actor works only with your own AfterShip account and API key, and AfterShip's terms of service and developer terms apply to everything it returns. It is an export and workflow tool for your own shipment data: it does not resell AfterShip data or offer a replacement for the AfterShip API. Customer details in your trackings (names, emails, phone numbers) are your own customers' personal data; handle the exported rows accordingly. This actor is not affiliated with or endorsed by AfterShip.