Car API (carapi.app) Bodies API
The Bodies API from Car API (carapi.app) — 1 operation(s) for bodies.
The Bodies API from Car API (carapi.app) — 1 operation(s) for bodies.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/car-api:car-api-bodies-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 2.3.15
title: Car API Documentation Bodies API
description: 'Welcome to CarAPIs vehicle API documentation. The developer friendly Car API.
Start developing with your vehicle API today — no fees, no signup. CarAPIs free vehicle data-set
requires no account. Only pay when you''re ready to go live. The free data-set is limited to 2015-2020 vehicles.
To access the full data-set you may signup here and then select a subscription plan.
**Additional Documentation**
For additional documentation please review https://carapi.app/docs.
**SDKs**
PHP SDK: https://github.com/car-api-team/carapi-php-sdk
**Release Updates**
Check release history here: https://github.com/car-api-team/docs/releases'
servers:
- url: https://carapi.app
tags:
- name: Bodies
paths:
/api/bodies:
get:
operationId: makemodeltrimbodies:index:get
summary: Search vehicle bodies (use /api/bodies/v2 instead)
description: '**We encourage users to begin migrating to /api/bodies/v2**
To include additional information about the returned body (such as year, make, model and trim) request with the
query parameter as `verbose=yes`.
For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:
`[{"field": "doors", "op": ">=", "val": 4}, {"field": "type", "op": "in", "val": ["SUV","Van"]}]`
See `/api/vehicle-attributes` for a complete list of vehicle attributes.
JSON operators: `=`, `!=`, `>`, `=`, `<=`, `in`, `not in`, `like`, `not like`, `not null`, and `is null`.
JSON search fields:
`year`, `make`, `model`, `trim`, `type`, `doors`, `seats`, `length`, `width`, `height`, `wheel_base`, `front_track`, `rear_track`, `ground_clearance`, `cargo_capacity`, `max_cargo_capacity`, `curb_weight`, `gross_weight`, `max_payload`, `max_towing_capacity`, `make_model_trim_id`, `created`, `modified`, `make_id`, and `make_model_id`.'
tags:
- Bodies
externalDocs:
url: https://carapi.app/features/json-api-specs#bodies
description: Documentation
parameters:
- $ref: '#/x-swagger-bake/components/parameters/paginatorPage'
- $ref: '#/x-swagger-bake/components/parameters/paginatorLimit'
- in: query
name: sort
required: false
schema:
type: string
enum:
- id
- make_model_trim_id
- type
- doors
- length
- width
- seats
- height
- wheel_base
- front_track
- rear_track
- ground_clearance
- cargo_capacity
- max_cargo_capacity
- curb_weight
- gross_weight
- max_payload
- max_towing_capacity
- $ref: '#/x-swagger-bake/components/parameters/paginatorDirection'
- in: query
name: verbose
description: Includes make, model and trim
required: false
schema:
type: string
enum:
- 'yes'
- 'no'
- in: query
name: make_model_id
required: false
schema:
type: string
description: Value
- in: query
name: make_id
required: false
schema:
type: string
description: Value
- in: query
name: year
required: false
schema:
type: string
description: Value
- in: query
name: make
required: false
schema:
type: string
description: Like
- in: query
name: model
required: false
schema:
type: string
description: Like
- in: query
name: trim
required: false
schema:
type: string
description: Like
- in: query
name: make_model_trim_id
required: false
schema:
type: string
description: Value
- in: query
name: type
required: false
schema:
type: string
description: Like
- in: query
name: doors
required: false
schema:
type: string
description: Value
- in: query
name: json
required: false
schema:
type: string
description: JsonSearchFilter
responses:
'200':
description: ''
content:
application/json:
schema:
properties:
data:
items:
type: object
allOf:
- $ref: '#/components/schemas/MakeModelTrimBody'
type: array
allOf:
- $ref: '#/x-swagger-bake/components/schemas/Generic-Collection'
'400':
description: BadRequestException
content:
application/json:
schema:
title: BadRequestException
properties:
exception:
example: BadRequestException
type: string
code:
example: 400
type: string
url:
example: /url/path
type: string
message:
example: The request contains invalid data. The returned error message should indicate the issue.
type: string
'405':
description: MethodNotAllowedException
content:
application/json:
schema:
title: MethodNotAllowedException
properties:
exception:
example: MethodNotAllowedException
type: string
code:
example: 405
type: string
url:
example: /url/path
type: string
message:
example: The HTTP method used to request this resource is not valid. For example, using an HTTP POST when the endpoint only accepts HTTP GET.
type: string
'429':
description: 'TooManyRequestsException - Max Per Minute: 600'
content:
application/json:
schema:
title: TooManyRequestsException
properties:
exception:
example: TooManyRequestsException
type: string
code:
example: 429
type: string
url:
example: /url/path
type: string
message:
example: 'TooManyRequestsException - Max Per Minute: 600 (note: daily rate limits may apply, see your subscription plans details)'
type: string
'503':
description: ServiceUnavailableException
content:
application/json:
schema:
title: ServiceUnavailableException
properties:
exception:
example: ServiceUnavailableException
type: string
code:
example: 503
type: string
url:
example: /url/path
type: string
message:
example: The server is unavailable, typically only encountered during scheduled maintenance.
type: string
security:
- bearerAuth: []
deprecated: true
/api/bodies/v2:
get:
operationId: makemodeltrimbodies:index2:get
summary: Search vehicle bodies
description: 'The demo dataset contains model years 2015 - 2020. To access years 1900 - today please purchase
a Premium Subscription. You must include a valid JWT in the header once you have
purchased a subscription otherwise you will continue to receive the demo dataset.
For complex queries you may use the json field to send an array of URL encoded JSON conditions, example:
`[{"field": "doors", "op": ">=", "val": 4}, {"field": "type", "op": "in", "val": ["SUV","Van"]}]`
See `/api/vehicle-attributes` for a complete list of vehicle attributes.
JSON operators: `=`, `!=`, `>`, `=`, `<=`, `in`, `not in`, `like`, `not like`, `not null`, and `is null`.
JSON search fields:
`year`, `make`, `model`, `series`, `submodel`, `trim`, `description`, `make_id`, `model_id`, `submodel_id`, `trim_id`, `type`, `doors`, `seats`, `length`, `width`, `height`, `wheel_base`, `front_track`, `rear_track`, `ground_clearance`, `cargo_capacity`, `max_cargo_capacity`, `curb_weight`, `gross_weight`, `max_payload`, `max_towing_capacity`, `created`, and `modified`.'
tags:
- Bodies
externalDocs:
url: https://carapi.app/features/json-api-specs#bodies
description: Documentation
parameters:
- $ref: '#/x-swagger-bake/components/parameters/paginatorPage'
- $ref: '#/x-swagger-bake/components/parameters/paginatorLimit'
- $ref: '#/x-swagger-bake/components/parameters/paginatorSort'
- $ref: '#/x-swagger-bake/components/parameters/paginatorDirection'
- in: query
name: year
required: false
schema:
type: string
description: Value
- in: query
name: make
required: false
schema:
type: string
description: Value
- in: query
name: model
required: false
schema:
type: string
description: Value
- in: query
name: series
required: false
schema:
type: string
description: Value
- in: query
name: submodel
required: false
schema:
type: string
description: Value
- in: query
name: trim
required: false
schema:
type: string
description: Like
- in: query
name: description
required: false
schema:
type: string
description: Like
- in: query
name: make_id
required: false
schema:
type: string
description: Value
- in: query
name: model_id
required: false
schema:
type: string
description: Value
- in: query
name: submodel_id
required: false
schema:
type: string
description: Value
- in: query
name: trim_id
required: false
schema:
type: string
description: Value
- in: query
name: type
required: false
schema:
type: string
description: Like
- in: query
name: doors
required: false
schema:
type: string
description: Value
- in: query
name: json
required: false
schema:
type: string
description: JsonSearchFilter
responses:
'200':
description: ''
content:
application/json:
schema:
properties:
data:
items:
type: object
properties:
id:
minLength: 1
type: integer
format: int64
readOnly: true
make_id:
type: integer
model_id:
type: integer
submodel_id:
type: integer
trim_id:
type: integer
year:
type: integer
make:
type: string
model:
type: string
series:
type:
- string
- 'null'
submodel:
type: string
trim:
type: string
trim_description:
type: string
type:
minLength: 1
maxLength: 32
type: string
description: The body type, such as SUV or Sedan
enum:
- Cargo Van
- Convertible
- Coupe
- Ext Cargo Minivan
- Ext Cargo Van
- Ext Minivan
- Ext Van
- Hatchback
- Minivan
- Passenger Van
- Sedan
- SUV
- Truck (Access Cab)
- Truck (Cab Plus)
- Truck (Club Cab)
- Truck (Crew Cab)
- Truck (CrewMax)
- Truck (Double Cab)
- Truck (Extended Cab)
- Truck (King Cab)
- Truck (Mega Cab)
- Truck (Quad Cab)
- Truck (Regular Cab)
- Truck (SuperCab)
- Truck (SuperCrew)
- Truck (Xtracab)
- Unknown
- Van
- Wagon
doors:
type: integer
format: int32
description: Number of doors — generally including a hatchback as an additional door
length:
type: number
format: float
description: Total length (in inches) of the vehicle in inches
width:
type: number
format: float
description: Total width (in inches) of the vehicle
seats:
type: integer
format: int32
description: Number of passenger seats in the vehicle.
height:
type: number
format: float
description: Total height (in inches) of the vehicle
wheel_base:
type: number
format: float
description: The horizontal distance (in inches) between the centers of the front and rear wheels
front_track:
type: number
format: float
description: The distance (in inches) between the centerline of the wheels
rear_track:
type: number
format: float
description: The distance (in inches) between the hub flanges on an axle
ground_clearance:
type: number
format: float
description: The distance (in inches) between the lowest point on the undersurface of the vehicle and the road
cargo_capacity:
type: number
format: float
description: The standard total cubic feet of space in a vehicles cargo area
max_cargo_capacity:
type: number
format: float
description: The maximum total cubic feet of space in a vehicles cargo area
curb_weight:
type: integer
format: int64
description: Curb weight refers to the vehicles heaviness (in pounds) without passengers or cargo, only counting the car itself along with necessary fluids like oil and coolant
gross_weight:
type: integer
format: int64
description: Gross weight (in pounds) considers all components—including passengers, cargo, and both the tow vehicle weight—if one is attached
max_payload:
type: integer
format: int64
description: Maximum weight in pounds that a vehicle can safely carry
max_towing_capacity:
type: integer
format: int64
description: Maximum weight in pounds that a vehicle can safely tow
type: array
allOf:
- $ref: '#/x-swagger-bake/components/schemas/Generic-Collection'
'400':
description: BadRequestException
content:
application/json:
schema:
title: BadRequestException
properties:
exception:
example: BadRequestException
type: string
code:
example: 400
type: string
url:
example: /url/path
type: string
message:
example: The request contains invalid data. The returned error message should indicate the issue.
type: string
'405':
description: MethodNotAllowedException
content:
application/json:
schema:
title: MethodNotAllowedException
properties:
exception:
example: MethodNotAllowedException
type: string
code:
example: 405
type: string
url:
example: /url/path
type: string
message:
example: The HTTP method used to request this resource is not valid. For example, using an HTTP POST when the endpoint only accepts HTTP GET.
type: string
'429':
description: 'TooManyRequestsException - Max Per Minute: 600'
content:
application/json:
schema:
title: TooManyRequestsException
properties:
exception:
example: TooManyRequestsException
type: string
code:
example: 429
type: string
url:
example: /url/path
type: string
message:
example: 'TooManyRequestsException - Max Per Minute: 600 (note: daily rate limits may apply, see your subscription plans details)'
type: string
'503':
description: ServiceUnavailableException
content:
application/json:
schema:
title: ServiceUnavailableException
properties:
exception:
example: ServiceUnavailableException
type: string
code:
example: 503
type: string
url:
example: /url/path
type: string
message:
example: The server is unavailable, typically only encountered during scheduled maintenance.
type: string
security:
- bearerAuth: []
components:
schemas:
MakeModelTrimBody:
properties:
id:
minLength: 1
type: integer
format: int64
readOnly: true
make_model_trim_id:
minLength: 1
type: integer
format: int64
type:
minLength: 1
maxLength: 32
type: string
description: The body type, such as SUV or Sedan
enum:
- Cargo Van
- Convertible
- Coupe
- Ext Cargo Minivan
- Ext Cargo Van
- Ext Minivan
- Ext Van
- Hatchback
- Minivan
- Passenger Van
- Sedan
- SUV
- Truck (Access Cab)
- Truck (Cab Plus)
- Truck (Club Cab)
- Truck (Crew Cab)
- Truck (CrewMax)
- Truck (Double Cab)
- Truck (Extended Cab)
- Truck (King Cab)
- Truck (Mega Cab)
- Truck (Quad Cab)
- Truck (Regular Cab)
- Truck (SuperCab)
- Truck (SuperCrew)
- Truck (Xtracab)
- Unknown
- Van
- Wagon
doors:
type: integer
format: int32
description: Number of doors — generally including a hatchback as an additional door
length:
type: number
format: float
description: Total length (in inches) of the vehicle in inches
width:
type: number
format: float
description: Total width (in inches) of the vehicle
seats:
type: integer
format: int32
description: Number of passenger seats in the vehicle.
height:
type: number
format: float
description: Total height (in inches) of the vehicle
wheel_base:
type: number
format: float
description: The horizontal distance (in inches) between the centers of the front and rear wheels
front_track:
type: number
format: float
description: The distance (in inches) between the centerline of the wheels
rear_track:
type: number
format: float
description: The distance (in inches) between the hub flanges on an axle
ground_clearance:
type: number
format: float
description: The distance (in inches) between the lowest point on the undersurface of the vehicle and the road
cargo_capacity:
type: number
format: float
description: The standard total cubic feet of space in a vehicles cargo area
max_cargo_capacity:
type: number
format: float
description: The maximum total cubic feet of space in a vehicles cargo area
curb_weight:
type: integer
format: int64
description: Curb weight refers to the vehicles heaviness (in pounds) without passengers or cargo, only counting the car itself along with necessary fluids like oil and coolant
gross_weight:
type: integer
format: int64
description: Gross weight (in pounds) considers all components—including passengers, cargo, and both the tow vehicle weight—if one is attached
max_payload:
type: integer
format: int64
description: Maximum weight in pounds that a vehicle can safely carry
max_towing_capacity:
type: integer
format: int64
description: Maximum weight in pounds that a vehicle can safely tow
type: object
description: ''
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
x-swagger-bake:
components:
parameters:
paginatorPage:
name: page
in: query
required: false
schema:
type: integer
paginatorLimit:
name: limit
in: query
required: false
schema:
type: integer
paginatorSort:
name: sort
in: query
required: false
schema:
type: string
paginatorDirection:
name: direction
in: query
required: false
schema:
type: string
enum:
- asc
- desc
schemas:
HalJson-Item:
type: object
properties:
links:
type: object
properties:
self:
type: object
properties:
href:
type: string
format: url
example: /entity/:id
HalJson-Collection:
type: object
properties:
links:
type: object
properties:
self:
type: object
properties:
href:
type: string
format: url
example: /collection
next:
type: object
properties:
href:
type: string
format: url
example: /collection?page=:number
prev:
type: object
properties:
href:
type: string
format: url
example: /collection?page=:number
first:
type: object
properties:
href:
type: string
format: url
example: /collection?page=:number
properties:
href:
type: string
format: url
example: /collection?page=:number
last:
type: object
properties:
href:
type: string
format: url
example: /collection?page=:number
JsonLd-Item:
type: object
properties:
'@id':
type: string
format: url
example: /entity/:id
'@type':
type: string
format: url
example: https://schema.org/Thing
'@context':
type: string
format: url
example: /context/Entity
JsonLd-Collection:
type: object
properties:
'@id':
type: string
format: url
example: /entity/:id
'@type':
type: string
format: url
example: https://schema.org/Thing
'@context':
type: string
format: url
example: /context/Entity
view:
type: object
properties:
'@id':
type: string
format: url
example: /index
'@type':
type: string
example: PartialCollectionView
next:
type: string
format: url
example: /index?page=:number
prev:
type: string
format: url
example: /index?page=:number
first:
type: string
format: url
example: /index
last:
type: string
format: url
example: /index?page=:number
Generic-Collection:
properties:
collection:
properties:
url:
example: /collection
type: string
format: url
count:
example: 50
type: integer
pages:
example: 20
type: integer
total:
example: 200
type: integer
next:
example: /collection?page=:number
type: string
format: url
prev:
example: /collection?page=:number
type: string
format: url
first:
example: /collection?page=:number
type: string
format: url
last:
example: /collection?page=:number
type: string
format: url
type: object
type: object
x-data-element: data
x-provenance:
method: harvested
publisher: Car API (carapi.app)
source: https://carapi.app/swagger.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)