
I pasted a tracking number into search and the first result wanted an app. The second wanted an account. The number sat in the order notes with no carrier next to it.
A 1Z looks like UPS if you have seen one before. A 22-digit run that starts with 94 looks like USPS if you have seen one of those. I have seen both. A lot of people have not. They have a string and a missing box.
The tracking number lookup on Softery is a page. Paste the number. The carrier name shows up. The link goes to that carrier's own site. There is no Detect click. There is no "in transit" invented from a regex.
I ranked this third out of 1,761. Score 9.75. About five hours. I built the page I wanted when a seller sent digits and nothing else.
A String With No Logo
The usual case is boring. A marketplace seller drops a string in a message and calls the order shipped. You copy it. You do not know which site will take it.
Search for tracking number and you get a tracker that wants to live on your phone, or a page that asks you to make an account so it can remember every parcel you ever bought. Some of those pages make you scroll past ads to reach the box.
I do not need a dashboard of every parcel. I need the carrier page for this one number. Then I am done.
I have the number. I do not have the carrier.
That is the whole job. Name the carrier. Open their page.
Rank 3 of 1,761
I ranked this third out of 1,761, score 9.75, about five hours of work. The card said: paste any tracking number, detect the carrier from its format, and deep-link into that carrier's own tracking page. UPS 1Z. FedEx. USPS. DHL. OnTrac. Amazon Logistics.
The identifier pile on that list is long. A VIN decoder sits next. A barcode page after that. This one sat at three because the search is frequent and the grievance is specific. People are not asking for a new kind of tracker. They are asking which site will accept the digits they already have.
Bing filled in 21 completions on the tracking cluster. "tracking number" is first. "tracking number lookup" is second. I did not invent a volume behind them. I have the completion count from the ranking pass. That was enough to put it at three.
AfterShip Wants the App
The card pointed at AfterShip Package Tracker. 4.73 stars on 162,970 ratings, live on the App Store this sitting. 17TRACK sits at 4.82 on 20,778. Both are real products. Both want you in an app. Both put the long history behind a paid tier.
I am not going to pretend I sat through those apps tonight. I read the store pages. I have done the "where did this number go" dance with a search result that wanted an install. I built the page I wanted in that moment.
A 162,970 rating average is a real signal, and it is a different job. Those apps keep a history and send alerts. They want you back tomorrow. I want you on UPS.com, or tools.usps.com, and then off my page.
If you need a year of parcels in one inbox, those apps exist. If you need the carrier for one paste, a page is enough.
Twenty-One Completions
Bing capped the tracking cluster at 21. That is the same ceiling I keep seeing on identifier searches. People type the thing in their hand and want one fact back.
The first completion is the bare phrase. The second is the lookup. That is the order I shipped against. I did not buy a keyword tool for a monthly volume I could print. The completion list was the evidence I had, so that is what I used.
Reddit adds the reason the search happens. A 3,734 score thread on r/Ebay, 125 comments, turned on what a tracking number actually said. A 479 score thread, 133 comments, turned on a carrier site that did not match the story. I am not quoting those posts. I am using the scores. The dispute is about the digits, not about a pretty tracker.
I do not need to win a fraud case from a regex. I need to put the person on the carrier page that will answer the case.
What 1Z Actually Means
UPS prints 1Z plus sixteen letters and digits. That is the one most people can spot once they have seen it. The sample on the page is 1Z999AA10123456784. It is a documented pattern, not a live parcel.
FedEx Express is twelve digits. Ground is fifteen. The sample twelve is 961331653471. It matches FedEx on this page and opens fedex.com.
USPS domestic labels are twenty or twenty-two digits and usually start with 94, 93, 92, 91, 90 or 82. The sample twenty-two is 9400111899223197428490. International USPS looks like two letters, nine digits, two letters.
DHL Express is often ten digits. DHL eCommerce starts with JD. OnTrac is a C or a D plus fourteen digits. Amazon Logistics is TBA plus a run of digits. TBA307123456789 is the sample.
I strip spaces and hyphens and uppercase the rest before I look. A 420 plus ZIP prefix on a USPS label comes off first, because that prefix is the postage routing, not the tracking number you want to paste into USPS.
Twelve Digits Is FedEx
A twelve-digit run with no letters is FedEx on this page. You type it. The name appears. The link is already there. There is no Convert. There is no Detect.
That is the habit I keep shipping. The color converter prints every format as you type. The tip and bill split updates the totals while you type. A tracking number should not wait for a click either.
Ten digits are weaker. A lot of things are ten digits. I mark that as DHL with a medium confidence and I say so. I would rather show a door you can ignore than hide a door you needed.
A warehouse barcode, an order id, an internal reference: those will not match. The page says the number does not match UPS, FedEx, USPS, DHL, OnTrac or Amazon. Guessing a carrier from eight random digits would feel helpful for one second and wrong for the rest of the afternoon.
When Two Doors Open
Some lengths collide. A 22-digit number that starts with 94 is USPS first. FedEx SmartPost sometimes uses the same digits. Both links show up. The status line says it could be more than one carrier.
That is on purpose. A silent pick would be easier to code and worse to use. If you have a receipt that says USPS, open USPS. If you do not, try USPS first. The other door is still there.
I sort high confidence above medium, then a fixed carrier order so the page does not shuffle. UPS, USPS, FedEx, DHL, OnTrac, Amazon. The 22-digit 94 case puts USPS on top and FedEx under it.
I will not collapse that to one button because the overlap is real. Two doors is the honest UI for an honest collision.
| AfterShip and 17TRACK | A search result with ads | This page | |
|---|---|---|---|
| App install | The store pages want one | Sometimes | No |
| Account | Common on the free path | Common | No |
| Live status | That is the product | Sometimes, behind the scroll | No. The carrier page has it |
| History of every parcel | Paid tier | Sometimes | No |
| The number leaves your tab | Their servers | Usually | The match runs here |
| Ambiguous number | Their pick | Their pick | Both links |
I Will Not Invent In Transit
After you have the carrier, you are on their page. That is the honest end of this tool.
I do not call a UPS API. I do not call FedEx. I do not scrape a tracking HTML page and dress it up as a status feed. A fake "in transit" from a regex is worse than no status. The regex knows the shape of the number. It does not know whether the box left the building.
If the carrier site asks you to solve a puzzle, that is their page, not mine. I linked you there. I did not wrap their page in mine.
The card said the risk was low because we never call a carrier API, we only hand you a link. I kept that. The day I add a live status is the day I have an agreed API and a test that fails when that API lies. Today I have neither, so the page does not pretend.
The Link Is the Parcel
Copy link writes the number into the URL. Refresh keeps it because the address bar holds it. Paste that into a chat if someone else is waiting on the same box.
I do not have a row in a database for your parcel. I thought about saving the last number in localStorage. That would survive a refresh without a fat URL. It would also leave last Tuesday's 1Z on the phone. The card asked for a deep link to the carrier. The share link is extra. The number in the query is enough.
Clear wipes the field and puts the bare path back. Sample pastes 1Z999AA10123456784 so you can see UPS without hunting for a real label.
If the URL looks ugly, that is the tracking number. It is not a tracking code of mine.
What Leaves the Tab
The number does not go to a model. There is no API after the page loads. Mixpanel and Google Analytics load with Softery.io. They see that someone opened the tool. On the first paste they get a size bucket, not the digits. On a completed match they get a carrier count and the first carrier id. On a copy they get "link". They do not get 1Z999AA10123456784.
If that is still too much, the match has already run. Block the scripts. The name still appears.
I will not claim zero third-party scripts. The analytics tags are on the site. The honest line is the one on the page: they do not get the number.
What This Page Will Not Do
It will not show an ad. It will not ask for an account. It will not send the number to a server of mine. It will not cover every regional carrier in the world. I shipped the ones the card named, plus Amazon Logistics because the ranking write-up named it and TBA is obvious.
It will not email you when the box moves. It will not keep a year of parcels. It will not decode a VIN. If you need a password that never leaves the tab, use the password generator. If you are splitting the bill that arrived with the box, use the tip and bill split.
I did not add a carrier API client. Regex was enough. I did not add a site-wide offline stack. This tool is a lookup you do on a network, then you leave.
How I Tested It
I wrote the tests first. Twenty on the lookup. Seven on the page. They failed, then they passed. That is the house rule here, and it is the only reason I trust 1Z999AA10123456784 to print UPS every time.
The library checks a typed 1Z with spaces, a hyphenated 1Z, a twelve-digit FedEx, a 22-digit 94 that names USPS first and FedEx second, a TBA Amazon number, a JD DHL number, an OnTrac C plus fourteen, a 420 ZIP prefix stripped before the match, junk, a short paste, an empty box, and a share path that round-trips. The page checks that the sample fills UPS and opens ups.com/track, that twelve digits open FedEx with no Detect click, that the 22-digit sample shows both USPS and FedEx, that junk says it does not match, that Copy link holds n=, and that a pasted URL restores the number.
There is no Detect button in the tests because there is no Detect button on the page. A test that looked for one would have been a gift. A test that looked for "in transit" on the status line would have been a gift too. I wrote the second one so I cannot add that lie later without noticing.
Here are the samples the page and the tests share.
| Paste | What the page does |
|---|---|
| 1Z999AA10123456784 | UPS, link to ups.com |
| 961331653471 | FedEx, link to fedex.com |
| 9400111899223197428490 | USPS and FedEx, both links |
| TBA307123456789 | Amazon, link to track.amazon.com |
Those four strings are fixtures. They are not live parcels. If they ever disagree with the UI, a test fails.
Open the Carrier Page
If you have a number and no logo, open the page.
- Open Tracking Number Lookup.
- Paste the number. Spaces and hyphens are fine.
- Read the carrier name. If two names show up, open the one on your receipt, or try USPS first.
- Tap the carrier link. Their page has the status.
- Copy the Softery link if someone else is waiting on the same box.
The other tools on Softery follow the same habit. The password generator never sees the password. The tip page never sends the bill. This one never sends the tracking number as text either.
Last updated: September 8, 2026 | Reading time: 10 minutes
Written by Evgeniy Poznyak, who has pasted a tracking number into search and gotten an app store instead of a carrier.