ADF XML parser for dealer leads
ADF (Auto-lead Data Format) is the XML that car marketplaces, dealer websites and lead services use to send leads to dealerships. Airparser reads it from the email and gives you clean fields for your CRM, spreadsheet or automation.
Already have an account? Create an ADF inbox
What is ADF XML?
ADF stands for Auto-lead Data Format. It is an XML format for sending a car shopper's lead to a dealership: who the customer is, which vehicle they want, what they want to trade in, which dealer and which service the lead came from.
One lead is one <adf> document with a <prospect> inside. It usually arrives as plain text in an email, or as an attached .xml file. That is hard to read, and it cannot be loaded into a spreadsheet or a CRM as it is.
The format is followed loosely. Kelley Blue Book's ADF usage guide notes that the original specification contradicts itself in places and that senders use their own variations, so a reader has to be forgiving.
What is inside an ADF lead
The main elements of a lead and the field Airparser puts them in.
| ADF element | What it holds | Airparser field |
|---|---|---|
| id | The lead id of the sender (attributes source and sequence) | lead_id, lead_id_source, lead_sequence |
| requestdate | When the request was made | request_date |
| vehicle interest="buy" | The vehicle the customer wants: status (new or used), year, make, model, trim, VIN, stock number, price | vehicle_year, vehicle_make, vehicle_model, vehicle_trim, vehicle_vin, vehicle_stock, vehicle_price, ... |
| vehicle interest="trade-in" | The customer's trade-in: year, make, model, odometer, condition, appraisal | the vehicles list |
| customer / contact | Name (parts first and last), email, phone, address | customer_first_name, customer_last_name, customer_email, customer_phone, customer_street, customer_city, ... |
| timeframe, comments | When the customer plans to buy and their message | customer_timeframe, customer_comments |
| vendor | The dealer | vendor_name, vendor_id, vendor_contact_name |
| provider | The service that sent the lead | provider_name, provider_service, provider_email, provider_phone |
Example
A sample ADF lead and what you get
On the left is an invented ADF lead, with a vehicle to buy and a trade-in. On the right is the result for the standard ADF fields: one flat record, ready for a spreadsheet or a CRM.
ADF XML lead (sample)
<?xml version="1.0" encoding="UTF-8"?>
<?adf version="1.0"?>
<adf>
<prospect status="new">
<id sequence="1" source="Example Auto Marketplace">LD-2026-004217</id>
<requestdate>2026-10-28T09:14:02-04:00</requestdate>
<vehicle interest="buy" status="used">
<year>2022</year>
<make>Toyota</make>
<model>RAV4</model>
<trim>XLE AWD</trim>
<vin>1HGBH41JXMN109186</vin>
<stock>T4821</stock>
<price type="asking" currency="USD">28950</price>
</vehicle>
<vehicle interest="trade-in" status="used">
<year>2017</year>
<make>Ford</make>
<model>Escape</model>
<odometer status="original" units="mi">64000</odometer>
<condition>Good</condition>
</vehicle>
<customer>
<contact>
<name part="first">Jordan</name>
<name part="last">Rivera</name>
<email>[email protected]</email>
<phone type="phone" time="day">(555) 010-7788</phone>
<address type="home">
<street>218 Maple Avenue</street>
<city>Columbus</city>
<regioncode>OH</regioncode>
<postalcode>43215</postalcode>
<country>US</country>
</address>
</contact>
<timeframe>
<description>Within 2 weeks</description>
</timeframe>
<comments>Is the RAV4 still available? I can come by on Saturday morning and would like an appraisal for my Escape.</comments>
</customer>
<vendor>
<vendorname>Riverside Motors</vendorname>
</vendor>
<provider>
<name part="full">Example Auto Marketplace</name>
<service>Lead feed</service>
</provider>
</prospect>
</adf>Result (JSON)
{
"request_date": "2026-10-28",
"customer_first_name": "Jordan",
"customer_last_name": "Rivera",
"customer_email": "[email protected]",
"customer_phone": "(555) 010-7788",
"customer_comments": "Is the RAV4 still available? I can come by on Saturday morning and would like an appraisal for my Escape.",
"vehicle_interest": "buy",
"vehicle_status": "used",
"vehicle_year": 2022,
"vehicle_make": "Toyota",
"vehicle_model": "RAV4",
"vehicle_trim": "XLE AWD",
"vehicle_vin": "1HGBH41JXMN109186",
"vehicle_stock": "T4821",
"vehicle_price": 28950,
"vendor_name": "Riverside Motors",
"provider_name": "Example Auto Marketplace",
"vehicles": [
{
"interest": "buy",
"year": 2022,
"make": "Toyota",
"model": "RAV4"
},
{
"interest": "trade-in",
"year": 2017,
"make": "Ford",
"model": "Escape"
}
]
}The lead is invented. The result is what an inbox created from the ADF lead template returns for it: the main vehicle is the one to buy, and every vehicle, the trade-in too, is in the vehicles list.
How to parse ADF XML with Airparser
Create an ADF inbox
In Airparser choose Create inbox and start from the ADF lead template. The XML / ADF mode is on and the fields are the standard ADF ones, so there is nothing to set up.
Send your leads to it
Forward the lead emails to the inbox address or set an automatic forwarding rule. You can also upload a lead file or send it through the API.
Get clean fields
Every lead becomes one record with the same fields. Download CSV or JSON, or send the records to Google Sheets, Zapier, Make, n8n or a webhook, and from there to your CRM.
When the fields of your schema have the standard ADF names, the values are taken straight from the XML, without AI. With your own field names, AI only matches the lead to them. A document without ADF is read by the usual parser.
What Airparser reads
- ADF in the text of an email, or in its HTML, even when the XML is shown as escaped text
- ADF as an .xml file: uploaded, sent through the API or attached to an email
- Several vehicles: the vehicle to buy fills the main fields, the trade-in is in the vehicles list
- Several leads in one ADF: the first one fills the fields and all of them are in a prospects list
- Quoted replies and forwarded emails, a stray & in a value, and "not provided" placeholders (left empty)
- No ADF in the email, or invalid XML: the document is parsed by your extraction schema as usual
ADF field reference
These are the standard field names of the ADF lead template. Use them in your own schema and the values come straight from the XML.
Lead
request_date, lead_id, lead_id_source, lead_sequence, prospect_status
Vehicle
vehicle_interest, vehicle_status, vehicle_year, vehicle_make, vehicle_model, vehicle_trim, vehicle_vin, vehicle_stock, vehicle_price, vehicle_price_type, vehicle_currency, vehicle_odometer, vehicle_condition, vehicle_bodystyle, vehicle_transmission, vehicle_options, vehicle_comments
Customer
customer_first_name, customer_last_name, customer_full_name, customer_email, customer_phone, customer_street, customer_city, customer_region, customer_postal_code, customer_country, customer_timeframe, customer_comments
Dealer and source
vendor_name, vendor_id, vendor_contact_name, provider_name, provider_service, provider_email, provider_phone
Lists
vehicles (every vehicle of the lead, the trade-in too), prospects (every lead, when there is more than one)
ADF XML: questions and answers
What is ADF XML?
ADF (Auto-lead Data Format) is an XML format that car marketplaces, dealer websites and lead services use to send a shopper's lead to a dealership. A lead holds the customer's contact details, the vehicle they want, a trade-in vehicle, the dealer and the source of the lead.
Is ADF the same as ADF XML?
Yes. ADF is the name of the format and XML is how it is written, so people use both names for the same lead files.
How do I convert ADF XML to JSON or CSV?
Create an Airparser inbox from the ADF lead template, send the lead email to it (or upload the .xml file) and download the result as JSON or CSV. Each lead becomes one record with fields such as customer_email, vehicle_make and vehicle_vin.
Does Airparser use AI to read ADF?
Not for the XML itself. If every field of your schema has a standard ADF name, the values are taken straight from the XML. If you use your own field names, AI only matches the already parsed lead to them. An email without ADF is read by the usual AI parser.
Can I send ADF leads to my CRM?
Airparser does not have a connector for every dealer CRM. It delivers the fields to Google Sheets, Zapier, Make, n8n or a webhook, and from there they can go to your CRM.
What if a lead has more than one vehicle?
The vehicle the customer wants to buy fills the main vehicle fields. Every vehicle, the trade-in too, is also in the vehicles list, so nothing is lost.
What does it cost?
An ADF lead email uses 1 credit, like any other document.
More about ADF and dealer leads
Parse your first ADF lead
Create an inbox from the ADF lead template, forward one lead email and see the fields.