17TRACK Package Tracking Scraper
Pricing
from $3.00 / 1,000 tracked packages
17TRACK Package Tracking Scraper
Track packages across 17TRACK carriers and export normalized status, routes, delivery estimates, carrier handoffs, and checkpoint history.
Pricing
from $3.00 / 1,000 tracked packages
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
Track public package numbers across 17TRACK-supported carriers and export a consistent dataset containing the current shipment status, carrier handoffs, route, delivery estimate, latest checkpoint, and event history.
What this Actor extracts
| Field | Meaning |
|---|---|
trackingNumber | Identifier supplied in the Actor input |
displayTrackingNumber | Identifier shown by 17TRACK |
carriers / carrierIds | Detected carriers and 17TRACK carrier IDs |
status / statusCategory | Source status plus a stable lifecycle category |
statusDescription | Latest public tracking update |
originCountry / destinationCountry | Public route countries when available |
estimatedDelivery / daysInTransit | Delivery window and elapsed transit time |
latestEvent / events | Latest checkpoint and full carrier event history |
sourceUrl / retrievedAt | Provenance and retrieval timestamp |
Use it for order-support workflows, shipment monitoring, logistics analysis, marketplace operations, and carrier-handoff reconciliation. It is not an official 17TRACK API client, does not log into private accounts, and does not bypass CAPTCHA or access controls.
Input
{"trackingNumbers": ["7777777770"],"language": "en","includeRaw": false,"requestTimeoutSecs": 45,"proxyConfiguration": { "useApifyProxy": true }}
trackingNumbers accepts 1–10 values. The default 7777777770 invokes 17TRACK's public demonstration result and is marked isDemoData: true; replace it with real package IDs for production use. Duplicate numbers are removed. Invalid IDs are reported in OUTPUT and never billed as results.
language localizes page text. includeRaw keeps the page-owned structured shipment object when available. requestTimeoutSecs is a per-package bound. Apify Proxy is enabled by default; select a residential group only if the standard cloud route is challenged.
Output example
{"trackingNumber": "7777777770","displayTrackingNumber": "TestNumber00017","carrierIds": [],"carriers": ["USPS(International Parcels)", "China Post"],"status": "In transit","subStatus": null,"statusDescription": "CHINA,WUHAN, Processed Through Facility","statusCategory": "in_transit","daysInTransit": 5,"originCountry": "China","destinationCountry": "United States","estimatedDelivery": "2022-04-05 - 2022-04-06","latestEvent": {"timestamp": "2022-03-25 19:57","description": "CHINA,WUHAN, Processed Through Facility","location": "CHINA","carrier": null},"events": [],"sourceUrl": "https://t.17track.net/en#nums=7777777770","retrievedAt": "2026-09-09T00:00:00.000Z","isDemoData": true,"raw": null}
The default dataset stays homogeneous: only validated package records are written. OUTPUT in the default key-value store contains DATA, EMPTY, BLOCKED, REJECTED, or FAILED, plus attempted/delivered counts and warnings.
Pricing
This Actor uses pay per event.
| Event | Price |
|---|---|
| Actor start | $0.00005 |
| One tracked package record | $0.03 |
One delivered package therefore costs about $0.03005; five delivered records cost about $0.15005. Empty, blocked, invalid, and failed lookups do not create dataset-item charges. Apify enforces the run charge cap before additional lookups begin.
Reliability and limits
The Actor opens the public 17TRACK result page in a consistent Chrome session and captures the structured page-owned tracking response. If that structure is unavailable, it falls back to the rendered tracking view. A blocked lookup is retried once with a fresh browser/proxy session. HTTP 403/429, verification pages, upstream failure, no-match results, and timeouts remain distinct diagnostics.
Results depend on what 17TRACK and the underlying carriers expose publicly. Newly created labels may take 24–48 hours to appear. Some carriers limit request volume or destination detail, and 17TRACK may require verification during high-risk traffic. The Actor will not solve CAPTCHAs or fabricate missing shipments.
API example
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"trackingNumbers":["YOUR_TRACKING_NUMBER"],"language":"en","includeRaw":false,"requestTimeoutSecs":45}'
Avoid placing real tracking numbers in public logs or shared Task presets. Tracking history can reveal approximate locations and shipping relationships; retain and share output only for legitimate package-support and logistics purposes. Use of this Actor must comply with 17TRACK's terms, carrier terms, privacy law, and applicable platform rules. 17TRACK and carrier names are used descriptively; this Actor is not affiliated with or endorsed by them.