Overview
Either `make` or `model` is required. `make` is matched after dropping punctuation and case, with Chevy, VW and Mercedes accepted; `model` matches the start or any part of the EPA's full model name or base model, so `model=Camry` returns Camry, Camry Hybrid LE and Camry AWD LE/SE. A model without a make searches every make that builds it. `year` and `fuelType` narrow the result, and results are ordered newest model year first, then by model name; `limit` (default 20, at most 50) and `page` walk through them.
The data is fueleconomy.gov's vehicles file, rebuilt weekly, joined to its emissions file for the smog rating (the federal rating where a vehicle has both a federal and a California one). Each row is one EPA test configuration: a model year, engine, transmission and drive. `mpg` is the EPA's adjusted label value on the primary fuel, in MPGe for electric vehicles; plug-in hybrids show gasoline MPG in `mpg` and MPGe on electricity in `mpgAlternateFuel`, with their charge-depleting electric range in `electric.rangeMiles`.
`powertrain` is derived from the EPA's alternative fuel type and fuel: electric, plugin_hybrid, hybrid, hydrogen, flex_fuel, cng, diesel or gasoline. Values the EPA leaves blank or zero are null. No match returns 404. On the Free plan kWh per 100 miles, charge times, the onboard charger, annual fuel cost, five-year savings, CO2 and scores are null.
Live Test Vehicle Fuel Economy API →
Endpoint
One host, one path per API. The block below shows this call in four languages; every one of them is the same HTTP request. Making requests covers the timeouts, retries and parameter rules that apply to all of them. The SDKs wrap the same call in a typed client.
curl "https://api.apiverve.com/v1/vehiclefueleconomy?make=Tesla&model=Model%203&year=2024&fuelType=electric&limit=20&page=1" \
-H "x-api-key: your_api_key_here"const res = await fetch('https://api.apiverve.com/v1/vehiclefueleconomy?make=Tesla&model=Model%203&year=2024&fuelType=electric&limit=20&page=1', {
headers: { 'x-api-key': 'your_api_key_here' },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data } = await res.json();
console.log(data);import requests
res = requests.get(
"https://api.apiverve.com/v1/vehiclefueleconomy?make=Tesla&model=Model%203&year=2024&fuelType=electric&limit=20&page=1",
headers={"x-api-key": "your_api_key_here"},
timeout=15,
)
res.raise_for_status()
print(res.json()["data"])package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.apiverve.com/v1/vehiclefueleconomy?make=Tesla&model=Model%203&year=2024&fuelType=electric&limit=20&page=1", nil)
req.Header.Set("x-api-key", "your_api_key_here")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
out, _ := io.ReadAll(res.Body)
fmt.Println(string(out))
}Replace your_api_key_here with the key from your dashboard. When the inputs arrive as a list rather than one at a time, batch requests run up to 200 of them through this same API in a single call.
Authentication
Send your key in the x-api-key header. That is the only auth step — there is no token exchange and no per-endpoint scope to configure. Authentication covers creating, rotating and revoking keys.
A 401 means the key is missing, invalid or expired. A 403 means the key is valid but not permitted here — blocked by a key restriction or an IP allow-list. Running out of credits is a 429.
Parameters
Sent in the query string. Premium parameters are accepted on every plan but only take effect on plans that include them.
| Parameter | Type | Description |
|---|---|---|
makeOptional | string | Vehicle make, for example Toyota, Ford or Tesla. Either make or model is required length 0–40 |
modelOptional | string | Model name or the start of it, for example Camry or Model 3. Either make or model is required length 0–60 |
yearOptional | integer | Model year, 1984 or later range 1984–2030 |
fuelTypeOptional | string | Only vehicles with this powertraingasolinedieselhybridplugin_hybridelectricflex_fuelcnghydrogen |
limitOptional | integer | Vehicles per page, 1-50 default 20 · range 1–50 |
pageOptional | integer | Page of results to return, starting at 1 default 1 · range 1–∞ |
Response
Every API returns the same three top-level keys, so one response handler covers your whole integration: status, error and data. Only data changes shape. Response format covers the envelope, the other output formats and how premium fields are withheld.
{
"status": "ok",
"error": null,
"data": {
"count": 5,
"page": 1,
"pages": 3,
"returned": 2,
"vehicles": [
{
"epaId": 47908,
"year": 2024,
"make": "Tesla",
"model": "Model 3 Long Range AWD",
"baseModel": "Model 3",
"vehicleClass": "Midsize Cars",
"powertrain": "electric",
"fuelType": "Electricity",
"drive": "All-Wheel Drive",
"transmission": "Automatic (A1)",
"engine": {
"cylinders": null,
"displacementL": null,
"turbocharged": false,
"supercharged": false,
"description": null,
"electricMotor": "84 and 191 kW ACPM 3-Phase"
},
"startStop": false,
"mpg": {
"unit": "MPGe",
"city": 137,
"highway": 124,
"combined": 130
},
"mpgAlternateFuel": null,
"electric": {
"rangeMiles": 342,
"rangeCityMiles": 357,
"rangeHighwayMiles": 323,
"rangeKm": 550,
"kwhPer100Miles": {
"city": 24.7,
"highway": 27.2,
"combined": 25.8
},
"chargeTime240vHours": 9.4,
"chargeTime120vHours": null,
"onboardCharger": null
},
"annualFuelCostUsd": 600,
"fiveYearSavingsUsd": 8000,
"co2GramsPerMile": 0,
"scores": {
"fuelEconomy": 10,
"greenhouseGas": 10,
"smog": 10
},
"gasGuzzler": false
},
{
"epaId": 48473,
"year": 2024,
"make": "Tesla",
"model": "Model 3 Long Range AWD-E",
"baseModel": "Model 3",
"vehicleClass": "Midsize Cars",
"powertrain": "electric",
"fuelType": "Electricity",
"drive": "All-Wheel Drive",
"transmission": "Automatic (A1)",
"engine": {
"cylinders": null,
"displacementL": null,
"turbocharged": false,
"supercharged": false,
"description": null,
"electricMotor": "191 kW ACPM 3-Phase"
},
"startStop": false,
"mpg": {
"unit": "MPGe",
"city": 133,
"highway": 122,
"combined": 128
},
"mpgAlternateFuel": null,
"electric": {
"rangeMiles": 341,
"rangeCityMiles": 355,
"rangeHighwayMiles": 324,
"rangeKm": 549,
"kwhPer100Miles": {
"city": 25.3,
"highway": 27.7,
"combined": 26.4
},
"chargeTime240vHours": 10,
"chargeTime120vHours": null,
"onboardCharger": null
},
"annualFuelCostUsd": 600,
"fiveYearSavingsUsd": 8000,
"co2GramsPerMile": 0,
"scores": {
"fuelEconomy": 10,
"greenhouseGas": 10,
"smog": 10
},
"gasGuzzler": false
}
]
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
count | number | 5 | Number of vehicles that match |
page | number | 1 | Page returned |
pages | number | 3 | Number of pages at this limit |
returned | number | 2 | Number of vehicles in this response |
vehicles | array[2] | Matching vehicles, newest model year first | |
epaId | number | 47908 | The vehicle's fueleconomy.gov id |
year | number | 2024 | Model year |
make | string | "Tesla" | Make |
model | string | "Model 3 Long Range AWD" | Full model name as the EPA rates it |
baseModel | string | "Model 3" | Base model name |
vehicleClass | string | "Midsize Cars" | EPA size class, for example Midsize Cars or Small Pickup Trucks 2WD |
powertrain | string | "electric" | gasoline, diesel, hybrid, plugin_hybrid, electric, flex_fuel, cng, hydrogen or other |
fuelType | string | "Electricity" | Fuel as the EPA lists it, for example Regular, Premium or Electricity |
drive | string | "All-Wheel Drive" | Drive type, for example Front-Wheel Drive or All-Wheel Drive |
transmission | string | "Automatic (A1)" | Transmission, for example Automatic (S8) |
engine | object | {...} | Engine and motor |
cylinders | object | null | Number of cylinders |
displacementL | object | null | Engine displacement in litres |
turbocharged | boolean | false | Whether the engine is turbocharged |
supercharged | boolean | false | Whether the engine is supercharged |
description | object | null | The EPA's engine description code, when given |
electricMotor | string | "84 and 191 kW ACPM 3-Phase" | Electric motor rating, for hybrids and electric vehicles |
startStop | boolean | false | Whether the engine has start-stop |
mpg | object | {...} | EPA fuel economy on the primary fuel |
unit | string | "MPGe" | MPG, or MPGe for electric vehicles |
city | number | 137 | City fuel economy |
highway | number | 124 | Highway fuel economy |
combined | number | 130 | Combined fuel economy |
mpgAlternateFuel | object | null | Fuel economy on the second fuel: electricity for plug-in hybrids, E85 or natural gas for dual-fuel vehicles |
electric | object | {...} | Electric range and charging, for electric vehicles and plug-in hybrids |
rangeMiles | number | 342 | EPA electric range in miles |
rangeCityMiles | number | 357 | EPA city electric range in miles |
rangeHighwayMiles | number | 323 | EPA highway electric range in miles |
rangeKm | number | 550 | EPA electric range in kilometres |
kwhPer100Miles | object | {...} | Electricity used per 100 miles |
cityPremium | number | 24.7 | City kWh per 100 miles |
highwayPremium | number | 27.2 | Highway kWh per 100 miles |
combinedPremium | number | 25.8 | Combined kWh per 100 miles |
chargeTime240vHoursPremium | number | 9.4 | Hours to charge on a 240V circuit |
chargeTime120vHoursPremium | object | null | Hours to charge on a 120V circuit |
onboardChargerPremium | object | null | Onboard charger description, when given |
annualFuelCostUsdPremium | number | 600 | EPA's annual fuel cost estimate in US dollars (15,000 miles, 55% city) |
fiveYearSavingsUsdPremium | number | 8000 | Fuel cost saved over five years against the average new vehicle; negative means it costs more |
co2GramsPerMilePremium | number | 0 | Tailpipe CO2 in grams per mile |
scores | object | {...} | EPA 1-10 scores, 10 best |
fuelEconomyPremium | number | 10 | EPA fuel economy score, 2013 models on |
greenhouseGasPremium | number | 10 | EPA greenhouse gas score, 2013 models on |
smogPremium | number | 10 | EPA smog rating, 2000 models on |
gasGuzzler | boolean | false | Whether the vehicle carries the federal gas guzzler tax |
Errors
Read the HTTP status first, then error for the specific reason. The body names the parameter that has to change. Error handling covers the full status list and which of them are worth retrying.
| Status | Meaning | What to do |
|---|---|---|
400 | Input was rejected | Read error; it names the parameter. |
401 | Key missing or invalid | Check the header name and the key value. |
403 | Key valid, but not permitted | A key restriction or IP allow-list; see key scoping. |
429 | Rate limited, or out of credits | Read error to tell them apart; see rate limits. |
Use cases
- Car Shopping Sites
- Show EPA MPG, EV range and running costs beside each listing and let buyers compare trims.
- Fleet Electrification
- Compare the annual fuel cost and CO2 of current vehicles against electric replacements.
- Insurance and Finance
- Add powertrain, fuel type and efficiency to vehicle records for pricing and green-loan eligibility.
- Sustainability Reporting
- Estimate tailpipe CO2 per mile for company cars and mileage claims.
Other ways to use Vehicle Fuel Economy
Set up Vehicle Fuel Economy on APIVerve, or reach the same source a different way. Your APIVerve account and credits work on all of them — one key, one balance.
Related
More in Transportation: