Shipping label OCR

Snap the label. Get the shipment.

Photograph a parcel label, upload the carrier's label PDF or send it to the API. Parsevix returns the tracking number, carrier, sender, receiver, weight and dimensions as structured data, with every address split into its parts.

  • Tracking number, carrier, service and dates
  • Addresses split into name, street, postal code, city and country
  • Label PDFs and phone photos, turned upright

No credit card · 20 free pages every month

What you get back

Every line of a label, already defined.

The built-in Shipping Label category returns 28 fields: the shipment, the sender and the receiver in parts, the package, its dimensions and the customs details. Use it as it is, or change it in your project.

Dates come back as ISO dates and dimensions as plain numbers with their unit; the weight comes back as printed. A field the label doesn't show, such as customs details on a domestic parcel, is left out, not guessed.

Shipment

  • tracking_numberstring
  • carrierstring
  • service_typestring
  • shipping_datedate
  • estimated_deliverydate

Sender

senderobject

  • sender_namestring
  • sender_addressstring
  • sender_citystring
  • sender_countrystring
  • sender_zipstring
  • sender_phonestring

Receiver

receiverobject

  • receiver_namestring
  • receiver_addressstring
  • receiver_citystring
  • receiver_countrystring
  • receiver_zipstring
  • receiver_phonestring

Package

  • weightstring
  • package_countnumber
  • declared_valuenumber
  • special_instructionsstring

Dimensions

dimensionsobject

  • lengthnumber
  • widthnumber
  • heightnumber
  • unitstring

Customs

customs_infoobject

  • contents_descriptionstring
  • customs_valuenumber
  • country_of_originstring

Your own fields

A name, a type and one sentence on what it is.

  • order_reference
  • routing_code
  • return_address
  • cash_on_delivery

Made for parcels

From the label on the box to your system.

Labels are photographed on a packing table, stuck on sideways and printed by every carrier differently. This is what Parsevix does with them.

01

Every address in its parts

A label prints the address as a block. Parsevix returns it as the category's fields: name, street, postal code, city and country, for the sender and the receiver alike, ready for an address book, a shipping system or a returns check.

  • 02

    Labels photographed any way up

    A photo is read like a scan. A label photographed sideways or upside down is turned upright before it is read.

  • 03

    The printed number, not the barcode

    Parsevix reads the text on the label; barcodes and QR codes are not decoded. The tracking number comes from the digits printed with the barcode.

  • 04

    Any carrier's layout

    There is no template per carrier. A label from a carrier you have never used before fills the same fields as every other one.

  • 05

    Weight, size and count

    The weight comes back as printed, the dimensions as numbers with their unit, and the number of packages as a number of its own.

  • 06

    Names and addresses masked

    Receiver names, streets and phone numbers are masked automatically before any text goes to the AI model and put back in your result. Detection catches most personal data, not necessarily every item.

  • 07

    Customs details on international parcels

    When the label carries them, the contents, the customs value and the country of origin come back as fields of their own.

How labels get in

Snap them, forward them or send them from your system.

Dashboard

Upload label PDFs or photos from a computer or a phone's browser. Check each result next to its label and approve it.

E-mail address

Paid plans

Every project gets its own address. Forward label PDFs and photos to it, and each attachment becomes a document.

API

Send labels from your warehouse or shop system and get the JSON in the same response, or receive results by signed webhook or through Zapier.

Request

curl https://parsevix.com/api/v1/extract \
  -H "X-API-Key: $PARSEVIX_API_KEY" \
  -F file=@label.jpg \
  -F category="Shipping Label"

The request stays open until the document is read and answers with the JSON.

  • POST /documentsUpload without waiting; the result arrives by webhook or callback.
  • POST /extract-autoNo category: every field Parsevix finds, named as in the document.
  • POST /classifyOnly the document's category, for 1 credit.
Full API reference

Response · trimmed

{
"status": "Completed",
"category": "Shipping Label",
"pageCount": 1,
"language": "en",
"extracted": {
"tracking_number": "CV 2026 4471 8830",
"carrier": "Corvane Logistics",
"receiver": {
"receiver_zip": "M1 3HU",
"receiver_city": "Manchester",
…
},
…
},
…
}

Security & compliance

  • PII maskedautomatically, before the AI step
  • Encryptedin transit and at rest
  • No AI trainingon your documents
  • API files deletedafter processing

Priced per page, not per feature.

Every plan reads, sorts and masks documents the same way. Picking the category is included, and a document that fails costs nothing.

See pricing
credit per page
1
free pages every month
20
a month for 500 pages
$39

Shipping label FAQ

Shipping labels,
answered.

What teams ask before they send their first labels.

Still have a question?

Write to us. A person reads every message.

Label PDFs from carrier portals, photos and scans as JPG, PNG or TIFF, and Word, up to 10 MB and 30 pages each. HEIC, the iPhone camera's default format, and WebP are not accepted yet: share or save those photos as JPG.

No. Parsevix reads the printed text; barcodes and QR codes are not decoded. The tracking number comes from the digits printed with the barcode, so a label without a printed number gives no tracking number.

Put one label in each file. A page or photo with several labels is read as one document, so their senders, receivers and tracking numbers would end up in one result.

Yes. Change the Shipping Label category in your project and add the fields you need, such as an order reference, a routing code or a cash-on-delivery amount, each with a sentence on what it is. A field is filled only from what the label shows.

One credit per page, and a label is one page. Choosing the category is included, and if a document fails, its credits are given back.

Labels uploaded in the dashboard or sent by e-mail stay in your project until you delete them. Files sent through the API are deleted after processing unless you turn on keeping them for the project. Your labels are never used to train AI.