Dealers API
Find vehicle dealers, and read a dealer's contact details and inventory statistics
Find dealers by name, website, location or the makes they sell, from the dealers seen in vehicle listings. Then read one dealer: its contact details, location, and the size, prices and days on market of its inventory.
Endpoints
GET https://api.auto.dev/dealers/search
GET https://api.auto.dev/dealers/{id}View in Browser
https://api.auto.dev/dealers/search?name=Austin%20Subaru&state=TXSearch Dealers
GET /dealers/search answers the dealers that match, most recently seen first. At least one of name, domain, zip, state or make is required.
Parameters
| Prop | Type | Default |
|---|---|---|
name? | string | - |
domain? | string | - |
zip? | string | - |
radius? | number | - |
state? | string | - |
make? | string | - |
limit? | number | 50 |
offset? | number | 0 |
Example Request
curl -X GET "https://api.auto.dev/dealers/search?name=Austin%20Subaru&state=TX" \
-H "Authorization: Bearer YOUR_API_KEY"Response Structure
| Prop | Type | Default |
|---|---|---|
data? | array | - |
total? | number | - |
limit? | number | - |
offset? | number | - |
Search Result Fields
A field with nothing on file is null.
| Prop | Type | Default |
|---|---|---|
id? | string | - |
name? | string | null | - |
phone? | string | null | - |
website? | string | null | - |
domain? | string | null | - |
street? | string | null | - |
city? | string | null | - |
state? | string | null | - |
zip? | string | null | - |
country? | string | null | - |
lat? | number | null | - |
lon? | number | null | - |
lastSeen? | string | - |
listings? | string | null | - |
Example Response
Recorded 2026-11-12, the first two of 10 results:
{
"data": [
{
"id": "d_0050e3915c8f3cdf",
"name": "Austin Subaru",
"phone": "+15123232837",
"website": "austinsubaru.com",
"domain": "austinsubaru.com",
"street": "8100 Burnet Rd",
"city": "Austin",
"state": "TX",
"zip": "78757",
"country": "US",
"lat": 30.36,
"lon": -97.731,
"lastSeen": "2026-11-12 21:00:41.815",
"listings": "https://api.auto.dev/listings?dealerId=d_0050e3915c8f3cdf"
},
{
"id": "d_919fb2028afae889",
"name": "Austin Subaru",
"phone": "+15129579938",
"website": null,
"domain": null,
"street": null,
"city": "Austin",
"state": "TX",
"zip": null,
"country": null,
"lat": null,
"lon": null,
"lastSeen": "2026-11-12 06:23:58.915",
"listings": null
}
],
"total": 10,
"limit": 50,
"offset": 0
}Get a Dealer
GET /dealers/{id} answers one dealer. An id that was retired, because the dealer was merged into another, answers a 308 redirect to the same request with the current id (Location), and names the retired id in X-Dealer-Id-Retired.
Parameters
| Prop | Type | Default |
|---|---|---|
id | string | - |
Example Request
curl -X GET "https://api.auto.dev/dealers/d_0050e3915c8f3cdf" \
-H "Authorization: Bearer YOUR_API_KEY"Response Structure
data is the dealer. A field with nothing on file is null.
| Prop | Type | Default |
|---|---|---|
id? | string | - |
name? | string | null | - |
dealerGroupName? | string | null | - |
phone? | string | null | - |
website? | string | null | - |
email? | string | null | - |
street? | string | null | - |
city? | string | null | - |
state? | string | null | - |
zip? | string | null | - |
country? | string | null | - |
lat? | number | null | - |
lon? | number | null | - |
metro? | string | null | - |
totalInventory? | number | null | - |
newInventory? | number | null | - |
usedInventory? | number | null | - |
avgNewPrice? | number | null | - |
avgUsedPrice? | number | null | - |
avgDom? | number | null | - |
avgDomNew? | number | null | - |
avgDomUsed? | number | null | - |
avgUsedMileage? | number | null | - |
Example Response
Recorded 2026-11-12:
{
"data": {
"id": "d_0050e3915c8f3cdf",
"name": "Austin Subaru",
"dealerGroupName": null,
"phone": "+15123232837",
"website": "austinsubaru.com",
"email": null,
"street": "8100 Burnet Rd",
"city": "Austin",
"state": "TX",
"zip": "78757",
"country": "US",
"lat": 30.36,
"lon": -97.731,
"metro": "640",
"totalInventory": 609,
"newInventory": 445,
"usedInventory": 164,
"avgNewPrice": 39643,
"avgUsedPrice": 26172,
"avgDom": 22.03,
"avgDomNew": 21.54,
"avgDomUsed": 23.37,
"avgUsedMileage": 51443
}
}Error Responses
Errors come wrapped in an error object. Every response also carries the api and user blocks, omitted from the examples below.
Search Errors
/dealers/search answers 400 with code MISSING_FILTER when no filter is given, MISSING_ZIP for radius without zip, UNKNOWN_ZIP for a ZIP code with no location on file, and INVALID_PARAMETER for a parameter that is not a filter:
{
"error": {
"status": 400,
"error": "At least one of name, domain, zip, state, make is required.",
"code": "MISSING_FILTER",
"path": "/dealers/search",
"requestId": "a5986bdc6d74b33c"
}
}When the search cannot run right now, the answer is 503 with code SOURCE_ERROR. Retry later.
Dealer Not Found
{
"error": {
"status": 404,
"error": "Resource \"d_0000000000000000\" not found",
"code": "RESOURCE_NOT_FOUND",
"path": "/dealers/d_0000000000000000",
"requestId": "a5986bd59d0945a4"
}
}Interactive API Reference
Try Search Dealers
Test GET /dealers/search with your API key
Try Get Dealer
Test GET /dealers/{id} with your API key
Plan Availability
- Free: ❌ Not available
- Growth: ✅ Available
- Scale: ✅ Available
See pricing for plan details and signup.
Was this API reference helpful?