Take a live AI-guided product tour with Lando.Launch AI demo
Document type

Extracting data from vehicle titles

Each state's motor vehicle agency prints its own certificate of title, with its own layout and security paper. A lender collects one for every vehicle it finances to record its lien, and an insurer collects one to settle each total loss. Titles arrive as posted originals or portal scans.

Title intake needs the VIN, the title number, the owner, the lienholder and any brand such as salvage or rebuilt. A collateral management system matches the VIN to the loan and records the lien. A claims system checks ownership before a total loss is paid.

Page 1 of a sample Vehicle Title, with extracted values outlined
13,889Markdown characters
149parse blocks
45fields extracted
The problem

What makes vehicle titles hard

Every state prints its own title

Box order, section lettering and brand wording differ by state. Any vendor solution relying on position-based extraction needs a template for each one.

Security printing behind every value

Titles print on guilloche borders and patterned fields to deter forgery, and the pattern runs behind every typed value on the face.

Handwritten transfers on the back

Sellers and dealers fill in each assignment and reassignment by hand, with a sale date and odometer reading. Blank sections follow the last completed one.

How it works

Parse, extract, verify

1

Parse

Parse turns the document into reading-order Markdown and a hierarchy of blocks (text, tables, figures), and grounds each block to its exact location on the page.

2

Extract

You define the fields in a JSON schema, and Extract returns their values in a consistent, structured format, each linked back to where it appears in the Markdown.

3

Verify

Each value links back to where it appears, down to the character range in the Markdown, and the page and bounding box in the source document, so every result can be verified.

Worked example

One vehicle title, end to end

About this document: A Commonwealth of Virginia certificate of title for a Ford pickup, two portrait pages scanned from paper. The face carries the vehicle description and a bank lienholder with a signed lien release, then the owning dealership's assignment to a buying dealer. The back holds a completed dealer reassignment, and a FOR EXPORT ONLY stamp crosses both pages. Page 1 is featured. Personal names and identifiers were replaced before publication.

Processing objective: The objective is to identify the vehicle and the title record, the values a lender or insurer checks first on the face. The title printer set all five in one ruled band. The title number prints near a red security control number, and extraction keeps the two apart, each grounded to its own box.

Demonstration fields: VIN, Model year, Make, Title number, Date issued

The document

2 of 2 pages
  • Page 1 of the sample Vehicle TitlePage 1shown below
  • Page 2 of the sample Vehicle TitlePage 2

Where each value came from

Page 1 of the sample Vehicle Title, with every featured field outlined
VINvehicle.vin
1FTEW1E86HFB56934
The region of the sample Vehicle Title containing VIN, with the extracted value outlined
extraction_metadata["vehicle.vin"]
{
  "value": "1FTEW1E86HFB56934",
  "page": 1,
  "range": {
    "end": 434,
    "start": 417
  },
  "box": {
    "xmin": 0.04623,
    "ymin": 0.24195,
    "xmax": 0.29835,
    "ymax": 0.25913
  }
}
Model yearvehicle.year
2017
The region of the sample Vehicle Title containing Model year, with the extracted value outlined
extraction_metadata["vehicle.year"]
{
  "value": "2017",
  "page": 1,
  "range": {
    "end": 456,
    "start": 452
  },
  "box": {
    "xmin": 0.3935,
    "ymin": 0.24187,
    "xmax": 0.46394,
    "ymax": 0.25893
  }
}
Makevehicle.make
FORD
The region of the sample Vehicle Title containing Make, with the extracted value outlined
extraction_metadata["vehicle.make"]
{
  "value": "FORD",
  "page": 1,
  "range": {
    "end": 469,
    "start": 465
  },
  "box": {
    "xmin": 0.4637,
    "ymin": 0.24183,
    "xmax": 0.55669,
    "ymax": 0.25889
  }
}
Title numbertitle_number
9440212714
The region of the sample Vehicle Title containing Title number, with the extracted value outlined
extraction_metadata["title_number"]
{
  "value": "9440212714",
  "page": 1,
  "range": {
    "end": 503,
    "start": 493
  },
  "box": {
    "xmin": 0.79524,
    "ymin": 0.24166,
    "xmax": 0.95244,
    "ymax": 0.2587
  }
}
Date issueddate_issued
07/08/17
The region of the sample Vehicle Title containing Date issued, with the extracted value outlined
extraction_metadata["date_issued"]
{
  "value": "07/08/17",
  "page": 1,
  "range": {
    "end": 780,
    "start": 772
  },
  "box": {
    "xmin": 0.79575,
    "ymin": 0.27019,
    "xmax": 0.95242,
    "ymax": 0.29
  }
}

How to try it yourself

Everything on this page is reproducible. The sample, its schema, and the Parse and Extract API outputs are published. You can repeat the same two calls from whichever surface you already build on.

  • Claude Skilldescribe the job; the agent writes it
  • CLIno code at all
  • MCPexpose ADE docs as an agent tool
  • REST APIany language
  • Pythonlandingai-ade
  • TypeScriptlandingai-ade
Why LandingAI?

Documents into data

Accurate

The best accuracy on the difficult documents other tools get wrong, such as messy scans, complicated tables, checkboxes and handwriting.

Auditable

Every answer cites its sources. Values come back with an audit trail (page, bounding box, character range) so a human can review them.

Agentic

Applies multi-step reasoning, and plans before it acts. Handles documents it has never seen before and adapts to variations.

API-first

Composable APIs that drop into any tech stack and can be called from anywhere. Easy to build on and embed in your pipelines and products.

Affordable

Cost-competitive rates with complete price transparency. Spend controls before you run, and every job reports its exact cost.

Enterprise-grade

Built for production and scale from day one. Fully observable and monitored, running securely in our cloud or yours.

Built for high-volume, high-throughput production

  • Zero data retention
  • Priority rate limits
  • Enhanced support
  • VPC and on-prem deployment

Available on Team and Enterprise plans. VPC and on-prem deployment require an Enterprise plan.

Compare plans
Capabilities

Vehicle Title processing highlights

VIN and vehicle description
Title and control numbers
Owners and lienholders
Signed lien releases
Title type and brands
Assignment and reassignment sections
Rubber stamps across fields
Security-printed backgrounds
Raster scans of paper titles
Weights and body type
Every state's layout
Bounding box for every value
FAQs

Questions, answered

No. A schema names the fields you want and describes each one in plain language. Extraction is schema-driven, so one schema reads titles from different states, whatever order their boxes print in.

Yes. A field description can say which box holds the title number and which nearby identifiers to ignore, such as a security control number. Each number then comes back in its own field, grounded to its own box.

Yes. The lienholder's name and address come back as fields, and a boolean field records whether the release section is signed. A lender or insurer uses the pair to confirm a lien is satisfied before ownership transfers.

Yes. Parsing works from the page image, and the DPT-3 Pro model reads scanned documents and handwriting. Blocks carrying a stamp or signature are labeled as attestations, so a schema can capture a stamp's text, such as a dealer's export stamp.

Every extracted value carries the character range it was quoted from in the parsed Markdown. The Ground API maps that range to a page and a bounding box, so a title clerk sees each value in the box that printed it.

Start extracting vehicle title data

Reliable, structured outputs with full traceability in minutes