FedEx Tracking Scraper — Bulk Package Status & Scans
Pricing
from $17.00 / 1,000 fedex tracking records
FedEx Tracking Scraper — Bulk Package Status & Scans
Automate FedEx tracking for up to 30 packages per run: status, delivery dates, service and full scan history for logistics teams. USD 20 per 1,000 records.
Pricing
from $17.00 / 1,000 fedex tracking records
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
17
Total users
9
Monthly active users
6 days ago
Last modified
Categories
Security
Limited permissionsShare
FedEx Tracking Scraper checks up to 30 FedEx tracking or door-tag numbers per run on FedEx's public tracker and returns status, delivery dates, service, origin, destination, the latest scan and the full scan history as one JSON record per package. It is built for ecommerce, logistics and customer-support teams that track FedEx shipments in bulk, and costs USD 20 per 1,000 tracking records on the FREE tier, charged only for records delivered.
No FedEx account, developer key, cookies or login is needed. If FedEx denies access to a lookup, the Actor reports it as blocked and writes no record.
How do I track multiple FedEx packages at once?
Paste up to 30 numbers into one run, the same batch size FedEx's own multi-number tracking box accepts. Use the trackingNumbers list, or paste a block copied from a spreadsheet into trackingNumbersText (newline-, comma-, semicolon- or space-separated). Both inputs are combined, whitespace and duplicates are removed, and the first 30 unique values are tracked. For longer lists, start several runs from the API or a schedule.
{"trackingNumbers": ["794644790138", "449044304137"],"trackingNumbersText": "","includeDetailedScans": true,"maxResults": 30}
| Input | Default | Notes |
|---|---|---|
trackingNumbers | ["794644790138"] | Up to 30 FedEx tracking or door-tag numbers |
trackingNumbersText | empty | Pasted list; merged with trackingNumbers |
includeDetailedScans | true | Return the full public scan history in scan_events |
maxResults | 30 | 1–30 unique records per run |
The prefill is a widely published FedEx sample number; replace it with your own.
What FedEx tracking data does it return?
Each number FedEx returns a shipment for becomes one record. Fields FedEx does not expose are null or empty, never guessed.
| Field | What it means |
|---|---|
tracking_number | FedEx tracking number |
carrier | Always FedEx |
status / status_code / status_detail | Current FedEx status text, FedEx status code and detail line |
estimated_delivery_date / actual_delivery_date | Delivery estimate and actual delivery time when shown |
service | FedEx service type, for example FedEx Ground |
ship_date | Ship date when shown |
origin / destination | City, state or province, postal code and country |
package_count | Number of pieces in the shipment |
last_scan | Latest scan: timestamp, status, location, description, event code |
scan_events | Full scan history with the same fields |
special_handling | Special handling or delivery options FedEx lists |
tracking_url | FedEx tracking page for the number |
source / scraped_at | Source label and UTC time of the lookup |
warnings | Record-level warnings, usually empty |
Run diagnostics go to the SUMMARY record in the key-value store, with an outcome of DATA, DATA_WITH_WARNINGS, EMPTY, BLOCKED or REJECTED, plus one warning per number that produced no record.
When should you use FedEx Tracking Scraper, and when not?
Use it when every number in your list is FedEx and you want scan-level detail: event codes, ship date, package count and special handling for delivery-exception reports, support tickets or daily shipment audits.
Pick a different tool when:
- Your list mixes carriers. Multi-Carrier Package Tracking auto-detects UPS and FedEx numbers in one list and returns one cross-carrier status field.
- Your numbers are UPS. Use UPS Tracking Scraper.
- Your numbers are DHL. Use DHL Package Tracking Scraper.
- You need other carriers or postal services. 17TRACK Package Tracking Scraper reads 17TRACK's public tracker.
- You need labels, rates, address changes, proof-of-delivery signatures, or shipments tied to your FedEx account without tracking numbers. Those require FedEx's authenticated tools and APIs.
How do I check FedEx tracking status automatically every day?
Save your input and attach an Apify schedule (daily, hourly or any cron expression). Each run writes a fresh dataset you can export or send to a webhook. To call it from your own code:
JavaScript (apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/fedex-package-tracking-scraper').call({trackingNumbers: ['794644790138'],includeDetailedScans: true,maxResults: 30,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((i) => [i.tracking_number, i.status, i.estimated_delivery_date]));
Python (apify-client):
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/fedex-package-tracking-scraper").call(run_input={"trackingNumbers": ["794644790138", "449044304137"], "includeDetailedScans": True})for item in client.dataset(run.default_dataset_id).iterate_items():print(item["tracking_number"], item["status"], item["last_scan"])
Keep the Apify token in an environment variable or secret store.
Use it from an AI assistant
FedEx Tracking Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/fedex-package-tracking-scraper as a server, then ask, for example: "Track these 12 FedEx numbers and list any that are delayed, with their last scan location." The agent can read the input schema and the price per record before it runs.
What does the output look like?
Two records, shortened (values are illustrative):
[{"tracking_number": "794644790138","carrier": "FedEx","status": "Delivered","status_code": "DL","status_detail": "Delivered","estimated_delivery_date": null,"actual_delivery_date": "2026-10-20T13:12:00-05:00","service": "FedEx Ground","ship_date": "2026-10-16","origin": { "city": "MEMPHIS", "state_or_province": "TN", "postal_code": null, "country": "US" },"destination": { "city": "DALLAS", "state_or_province": "TX", "postal_code": null, "country": "US" },"package_count": 1,"last_scan": { "timestamp": "2026-10-20T13:12:00-05:00", "status": "Delivered", "location": "DALLAS, TX", "description": "Delivered", "event_code": "DL" },"scan_events": ["... full scan history ..."],"special_handling": ["Deliver Weekday"],"tracking_url": "https://www.fedex.com/fedextrack/?trknbr=794644790138","source": "fedex-public-tracker","scraped_at": "2026-10-22T08:00:12.000Z","warnings": []},{"tracking_number": "449044304137","carrier": "FedEx","status": "In transit","status_code": "IT","status_detail": "On the way","estimated_delivery_date": "2026-10-23","actual_delivery_date": null,"service": "FedEx Express Saver","package_count": 1,"scan_events": ["..."],"tracking_url": "https://www.fedex.com/fedextrack/?trknbr=449044304137","warnings": []}]
How much does FedEx tracking cost? Pricing
You pay per delivered tracking record plus a start fee. Apify platform usage is included. Numbers that are blocked, not found or return no structured data are not charged.
| Event (USD) | FREE | BRONZE | SILVER | GOLD, PLATINUM, DIAMOND |
|---|---|---|---|---|
| FedEx tracking record | 0.020 | 0.020 | 0.020 | 0.017 |
| Actor start, per started GB of allocated memory | 0.005 | 0.005 | 0.005 | 0.005 |
At the default 1,024 MB there is one start event per run; at 2,048 MB there are two.
Worked totals at default memory:
- 10 records, FREE tier: USD 0.005 + 10 × 0.020 = USD 0.205.
- 30 records every day for 30 days, GOLD tier: 30 runs × (USD 0.005 + 30 × 0.017) = 30 × USD 0.515 = USD 15.45.
What if FedEx blocks a lookup or finds no record?
The run still finishes, and only real FedEx shipment responses become records. If FedEx shows an access denial, the number is counted as blocked; if FedEx says there is no tracking information, it is reported as not found; if the page loads without a shipment response, that is reported too. Each case appears as a warning in SUMMARY. The Actor does not solve CAPTCHAs or bypass access controls.
Lookups run one at a time, and each waits about five seconds for FedEx's tracking response after the page loads, so a full batch of 30 takes several minutes. Give large batches a longer run timeout than the 300-second default. FedEx can hide details by service or destination, and old tracking records expire.
FAQ
Do I need a FedEx developer account or API key?
No. The Actor reads FedEx's public tracker, so you only need an Apify account. FedEx's own Track API requires registration and credentials.
Can I export FedEx tracking results to Excel or Google Sheets?
Yes. Export the dataset as Excel, CSV or JSON from Apify Console, or push it to Google Sheets with Make, Zapier or n8n.
Does it accept door-tag numbers?
Yes. Door-tag numbers go to the same public FedEx tracker URL as tracking numbers. You get a record when FedEx returns shipment data for one, and a warning in SUMMARY when it does not.
How many FedEx numbers can I track per run?
Up to 30 unique numbers. maxResults can lower that cap for quick checks.
Why are some fields null?
FedEx does not show every field for every shipment. For example, actual_delivery_date stays null until delivery, and some services hide origin details.
Can it track UPS or USPS numbers too?
No; this Actor tracks FedEx only. For mixed UPS and FedEx lists, use Multi-Carrier Package Tracking.
Related Actors
- Multi-Carrier Package Tracking: mixed UPS and FedEx lists with auto carrier detection.
- UPS Tracking Scraper: bulk UPS and InfoNotice tracking.
- DHL Package Tracking Scraper: DHL status and checkpoints.
- 17TRACK Package Tracking Scraper: other carriers through 17TRACK's public tracker.
Legal and privacy note
Track only shipments you own, handle or are authorized to monitor. Tracking records can include personal delivery locations, so keep datasets private and retain them only as long as needed. This Actor reads public tracking pages only and does not bypass authentication or access controls. It is unofficial and not affiliated with FedEx; the FedEx name identifies the public source. When reporting a problem, include the run ID and a redacted input, never API tokens or personal data.
Last verified: 2026-10-26