🚗 AutoHub API
AutoHub vehicle API for specs, values, recalls, and dealers.
- Make, model, and trim lookup, plus VIN decode
- Details, depreciation, and recalls
- Car value
- Dealers
Data is normalized from the EPA (fueleconomy.gov), NHTSA, KBB, and other vehicle sources.
Make, model, and trims come from the EPA. Their ids are the EPA names, and the trim vehicle_id is the EPA vehicle id used by recalls.
Car value and depreciation take the KBB vehicle_id returned by /vin.
Vehicle Discovery & Lookup
Search and autocomplete vehicle makes and models by year and make with fast, real-time results.
GET /v1/autocomplete
requires authentication
Vehicle make & model autocomplete.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/autocomplete'
params = {
'search': 'Tundra',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/autocomplete';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'search' => 'Tundra',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/autocomplete"
);
const params = {
"search": "Tundra",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/autocomplete?search=Tundra" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"search": "tesla",
"total": 10
},
"body": [
{
"type": "model",
"make": "TESLA",
"model": "TESMODS",
"name": "Tesla Model S"
},
{
"type": "model",
"make": "TESLA",
"model": "TESMODX",
"name": "Tesla Model X"
},
{ ... }
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/make
requires authentication
Search vehicle make by year.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/make'
params = {
'year': '2025',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/make';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'year' => '2025',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/make"
);
const params = {
"year": "2025",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/make?year=2025" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"year": "2025",
"total": 48
},
"body": [
{
"makeId": "Acura",
"name": "Acura"
},
{
"makeId": "Alfa Romeo",
"name": "Alfa Romeo"
},
{ ... }
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/model
requires authentication
Search vehicle model by year and make.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/model'
params = {
'year': '2025',
'makeId': 'Mazda',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/model';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'year' => '2025',
'makeId' => 'Mazda',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/model"
);
const params = {
"year": "2025",
"makeId": "Mazda",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/model?year=2025&makeId=Mazda" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"year": "2025",
"makeId": "Mazda",
"total": 12
},
"body": [
{
"modelId": "3 4-Door 2WD",
"name": "3 4-Door 2WD"
},
{
"modelId": "3 4-Door 4WD",
"name": "3 4-Door 4WD"
},
{ ... }
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/trims
requires authentication
Get vehicle trims by year, make ID, and model ID
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/trims'
params = {
'year': '2025',
'makeId': 'Mazda',
'modelId': 'CX-5 4WD',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/trims';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'year' => '2025',
'makeId' => 'Mazda',
'modelId' => 'CX-5 4WD',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/trims"
);
const params = {
"year": "2025",
"makeId": "Mazda",
"modelId": "CX-5 4WD",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/trims?year=2025&makeId=Mazda&modelId=CX-5+4WD" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"year": "2025",
"makeId": "Mazda",
"modelId": "CX-5 4WD",
"total": 3
},
"body": [
{
"name": "Auto (S6), 4 cyl, 2.5 L, SIDI",
"vehicle_id": "48537"
},
{
"name": "Auto (S6), 4 cyl, 2.5 L, SIDI; with cylinder deactivation",
"vehicle_id": "48538"
},
{
"name": "Auto (S6), 4 cyl, 2.5 L, Turbo, SIDI",
"vehicle_id": "48539"
}
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/vin
requires authentication
Search vehicle by VIN number
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/vin'
params = {
'vin': 'jm3kkbha5r1166850',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/vin';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'vin' => 'jm3kkbha5r1166850',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/vin"
);
const params = {
"vin": "jm3kkbha5r1166850",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/vin?vin=jm3kkbha5r1166850" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"vin": "JM3KKBHA5R1166850",
"has_results": true
},
"body": {
"using_cads": true,
"vehicle_id": 466424,
"year": "2024",
"make": "MAZDA",
"model": "CX-90",
"vehicle_option_ids": [
11519922,
11519914
],
"additional_option_ids": [
11519951,
11519989,
11519992
],
"trim_name": "Preferred Sport Utility 4D",
"body_style": "SUV",
"engine": "4-Cyl, e-SKYACTIV, Hybrid, 2.5 Liter",
"transmission": "Automatic, 8-Spd e-SKYACTIV-Drive w/Manual Mode",
"drivetrain": "AWD"
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Vehicle Details & Analytics
Retrieve detailed vehicle information including make, model, year, and comprehensive specifications such as performance, fuel economy, dimensions, and features.
GET /v1/details
requires authentication
Retrieve full vehicle details (name, model, trims, specs, features, etc.)
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/details'
params = {
'year': '2025',
'make': 'Chevrolet',
'model': 'Silverado EV',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/details';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'year' => '2025',
'make' => 'Chevrolet',
'model' => 'Silverado EV',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/details"
);
const params = {
"year": "2025",
"make": "Chevrolet",
"model": "Silverado EV",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/details?year=2025&make=Chevrolet&model=Silverado+EV" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"year": "2023",
"make": "mazda",
"model": "cx-5",
"total_trims": 8
},
"body": [
{
"vehicleId": 462025,
"displayName": "2.5 S Sport Utility 4D",
"combinedMpg": "26 MPG",
"maxSeatingCapacity": 5,
"horsepower": "187 @ 6000 RPM",
"standardEngine": "4-Cyl, SKYACTIV-G, 2.5 Liter",
"zeroToSixty": 8.9,
"estimatedElectricRange": 0,
"modelName": "CX-5",
"modelMarketName": "CX-5",
"isEv": false,
"curbWeight": 3728,
"batteryCapacity": 0,
"topSpeed": 128,
"chargeTime": 0,
"torque": 186,
"towingCapacity": 2000,
"driveTrain": "AWD",
"trunkOrCargoCapacity": 30,
"evRange": null,
"epaCity": 24,
"epaHwy": 30,
"epaMpgeCity": 0,
"epaMpgeHwy": null,
"epaCombined": 26,
"epaMpgeCombined": 0,
"fppPrice": 20200,
"bodyStyle": "SUV"
},
{ ... }
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/car-value
requires authentication
Retrieve vehicle value and pricing data including trade-in or private-party values
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/car-value'
params = {
'vehicle_id': '467716',
'mileage': '50000',
'zipcode': '45240',
'priceType': 'private-party',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/car-value';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'vehicle_id' => '467716',
'mileage' => '50000',
'zipcode' => '45240',
'priceType' => 'private-party',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/car-value"
);
const params = {
"vehicle_id": "467716",
"mileage": "50000",
"zipcode": "45240",
"priceType": "private-party",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/car-value?vehicle_id=467716&mileage=50000&zipcode=45240&priceType=private-party" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"vehicle_id": "467716",
"zipcode": "73101",
"price_type": "private-party",
"mileage": "5000",
"generated_at": "2026-06-16 02:15:59"
},
"body": {
"excellent": {
"value": 26880,
"low": 24380,
"high": 29380
},
"verygood": {
"value": 26280,
"low": 23780,
"high": 28780
},
"good": {
"value": 25680,
"low": 23280,
"high": 27980
},
"fair": {
"value": 23980,
"low": 21780,
"high": 26180
}
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/depreciation
requires authentication
Retrieve vehicle depreciation data including historical and future values
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/depreciation'
params = {
'vehicle_id': '475635',
'mileage': '50000',
'zipcode': '73101',
'condition': 'verygood',
'annualMileage': '12000',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/depreciation';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'vehicle_id' => '475635',
'mileage' => '50000',
'zipcode' => '73101',
'condition' => 'verygood',
'annualMileage' => '12000',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/depreciation"
);
const params = {
"vehicle_id": "475635",
"mileage": "50000",
"zipcode": "73101",
"condition": "verygood",
"annualMileage": "12000",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/depreciation?vehicle_id=475635&mileage=50000&zipcode=73101&condition=verygood&annualMileage=12000" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"zipcode": "73101",
"condition": "verygood",
"mileage": 50000,
"annual_mileage": 12000,
"generated_at": "2026-06-16 02:30:47"
},
"body": {
"summary": {
"total_depreciation": 5810,
"depreciation_percentage": 23.52,
"total_years": 5
},
"depreciation_data": [
{
"year": 2024,
"mileage": 26000,
"trade_in_value": 24700,
"private_party_value": 27690,
"is_projected": false
},
{
"year": 2025,
"mileage": 38000,
"trade_in_value": 23250,
"private_party_value": 26250,
"is_projected": false
},
{
"year": 2026,
"mileage": 50000,
"trade_in_value": 21800,
"private_party_value": 24800,
"is_projected": false
},
{ ... }
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/recalls
requires authentication
Retrieve vehicle recall information including safety notices, components affected, and remedies
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/recalls'
params = {
'vehicle_id': '43515',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/recalls';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'vehicle_id' => '43515',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/recalls"
);
const params = {
"vehicle_id": "43515",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/recalls?vehicle_id=43515" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"vehicle_id": "43515",
"year": "2021",
"make": "Mercedes-Benz",
"model": "C300",
"source": "nhtsa",
"total_recalls": 2
},
"body": {
"recalls": [
{
"type": "Recall",
"summary": "Mercedes-Benz USA, LLC (MBUSA) is recalling certain 2021 C300 Cabriolet, C43 AMG Cabriolet, C63 AMG Cabriolet, C63 AMG S Cabriolet, E450 Cabriolet, and E53 AMG Cabriolet vehicles. The rear headrests may be incorrectly mounted to the seatbacks.",
"component": "SEATS:MID/REAR ASSEMBLY:HEAD RESTRAINT",
"consequence": "Incorrectly mounted headrests could move or detach from the seat during a crash, increasing the risk of injury.",
"remedy": "Dealers will inspect the rear seatback guide bushings and replace them if necessary, free of charge. Owner notification letters were mailed July 16, 2021. Owners may contact MBUSA customer service at 1-800-367-6372. MBUSA's number for this recall is 2021060010.",
"report_date": "2021-05-28",
"nhtsa_campaign_id": "21V406000",
"manufacturer_recall_no": null,
"potential_affected_units": null,
"manufacture_dates": null
},
{
"type": "Recall",
"summary": "Mercedes-Benz USA, LLC (MBUSA) is recalling certain 2021 C-Class, E-Class, E-Class Coupe and Convertible, GLC, CLS, AMG GT 4-door Coupe and G-Class vehicles. Please refer to MBUSA's recall report for specific vehicle model details. A faulty electrical contact within the seat position switch may prevent the driver and passenger air bags and seat belt force limiters from properly activating during a crash.",
"component": "SEATS",
"consequence": "Air bags and seat belts that do not perform properly in a crash can increase the risk of injury.",
"remedy": "MBUSA will notify owners, and dealers will replace the seat position switches, free of charge. Owner letters were mailed May 21, 2021. Owners may contact MBUSA customer service at 1-800-367-6372. MBUSA's number for this recall is 2021040016.",
"report_date": "2021-04-01",
"nhtsa_campaign_id": "21V230000",
"manufacturer_recall_no": null,
"potential_affected_units": null,
"manufacture_dates": null
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Vehicle Commerce & Availability
Find dealers near a ZIP code for one make.
GET /v1/dealers
requires authentication
Search for car dealers by location and vehicle criteria
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/vehicles/dealers'
params = {
'zipcode': '60601',
'make': 'Mazda',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/vehicles/dealers';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'zipcode' => '60601',
'make' => 'Mazda',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/vehicles/dealers"
);
const params = {
"zipcode": "60601",
"make": "Mazda",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/vehicles/dealers?zipcode=60601&make=Mazda" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"zipcode": "60601",
"make": "mazda",
"total_dealers": 11
},
"body": [
{
"StorefrontWebURL": "https://www.mazdaofchicagoland.com",
"FranchisePhone": "224-307-8496",
"UsedCarFranchiseId": 0,
"ProfileId": 8001,
"MakeId": 30,
"FranchiseId": 7771155,
"Distance": 11,
"FranchiseZip": "60202",
"FranchiseState": "IL",
"FranchiseCity": "Evanston",
"FranchiseAddress1": "1015 Chicago Avenue",
"FranchiseName": "The Autobarn Mazda of Evanston",
"VendorDealerId": "63784869",
"FranchiseAndMake": "The Autobarn Mazda of Evanston",
"PartnerFranchiseId": "63784869",
"MakeName": "MAZDA",
"PrimaryPhoto": "https://assets.cai-media-management.com/dealership/373d900a-7d32-4695-a2bf-2913b7387491.jpg"
},
{ ... }
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.