A shipping label is the small, dense sticker that tells a carrier where a parcel is going and how to track it, and Docyield's parser reads it into structured fields — carrier, tracking number, service level, sender and recipient with their addresses, ship date, weight, and reference. Upload a label PDF or a phone snap of the printed sticker and you get JSON, CSV, or Excel back, instead of typing a long tracking number off a barcode by hand.
Labels pack a lot into a few square inches: a barcode, a routing code, an addressee, and a service tier, all in a carrier-specific layout. Docyield reads that compact format and separates the sender from the recipient and the tracking number from the order reference, so the values land in the right fields whether the label came from UPS, FedEx, DHL, a postal service, or a marketplace fulfilment print.
What a shipping label carries and why it matters
A shipping label is the carrier's instruction set for a single parcel. It identifies the carrier and service, encodes a unique tracking or barcode number that follows the package through the network, names and addresses both ends of the journey, and usually shows the ship date, weight, and an order or reference number tying the parcel back to a sale. Everything the sortation system needs is printed there, which is why the label is the one thing that absolutely must scan correctly.
Within a fulfilment flow, the label is generated at dispatch, applied to the box, and then read repeatedly — at pickup, at sortation hubs, and at the door. For the shipper, the printed copy or the label file is often the only record that links a parcel to a tracking number, so capturing that data turns a stack of labels into a searchable manifest of what went out and where.
Why extract label data instead of reading it by eye
Tracking numbers are long strings of digits that are miserable to copy correctly, and addresses are easy to fat-finger. Teams that reconcile shipments against orders, or build a dispatch log, end up transcribing labels one at a time — slow, and a single wrong digit breaks a tracking lookup. Pulling the data out structurally captures the tracking number, addresses, and service in one pass with no retyping.
OCR alone gets you the characters but not the meaning. You would still have to work out which address block is the sender and which the recipient, and which long number is the tracking code versus the reference. Docyield interprets the label and returns named fields, so a dispatch sheet or a system import can rely on 'trackingNumber' and 'recipientAddress' meaning the same thing on every carrier's label.
Who uses a shipping label parser
- E-commerce sellers and fulfilment teams building a dispatch log from printed labels.
- Warehouse and outbound operations reconciling shipped parcels against orders.
- 3PLs capturing carrier, tracking, and address data across multiple clients and carriers.
- Returns desks reading inbound labels to match parcels to original orders.
- Customer-service teams pulling a tracking number off a label photo to answer a query.
- Developers adding label capture to a shipping or order-management app via the API.
Accuracy, blanks, and where to check
We do not promise flawless reads, and any tool claiming a perfect rate is hiding the awkward labels. Docyield is built to be accurate on clear labels and candid about the rest. If a field such as service level or weight is not printed, it returns empty rather than a guess, because a made-up tracking number is worse than a blank one when someone is trying to trace a parcel.
Label photos are the trickiest input here, because thermal labels fade, curl on the box, and reflect under shop lighting. A flat, well-lit shot of the whole label reads far better than an angled glare. For the labels that come through poorly, the source image sits beside the extracted fields so you can confirm a long tracking number digit by digit before relying on it.
Tracking numbers, barcodes, and addresses
The tracking number is the field people most want off a label, and it is also the one most prone to copy errors when read by eye. Docyield pulls the printed tracking or barcode number into its own field, separate from any order or reference number that also appears, so you do not confuse the two. The service level — Express, Ground, Priority, and the like — comes back as its own value where the carrier prints it.
Addresses are handled as distinct sender and recipient blocks, each captured as the printed address string. Because the sender and recipient names are split out from their addresses, you can match a parcel to a customer record or build a clean dispatch list without untangling the two blocks yourself.
Output formats, API, and batch
Every parse is available as JSON, CSV, Excel, or XML from the same result. JSON suits wiring label data into an order system; CSV and Excel suit ops teams keeping a dispatch spreadsheet; XML fits older integrations. The free tool reads one label at a time, which covers the occasional lookup or reconciliation.
When you are scanning labels by the hundred, the same extraction runs through the Docyield API and batch dashboard, with webhook delivery and your own checks. The schema you see here is what the API returns, so a workflow built on the free tool's fields carries straight over to an automated pipeline without renaming anything.
How a label differs from a waybill or proof of delivery
A shipping label is the routing sticker on the parcel; it gets the box moving and gives you a tracking number. It is not the carriage contract — that role belongs to a bill of lading for sea freight or an air waybill for air cargo — and it is not the receipt at the other end, which is the proof of delivery captured on handover. Keeping a parser dedicated to the label means the fields match what is actually printed on the sticker rather than borrowing a heavier freight-document schema the label does not fill.
What the shipping label parser extracts
Each label is returned against a fixed schema. Fields not printed on a given label come back empty rather than guessed.
- Carrier
- The carrier, such as UPS, FedEx, or DHL.
- Tracking number
- The tracking or barcode number for the parcel.
- Service
- The service level, such as Express or Ground.
- Sender
- The sender or shipper name.
- Sender address
- The shipper's address as printed.
- Recipient
- The recipient name.
- Recipient address
- The delivery address as printed.
- Ship date
- The date the parcel was shipped.
- Weight
- The package weight, with its unit where given.
- Reference
- An order or reference number tying the parcel to a sale.
How to read a shipping label into JSON, CSV, or Excel
- 1Upload your label — drop a PDF, PNG, JPG, or WEBP onto the box above, or click to choose a file.
- 2Give Docyield a few seconds to read the label and extract the fields.
- 3Review the result and confirm the tracking number and addresses against the printed label.
- 4Choose your output tab — JSON, CSV, Excel, or XML.
- 5Copy the result or download the file, ready to log or import into your shipping system.
Frequently asked questions
Processing documents at scale?
Batch upload, an extraction API, and webhooks for 100+ documents a month.
