image

Make and model lists stop at the model. Trims are the next step. You send the year, the make id, and the model id. Each row is a trim name plus the vehicle_id that value and recalls expect. A model id is not a vehicle id.

👉 To access this endpoint, you must obtain an API key: https://steadyapi.com/register


Authentication

Every call uses a Bearer token from your SteadyAPI dashboard.

Documentation:
https://docs.steadyapi.com/#authenticating-requests

headers = {
  'Authorization': 'Bearer YOUR_API_KEY'
}

Where this fits

GET /v1/vehicles/make needs a year and returns make ids. GET /v1/vehicles/model needs that year and makeId and returns modelId. This trims call needs all three. The vehicle_id on a trim row is what you send as vehicleId to GET /v1/vehicles/car-value and GET /v1/vehicles/recalls. A VIN lookup, GET /v1/vehicles/vin, can skip this chain and return a vehicle_id directly.


Trims for one model

Endpoint: GET /v1/vehicles/trims

Documentation:
https://docs.steadyapi.com/#autohub-api-GETapi-v1-vehicles-trims

Parameters

  • year — required, four-character year such as 2011
  • makeId — required make id from GET /v1/vehicles/make
  • modelId — required model id from GET /v1/vehicles/model

All three are required. Changing the year, even for the same make and model names, is a different list, and the ids from another year will not match. There is no trim-name search parameter. You pick a row from body.

Python

import requests

url = "https://api.steadyapi.com/v1/vehicles/trims"
headers = {"Authorization": "Bearer YOUR_API_KEY"}

response = requests.get(url, headers=headers, params={
    "year": "2011",
    "makeId": model["makeId"],
    "modelId": model["modelId"],
})
response.raise_for_status()
payload = response.json()
print(payload.get("meta", {}).get("total"))

for trim in payload.get("body", [])[:8]:
    print(trim.get("name"), trim.get("vehicle_id"))

Annotated sample

{
  "name": "LS Pickup 4D 5 3/4 ft",
  "vehicle_id": "358402"
}

Store both fields. name is the label you show. vehicle_id is the id for car value and recalls. meta.total is the number of trims. meta also echoes year, makeId, and modelId. For year 2011, make 9, and model 774, one of the rows is the LS pickup above. Another row on that same response is XFE Pickup 4D 5 3/4 ft with vehicle_id 358405. Use the id from the row the user picked.


Practical use

Make and model endpoints return ids, not names you can pass through. makeId 9 is an id from the make list. Sending the word Chevrolet as makeId will not resolve.

body is a list, not an object keyed by trim name. Walk it and match name if you need a specific cab or bed length. The vehicle_id values are close to each other and are not interchangeable.

Car value also requires mileage. Recalls require only vehicleId. Keep the trim name next to the id so a later price is attached to the right truck.

👉 Get your API key and list trims: https://steadyapi.com/register

How to Look Up a Crypto Profile Using SteadyAPI Oct 09, 2026

How to Look Up a Crypto Profile Using SteadyAPI

Look up one coin by slug. Store the symbol, status, and website list. Quotes are a later call and use data, not body.

How to Read Stock Financials Using SteadyAPI Oct 09, 2026

How to Read Stock Financials Using SteadyAPI

Annual income, balance sheet, and cash flow for one ticker. Amounts come back as formatted strings in three tables.

How to Read AliExpress Reviews Using SteadyAPI Oct 06, 2026

How to Read AliExpress Reviews Using SteadyAPI

Learn how to read AliExpress reviews with SteadyAPI. Page buyer comments, ratings, and photos for one product.

How to List Vehicle Trims Using SteadyAPI Oct 05, 2026

How to List Vehicle Trims Using SteadyAPI

Learn how to list vehicle trims with SteadyAPI. Turn a year, make, and model into trim names and a vehicle id.