BMW ConnectedDrive Vehicles API
Access vehicle data and information
Access vehicle data and information
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/bmw-connecteddrive-vehicles-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
title: CARDATA Containers Vehicles API
version: 1.0.0
description: Management of containers
servers:
- url: https://api-cardata.bmwgroup.com
description: Generated server url
tags:
- name: Vehicles
description: Access vehicle data and information
paths:
/customers/vehicles/{vin}/telematicData:
get:
tags:
- Vehicles
summary: Request Vehicle's telematic data for a container, for the specified vehicle.
operationId: getTelematicData
description: Please note that some keys are bound to dedicated endpoints. These keys can be added to a container, but the corresponding endpoint for which the container is an input-parameter (/telematicData/), won't return these keys. For further details, check the Integration Guide (chapter 3.3.2).
parameters:
- in: header
name: x-version
required: true
schema:
type: string
default: v1
- name: vin
in: path
required: true
schema:
type: string
- name: containerId
in: query
required: true
schema:
type: string
responses:
'400':
description: Bad request. Please check API specification
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'401':
description: Authentication Failed
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'403':
description: Access to resource is forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'500':
description: A permanent server error occurred. Report this error if it occurs
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'503':
description: A temporary server error occurred. Retry again later or report this error if it persists.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'200':
description: A specific list of telematic key and values was returned.
content:
application/json:
schema:
$ref: '#/components/schemas/ExVeTelematicDataResponseDto'
application/xml:
schema:
$ref: '#/components/schemas/ExVeTelematicDataResponseDto'
security:
- bearerAuth: []
/customers/vehicles/{vin}/smartMaintenanceTyreDiagnosis:
get:
tags:
- Vehicles
summary: Request a vehicle Smart Maintenance Tyre Diagnosis for the specified vehicle.
operationId: getSmartMaintenanceTyreDiagnosis
parameters:
- in: header
name: x-version
required: true
schema:
type: string
default: v1
- name: vin
in: path
required: true
schema:
type: string
responses:
'400':
description: Bad request. Please check API specification
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'401':
description: Authentication Failed
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'403':
description: Access to resource is forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'500':
description: A permanent server error occurred. Report this error if it occurs
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'503':
description: A temporary server error occurred. Retry again later or report this error if it persists.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'200':
description: Specific vehicle Smart Maintenance Tyre Diagnosis Data is provided
content:
application/json:
schema:
$ref: '#/components/schemas/SmartMaintenanceTyreDiagnosisDto'
application/xml:
schema:
$ref: '#/components/schemas/SmartMaintenanceTyreDiagnosisDto'
security:
- bearerAuth: []
/customers/vehicles/{vin}/locationBasedChargingSettings:
get:
tags:
- Vehicles
summary: Request Vehicle's location based charging settings
operationId: getLocationBasedChargingSettings
parameters:
- in: header
name: x-version
required: true
schema:
type: string
default: v1
- name: vin
in: path
required: true
schema:
type: string
- name: nextToken
in: query
required: false
schema:
type: string
responses:
'400':
description: Bad request. Please check API specification
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'401':
description: Authentication Failed
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'403':
description: Access to resource is forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'500':
description: A permanent server error occurred. Report this error if it occurs
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'503':
description: A temporary server error occurred. Retry again later or report this error if it persists.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'200':
description: List of location based charging settings returned for the VIN.
content:
application/json:
schema:
$ref: '#/components/schemas/LocationBasedChargingSettingsDto'
application/xml:
schema:
$ref: '#/components/schemas/LocationBasedChargingSettingsDto'
security:
- bearerAuth: []
/customers/vehicles/{vin}/image:
get:
tags:
- Vehicles
summary: Request a vehicle image for the specified vehicle.
operationId: getImage
produces:
- image/png,image/jpeg,application/json
parameters:
- in: header
name: x-version
required: true
schema:
type: string
default: v1
- name: vin
in: path
required: true
schema:
type: string
responses:
'400':
description: Bad request. Please check API specification
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'401':
description: Authentication Failed
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'403':
description: Access to resource is forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'500':
description: A permanent server error occurred. Report this error if it occurs
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'503':
description: A temporary server error occurred. Retry again later or report this error if it persists.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'200':
description: A specific vehicle image is provided
content:
'*/*':
schema:
type: file
security:
- bearerAuth: []
/customers/vehicles/{vin}/chargingHistory:
get:
tags:
- Vehicles
summary: Request the vehicle's Charging History sessions.
operationId: getChargingHistory
parameters:
- in: header
name: x-version
required: true
schema:
type: string
default: v1
- name: vin
in: path
required: true
schema:
type: string
- name: nextToken
in: query
required: false
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date-time
- name: to
in: query
required: true
schema:
type: string
format: date-time
responses:
'400':
description: Bad request. Please check API specification
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'401':
description: Authentication Failed
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'403':
description: Access to resource is forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'500':
description: A permanent server error occurred. Report this error if it occurs
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'503':
description: A temporary server error occurred. Retry again later or report this error if it persists.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'200':
description: Whatever Charging History respond will be passed on.
content:
application/json:
schema:
$ref: '#/components/schemas/ChargingHistoryResponseDto'
application/xml:
schema:
$ref: '#/components/schemas/ChargingHistoryResponseDto'
security:
- bearerAuth: []
/customers/vehicles/{vin}/basicData:
get:
tags:
- Vehicles
summary: Request basic vehicle data for the specified vehicle.
operationId: getBasicData
parameters:
- in: header
name: x-version
required: true
schema:
type: string
default: v1
- name: vin
in: path
required: true
schema:
type: string
responses:
'400':
description: Bad request. Please check API specification
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'401':
description: Authentication Failed
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'403':
description: Access to resource is forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'500':
description: A permanent server error occurred. Report this error if it occurs
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'503':
description: A temporary server error occurred. Retry again later or report this error if it persists.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'200':
description: A VIN specific list of telematic key and values was returned.
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleDto'
application/xml:
schema:
$ref: '#/components/schemas/VehicleDto'
security:
- bearerAuth: []
/customers/vehicles/mappings:
get:
tags:
- Vehicles
summary: Request mapped vehicles.
operationId: getMappings
parameters:
- in: header
name: x-version
required: true
schema:
type: string
default: v1
responses:
'400':
description: Bad request. Please check API specification
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'401':
description: Authentication Failed
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'403':
description: Access to resource is forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'500':
description: A permanent server error occurred. Report this error if it occurs
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'503':
description: A temporary server error occurred. Retry again later or report this error if it persists.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
application/xml:
schema:
$ref: '#/components/schemas/CustomerErrorResponse'
'200':
description: List of mapped vehicles
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleMappingDto'
application/xml:
schema:
$ref: '#/components/schemas/VehicleMappingDto'
security:
- bearerAuth: []
components:
schemas:
TreadDto:
type: object
properties:
carcass:
type: string
label:
type: string
manufacturer:
type: string
treadDesign:
type: string
value:
type: string
BusinessErrorDto:
type: object
properties:
creationTime:
type: string
format: date-time
hint:
type: string
LocationBasedChargingTimeWindowDto:
type: object
properties:
startChargingTimePeriodHour:
type: integer
format: int32
startChargingTimePeriodMinute:
type: integer
format: int32
stopChargingTimePeriodHour:
type: integer
format: int32
stopChargingTimePeriodMinute:
type: integer
format: int32
PassengerCarDto:
type: object
properties:
mountedTyres:
$ref: '#/components/schemas/PassengerCarTyreSetDto'
unmountedTyres:
$ref: '#/components/schemas/PassengerCarTyreSetDto'
PassengerCarTyreSetDto:
type: object
properties:
aggregatedQualityStatus:
$ref: '#/components/schemas/AggregatedQualityStatusDto'
frontLeft:
$ref: '#/components/schemas/TyreDataDto'
frontRight:
$ref: '#/components/schemas/TyreDataDto'
label:
type: string
rearLeft:
$ref: '#/components/schemas/TyreDataDto'
rearRight:
$ref: '#/components/schemas/TyreDataDto'
SeasonDto:
type: object
properties:
label:
type: string
season:
type: string
value:
type: string
VehicleDto:
type: object
properties:
vin:
type: string
brand:
type: string
enum:
- BMW
- BMWi
- BMW Motorrad
- Toyota-Supra
- MINI
- Rolls-Royce
isTelematicsCapable:
type: boolean
puStep:
type: string
modelRange:
type: string
series:
type: string
modelName:
type: string
modelKey:
type: string
bodyType:
type: string
numberOfDoors:
type: integer
format: int32
hasNavi:
type: boolean
headUnit:
type: string
hasSunRoof:
type: boolean
countryCodeISO:
type: string
steering:
type: string
engine:
type: string
driveTrain:
type: string
chargingModes:
type: array
items:
type: string
propulsionType:
type: string
colourCode:
type: string
colourCodeRaw:
type: string
constructionDate:
type: string
fullSAList:
type: string
hvsMaxEnergyAbsolute:
type: string
simStatus:
type: string
PublicChargingPointDto:
type: object
properties:
potentialChargingPointMatches:
type: array
items:
$ref: '#/components/schemas/PublicChargingPointMatchesDto'
required:
- potentialChargingPointMatches
ChargingHistoryResponseDto:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ChargingSessionDto'
next_token:
type: string
required:
- data
RunFlatDto:
type: object
properties:
label:
type: string
runFlat:
type: boolean
value:
type: string
DimensionDto:
type: object
properties:
aspectRatio:
type: integer
format: int32
constructionType:
type: string
label:
type: string
loadIndex:
type: integer
format: int32
rimDiameter:
type: integer
format: int32
sectionWidth:
type: integer
format: int32
speedRating:
type: string
value:
type: string
ChargingBlockDto:
type: object
properties:
startTime:
type: integer
format: int64
endTime:
type: integer
format: int64
averagePowerGridKw:
type: number
format: double
required:
- endTime
- startTime
MountingDateDto:
type: object
properties:
label:
type: string
mountingDate:
type: string
value:
type: string
TyreDataDto:
type: object
properties:
dimension:
$ref: '#/components/schemas/DimensionDto'
label:
type: string
mountingDate:
$ref: '#/components/schemas/MountingDateDto'
optimizedForOem:
$ref: '#/components/schemas/OptimizedForOemDto'
partNumber:
$ref: '#/components/schemas/PartNumberDto'
qualityStatus:
$ref: '#/components/schemas/QualityStatusDto'
runFlat:
$ref: '#/components/schemas/RunFlatDto'
season:
$ref: '#/components/schemas/SeasonDto'
tread:
$ref: '#/components/schemas/TreadDto'
tyreDefect:
$ref: '#/components/schemas/TyreDefectDto'
tyreProductionDate:
$ref: '#/components/schemas/TyreProductionDateDto'
tyreWear:
$ref: '#/components/schemas/TyreWearDto'
ChargingLocationDto:
type: object
properties:
municipality:
type: string
formattedAddress:
type: string
streetAddress:
type: string
mapMatchedLatitude:
type: number
mapMatchedLongitude:
type: number
required:
- formattedAddress
- municipality
- streetAddress
TyreDefectDto:
type: object
properties:
label:
type: string
value:
type: string
status:
type: string
statusColor:
type: string
enum:
- RED
- YELLOW
- GREEN
- GREY
LocationBasedChargingSettingsDataDto:
type: object
properties:
id:
type: string
lastUpdated:
type: string
clusterLocationId:
type: string
latitude:
type: number
format: double
longitude:
type: number
format: double
lastVisit:
type: string
visits:
type: integer
format: int32
chargingMode:
type: string
optimizedChargingPreference:
type: string
startChargingTimePeriodHour:
type: integer
format: int32
startChargingTimePeriodMinute:
type: integer
format: int32
stopChargingTimePeriodHour:
type: integer
format: int32
stopChargingTimePeriodMinute:
type: integer
format: int32
vehicleIdWithGcid:
type: string
chargingTimeWindows:
type: array
items:
$ref: '#/components/schemas/LocationBasedChargingTimeWindowDto'
acCurrentLimitFlag:
type: string
acCurrentLimit:
type: number
format: double
acousticLimit:
type: string
flapLock:
type: string
chargingPlug:
type: string
VehicleMappingDto:
type: object
properties:
vin:
type: string
mappedSince:
type: string
format: date-time
mappingType:
type: string
enum:
- PRIMARY
- SECONDARY
TelematicDataEntryDto:
type: object
properties:
value:
type: string
unit:
type: string
timestamp:
type: string
TyreWearDto:
type: object
properties:
label:
type: string
value:
type: string
status:
type: string
statusColor:
type: string
enum:
- RED
- YELLOW
- GREEN
- GREY
dueMileage:
type: integer
format: int32
unit:
type: string
enum:
- KILOMETER
- MILE
SmartMaintenanceErrorDto:
type: object
properties:
eventId:
type: string
message:
type: object
type:
type: string
AggregatedQualityStatusDto:
type: object
properties:
label:
type: string
qualityStatus:
type: string
value:
type: string
PublicChargingPointMatchesDto:
type: object
properties:
postalCode:
type: string
streetAddress:
type: string
providerName:
type: string
city:
type: string
QualityStatusDto:
type: object
properties:
label:
type: string
qualityStatus:
type: string
value:
type: string
ExVeTelematicDataResponseDto:
type: object
properties:
telematicData:
type: object
additionalProperties:
$ref: '#/components/schemas/TelematicDataEntryDto'
OptimizedForOemDto:
type: object
properties:
label:
type: string
optimizedForOem:
type: string
value:
type: string
LocationBasedChargingSettingsDto:
type: object
properties:
nextToken:
type: string
data:
type: array
items:
$ref: '#/components/schemas/LocationBasedChargingSettingsDataDto'
TyreProductionDateDto:
type: object
properties:
label:
type: string
statusColor:
type: string
enum:
- RED
- YELLOW
- GREEN
- GREY
value:
type: string
SmartMaintenanceTyreDiagnosisDto:
type: object
properties:
passengerCar:
$ref: '#/components/schemas/PassengerCarDto'
errors:
type: array
items:
$ref: '#/components/schemas/SmartMaintenanceErrorDto'
ChargingSessionDto:
type: object
properties:
publicChargingPoint:
$ref: '#/components/schemas/PublicChargingPointDto'
displayedSoc:
type: integer
format: int32
displayedStartSoc:
type: integer
format: int32
businessErrors:
type: array
items:
$ref: '#/components/schemas/BusinessErrorDto'
timeZone:
type: string
startTime:
type: integer
format: int64
endTime:
type: integer
format: int64
totalChargingDurationSec:
type: integer
format: int32
energyConsumedFromPowerGridKwh:
type: number
format: double
energyDecreaseHvbKwh:
type: number
format: double
example: '1.2'
energyDischargedKwh:
type: number
format: double
example: '1.2'
isPreconditioningActivated:
type: boolean
mileage:
type: integer
format: int32
minimum: 0
mileageUn
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bmw-connecteddrive/refs/heads/main/openapi/bmw-connecteddrive-vehicles-api-openapi.yml