VIN Scanner

VIN OCR — read the Vehicle Identification Number and decoded vehicle details from a photo or document.

Drag & drop your document here

Supports PDF, JPG, PNG, WEBP

Docyield's VIN scanner reads a Vehicle Identification Number straight from a photo of a windshield, a door-jamb sticker, a registration card, or a PDF, and returns it as clean, structured data. A VIN is a fixed 17-character code, and a single misread character — an O mistaken for a zero, an S for a 5 — points to the wrong vehicle entirely. The scanner pulls the 17 characters out of the image and, where the surrounding document allows, returns the decoded make, model, year, trim, and color alongside them.

The reason a dedicated VIN tool exists is that the number lives in awkward places. It is stamped into metal at an angle, printed on a barcode label peeling at the edges, or buried among a dozen other numbers on an insurance document. Generic text recognition will happily hand you all of it and leave you to find the VIN yourself. Docyield isolates the 17-character string, keeps it separate from plate numbers and stock numbers, and gives it back in a field you can rely on for a lookup or a record.

Inputs
PDF, JPG, PNG, WEBP
Outputs
JSON · CSV · Excel · XML
Price
Free · no signup

What a VIN is and why it is hard to read

A Vehicle Identification Number is the worldwide standard identifier assigned to every car, truck, motorcycle, and trailer. It is exactly 17 characters, and by design it never uses the letters I, O, or Q so they cannot be confused with the digits 1 and 0. The structure carries meaning: the first characters describe the manufacturer and region, the middle section encodes the vehicle's attributes, and the final characters identify the specific unit, including the model year in a known position.

Reading it reliably is the whole challenge. A VIN photographed through glass picks up glare and reflections. One stamped into the chassis is low-contrast and often shot at a steep angle. A barcode label may be faded or partially obscured. Because every character is load-bearing, the tool's job is not just to recognise text but to capture all seventeen characters in the right order without dropping or transposing one.

Why structured extraction beats reading it by eye

Typing a VIN by hand from a phone photo is exactly the kind of task that produces silent errors. Seventeen characters of mixed letters and digits, with no spaces and no obvious grouping, is hard to transcribe and harder to proofread. A single wrong character flows downstream into the wrong vehicle history report, the wrong parts order, or the wrong insurance record.

Pulling the VIN as a discrete field removes the retyping step and the proofreading that should follow it. Because the number comes back in its own labelled field — not mixed into a block of recognised text — you can feed it straight into a decoder, a registration lookup, or a dealership management system without anyone squinting at a screen to find which string on the page was the VIN.

Who uses a VIN scanner

  • Dealerships logging trade-ins and used-car inventory without keying each VIN by hand.
  • Insurers and claims adjusters capturing the VIN from a customer photo to bind or verify a policy.
  • Fleet and rental operators onboarding vehicles into asset and maintenance systems.
  • Auto parts counters confirming the exact vehicle before ordering components.
  • Inspection, towing, and salvage businesses recording vehicles in the field from a phone.
  • Developers adding a "scan the VIN" feature to an app with a single API call.

Decoded details and what the document supports

Beyond the raw number, the scanner returns the make, model, model year, trim, and color when those details are present on the document or can be read directly from it. A registration card or a window sticker often prints the make and model in plain text, so they come back filled. A bare VIN plate photographed on its own may give you only the seventeen characters, with the descriptive fields left empty.

That distinction is deliberate. The tool returns what the image actually shows rather than asserting attributes it cannot see. If you need the full decoded specification, the captured VIN is the reliable key to run through a dedicated VIN decoding service — the scanner's role is to get that key right. The same applies to trim and color: a window sticker may spell out a trim level and a paint name in full, while a stamped VIN plate carries neither, and the scanner reflects that difference rather than papering over it with an assumed value.

Accuracy, glare, and when to retake the photo

No reader is correct every time, and a VIN tool that claimed to be would be hiding its hardest cases. Accuracy is highest on sharp, straight-on, well-lit images. Glare across a windshield stamp, a steep shooting angle, or a worn label are the situations where a character can be misread, and they are also the easiest to fix: moving closer, killing the reflection, and squaring up the shot usually resolves it.

Where a character genuinely cannot be resolved, the result is returned as read rather than padded with a guess to reach seventeen characters. Because the VIN format excludes I, O, and Q, an obviously invalid character is a useful signal that the image is worth retaking. For any VIN bound to a financial or legal record, a quick visual check against the source photo is the sensible final step.

Output formats, API, and batch

Every scan can be exported as JSON, CSV, Excel, or XML from the same result. JSON suits a developer wiring the VIN into a lookup; CSV and Excel suit an inventory manager building a vehicle list; XML fits an older dealer management import. The free tool handles one image at a time, which covers most counter and field use.

When you are onboarding a whole lot at once, the Docyield API and batch dashboard run the same extraction at volume, return results by webhook, and let you apply your own validation — such as confirming every captured VIN is exactly seventeen characters. The field names you see in the free tool are identical to the ones the API returns.

What the VIN scanner extracts

Each scan is returned against a fixed schema. Descriptive fields that are not present on the document come back empty rather than guessed.

VIN
The 17-character Vehicle Identification Number, captured in order.
Make
Vehicle make or manufacturer, when shown on the document or decodable from it.
Model
Vehicle model, when shown.
Model year
The model year, when shown or decodable.
Trim
Trim level or series, when shown.
Color
Vehicle color, when shown.

How to scan a VIN to JSON, CSV, or Excel

  1. 1Upload your image — drop a clear photo of the VIN plate, sticker, or document onto the box above, or choose a file.
  2. 2Square up the shot and remove glare before uploading; the straighter and sharper the VIN, the better the read.
  3. 3Wait a few seconds while Docyield locates the 17-character VIN and any decoded details.
  4. 4Check the captured VIN against the photo, confirming it is exactly seventeen characters.
  5. 5Pick your output tab — JSON, CSV, Excel, or XML — then copy or download the result.

Frequently asked questions

Processing documents at scale?

Batch upload, an extraction API, and webhooks for 100+ documents a month.

View the API

Related tools