ParseForge Scrapers

UPS Package Tracking Scraper

parseforge/ups-package-tracking-scraper

E-commerceAutomationOther

Track UPS packages in bulk from a list of tracking numbers. Returns current status, delivery timestamp, and complete scan event history for each shipment. Supports 1Z, Mail Innovations, FGV, and Freight formats.

Run this scraper See the API call
Total users
24
Monthly active
6
Total runs
279
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

UPS Package Tracking Scraper

Track UPS packages in bulk using only tracking numbers. Get status, delivery date, scan events, and package details for up to a million shipments per run. No API account or login required. Export to CSV, JSON, Excel, or XML.

UPS tracking portals and official APIs require you to look up packages one by one or manage complex authentication. This Actor reads the public tracking feed directly from a list of tracking numbers, supporting standard 1Z, Mail Innovations, FGV, and Freight formats. It returns every package's current status, delivery timestamp, and full scan history in a single flat dataset.

Who uses it What they scrape UPS for
E-commerce operations managers Monitor delivery performance across hundreds of daily outgoing orders.
Logistics coordinators Verify bulk shipment statuses for freight and ground packages in one batch.
Customer support teams Pull real-time tracking updates to answer customer delivery inquiries quickly.
Data analysts Collect delivery timelines and scan events to measure carrier performance.

What it does

This Actor collects UPS package tracking data from a list of tracking numbers and returns each shipment's status, delivery details, and scan events as a structured row.

  • ๐Ÿ“ฆ Bulk tracking: Submit a list of tracking numbers and receive the current status for every package in a single run.
  • ๐ŸŒ Multi-locale support: Request tracking responses in your local language and format, such as en_US, fr_FR, or de_DE.
  • ๐Ÿ“‹ Full scan history: Each result includes the complete list of scan events with timestamps, locations, and descriptions.
  • ๐Ÿ”ข Flexible format support: Works with standard 1Z tracking numbers, Mail Innovations identifiers, FGV codes, and Freight shipment IDs.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with UPS data

๐Ÿ“Š Monitor daily order delivery status.

An e-commerce operations manager uploads a CSV of outbound tracking numbers each morning to identify delayed shipments and update customers proactively.

๐Ÿ“ฆ Audit carrier performance over time.

A logistics analyst scrapes scan event histories for thousands of delivered packages to calculate on-time delivery rates and flag recurring transit bottlenecks.

๐Ÿ’ฌ Power customer support with live tracking data.

A support team integrates the Actor into their internal tool to pull the latest UPS status for any tracking number a customer inquires about.

๐ŸŒ Localize tracking updates for international recipients.

A global retailer sets the locale parameter to de_DE or fr_FR so tracking responses match the recipient's language and regional format.

Why choose this scraper

What you get
Bulk processing Track thousands of packages in one run instead of checking them manually on the UPS website.
No API key Access public tracking data without registering a UPS account or managing OAuth credentials.
Structured output Receive clean, flat rows ready for spreadsheets, databases, or analytics tools.
Multi-format input Mix standard 1Z codes with Mail Innovations, FGV, and Freight tracking numbers in the same request.

How it compares

No other Store actor targets UPS the same way, so the honest comparison is with the alternatives teams actually weigh.

UPS Package Tracking Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When UPS changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor with a list of UPS tracking numbers and optionally set a locale for the response language. The maxItems limit controls how many packages are collected per run. The Input tab lists every parameter.

A first run with the defaults:

{
  "trackingNumbers": [
    "1Z999AA10123456784"
  ],
  "maxItems": 10
}

A larger pull:

{
  "trackingNumbers": [
    "1Z999AA10123456784"
  ],
  "maxItems": 200
}

Pricing

Pay-per-result: $0.03199 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $3.20
1,000 results $31.99
10,000 results $319.90

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the UPS Package Tracking Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to UPS through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/ups-package-tracking-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results for my tracking numbers?

Check that your tracking numbers are valid and match a supported format like 1Z, Mail Innovations, FGV, or Freight. Also verify that the maxItems parameter is set high enough to include all your input numbers.

The status shows 'Not Found' for a number I know is correct.

UPS may not have scan data available yet for newly created labels. Wait a few hours and retry. If the issue persists, verify the number on the official UPS tracking website to confirm it is active.

My run is taking too long with a large list of tracking numbers.

The Actor processes numbers sequentially. For very large lists, consider splitting them across multiple runs or increasing the Actor's memory allocation in the run settings to improve throughput.

The locale parameter is not changing the response language.

Ensure you are using a valid locale code like en_US, fr_FR, or de_DE. Not all UPS tracking responses are fully localized for every language; some scan event descriptions may remain in English.

I see a proxy or connection error during the run.

This can happen if UPS temporarily blocks the request IP. The Actor uses Apify's proxy rotation. Retry the run, and consider enabling a longer timeout or using residential proxies if the problem repeats.

FAQ

Question Answer
What tracking number formats does this Actor support? It supports standard UPS 1Z tracking numbers, Mail Innovations identifiers, FGV codes, and Freight shipment IDs. You can mix different formats in the same input list.
Do I need a UPS account or API key to use this? No. The Actor reads the public UPS tracking feed directly. You do not need to register an application, manage OAuth tokens, or sign up for a UPS API plan.
How many tracking numbers can I check in one run? You can set the maxItems parameter up to 1,000,000 packages per run. The Actor processes the list sequentially and returns one row per tracking number.
What data does each result row contain? Each row includes the tracking number, current package status, scheduled delivery date, actual delivery timestamp, and the full list of scan events with locations and descriptions.
Can I get tracking responses in languages other than English? Yes. Set the locale parameter to a supported value like fr_FR, de_DE, or es_ES to receive status descriptions and scan event text in that language and regional format.
Does this Actor work for UPS Freight or Mail Innovations shipments? Yes. The Actor accepts tracking numbers for UPS Freight, Mail Innovations, and other UPS service types alongside standard ground and air packages.
How do I export the tracking results? You can export the dataset in CSV, JSON, Excel, or XML format directly from the Apify run console or via the API.
Is there a rate limit or will UPS block my requests? The Actor reads public tracking pages at a controlled rate. For very large runs, the platform's proxy rotation helps distribute requests and reduce the chance of blocks.
Can I schedule this Actor to run automatically every day? Yes. You can set up an Apify schedule to run the Actor daily with a fixed list of tracking numbers or feed it a dynamic list from an external API or data source.
What happens if a tracking number is invalid or not found? The Actor returns a row for every input tracking number. If UPS reports the number as invalid or not found, the status field will reflect that error message from UPS.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by United Parcel Service of America, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
trackingNumbers required array List of UPS tracking numbers to look up (e.g. 1Z999AA10123456784). Supports standard 1Z format, Mail Innovations, FGV, and Freight formats. ["1Z999AA10123456784"]
maxItems integer How many packages to collect per run. 10
locale string Language and country for tracking response (e.g. en_US, fr_FR, de_DE). en_US

Pricing

from $23.99 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged once when the run starts. $0.005
Result Item Charged once per result collected. $0.02399 to $0.03199

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~ups-package-tracking-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run UPS Package Tracking Scraper on Apify All scrapers