EV Vehicle Catalog

The electric vehicles the route planner can plan for

GET Request
~100ms response
1 credit per request

Endpoint

GET https://api.carapi.dev/v1/ev-vehicles

Take an id from here and pass it as vehicleId to /v1/ev-route.

Query Parameters

ParameterTypeRequiredDescription
brandstringOptionalCase-insensitive brand filter, e.g. Tesla. Max 100 characters.
qstringOptionalFree-text filter across brand, model and variant. Max 100 characters.

With no filters this returns the whole catalog in one response — there is no pagination.

Request Examples

cURL

curl -X GET \
  "https://api.carapi.dev/v1/ev-vehicles?brand=Tesla&token=YOUR_API_KEY"

JavaScript

const res = await fetch(
  'https://api.carapi.dev/v1/ev-vehicles?q=model%203&token=YOUR_API_KEY'
)
const { vehicles, attribution } = await res.json()

// Feed an id straight into the route planner
const vehicleId = vehicles[0].id

// Required by the catalog license — display it alongside the data
console.log(attribution)

Response

{
  "attribution": "Vehicle data from Open EV Data",
  "count": 2,
  "vehicles": [
    {
      "id": "tesla-model-3-lr-2021",
      "brand": "Tesla",
      "model": "Model 3",
      "variant": "Long Range Dual Motor",
      "releaseYear": 2021,
      "usableBatteryKwh": 75,
      "consumptionWhPerKm": 160,
      "dcMaxKw": 250,
      "dcPorts": ["ccs"]
    },
    {
      "id": "tesla-model-y-lr-2022",
      "brand": "Tesla",
      "model": "Model Y",
      "variant": "Long Range Dual Motor",
      "releaseYear": 2022,
      "usableBatteryKwh": 75,
      "consumptionWhPerKm": 168,
      "dcMaxKw": 250,
      "dcPorts": ["ccs"]
    }
  ]
}

Response Fields

FieldTypeDescription
attributionstringRequired credit for the catalog — a license condition, not metadata
countintegerNumber of vehicles matching the filters
vehicles[].idstringPass this as vehicleId to /v1/ev-route
vehicles[].brandstringManufacturer
vehicles[].modelstringModel name
vehicles[].variantstring|nullTrim or drivetrain variant, where the catalog distinguishes one
vehicles[].releaseYearinteger|nullModel year
vehicles[].usableBatteryKwhnumberUsable capacity — what the planner works with, below the nominal pack size
vehicles[].consumptionWhPerKmnumberRated consumption used as the planner baseline before speed, grade and temperature
vehicles[].dcMaxKwnumberPeak DC charging power
vehicles[].dcPortsstring[]DC connectors the vehicle accepts, e.g. ccs

Important Notes

  • Vehicle data comes from Open EV Data. The attribution string in every response is a license condition — display it alongside the data.
  • usableBatteryKwh is usable capacity, not the nominal pack size. Planning against the nominal figure overstates range.
  • Vehicles without a DC fast-charging port are not plannable — /v1/ev-route rejects them with a 400.
  • If your vehicle is missing, plan it directly with batteryKwh and consumptionWhKm instead of an id.
  • Each request consumes 1 API credit from your monthly allowance.