BMW ConnectedDrive website screenshot

BMW ConnectedDrive

BMW ConnectedDrive is BMW Group's umbrella for connected vehicle services spanning navigation, remote services, intelligent emergency call, ConnectedDrive Store add-ons, and the My BMW app. Programmatic access for customers, third-party developers, and the repair-and-maintenance ecosystem is consolidated under the BMW Open Data Platform / BMW CarData. CarData exposes an OAuth 2.0 Device Code Flow protected REST API at api-cardata.bmwgroup.com for retrieving static vehicle metadata (basicData), telematics, charging history, smart maintenance tyre diagnosis, location-based charging settings, vehicle images, and managing data "containers" that scope which telematics descriptors a client is authorized to read. A companion MQTT 3.1.1 streaming service at customer.streaming-cardata.bmwgroup.com:9000 (TLS) pushes live container data on the per-VIN topic `{gcid}/{vin}`. CarData is the EU regulatory successor to the legacy BMW ConnectedDrive REST endpoints used by the My BMW app and is the canonical surface for third-party automotive integrations, including independent repair, fleet, charging, and home-automation use cases.

3 APIs 10 Features
AutomotiveConnected VehicleTelematicsVehicle DataCarDataConnectedDriveElectric VehiclesChargingMQTTStreamingOAuthDevice Code FlowGDPRRight To RepairMobility

APIs

BMW CarData Customer API

The BMW CarData Customer API lets an authenticated BMW customer (or a delegate acting on their behalf via the customer portal) read vehicle metadata and telematics for the VINs ...

BMW CarData Streaming API

The BMW CarData Streaming API delivers near-real-time vehicle telematics over MQTT 3.1.1 with TLS. Clients connect to `customer.streaming-cardata.bmwgroup.com` on port 9000, aut...

BMW CarData Third-Party API

The third-party variant of BMW CarData targets independent service providers — repair shops, charging operators, fleet platforms, insurance, and aftermarket integrators — who co...

Collections

Features

OAuth 2.0 Device Code Flow against GCDM for customer consent
Scoped client subscriptions — `cardata:api:read` and `cardata:streaming:read`
CarData "containers" let customers scope which telematics descriptors flow to each client
REST endpoints for basic data, telematic data, charging history, smart maintenance tyre diagnosis, location-based charging settings, vehicle images, and vehicle mappings
MQTT 3.1.1 streaming over TLS for near-real-time per-VIN telematics on topic `{gcid}/{vin}`
GCID-based identity model for both REST bearer tokens and MQTT credentials
One-hour ID tokens with refresh-token rotation
Third-party developer track aligned with EU Data Act / right-to-repair
Separate Repair & Maintenance API track for independent workshops
Companion BMW Car IT open-source stack (joynr, ramses, MoCOCrW, python-dlt) underpinning connected-vehicle middleware

Resources

🌐
Portal
Portal
🌐
Portal
Portal
🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
📝
Signup
Signup
📝
Signup
Signup
🔑
Authentication
Authentication
🔗
ConnectedDrive
ConnectedDrive
🔗
ConnectedDriveStore
ConnectedDriveStore
🔗
MyBMW
MyBMW
👥
GitHubOrganization
GitHubOrganization
👥
GitHubOrganization
GitHubOrganization
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
🔗
Press
Press
📰
Newsroom
Newsroom
🔗
Twitter
Twitter
🔗
LinkedIn
LinkedIn
👥
YouTube
YouTube

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: CARDATA API
  version: 1.0.0
items:
- info:
    name: Containers
    type: folder
  items:
  - info:
      name: List the containers
      type: http
    http:
      method: GET
      url: https://api-cardata.bmwgroup.com/customers/containers
      headers:
      - name: x-version
        value: ''
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: List the containers
  - info:
      name: Create a container
      type: http
    http:
      method: POST
      url: https://api-cardata.bmwgroup.com/customers/containers
      headers:
      - name: x-version
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 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).
  - info:
      name: Request container details
      type: http
    http:
      method: GET
      url: https://api-cardata.bmwgroup.com/customers/containers/:containerId
      headers:
      - name: x-version
        value: ''
      params:
      - name: containerId
        value: ''
        type: path
        description: ID that identifies an unique container
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 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).
  - info:
      name: Delete container by ID
      type: http
    http:
      method: DELETE
      url: https://api-cardata.bmwgroup.com/customers/containers/:containerId
      headers:
      - name: x-version
        value: ''
      params:
      - name: containerId
        value: ''
        type: path
        description: ID that identifies an unique container
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete container by ID
- info:
    name: Vehicles
    type: folder
  items:
  - info:
      name: Request Vehicle's telematic data for a container, for the specified vehicle.
      type: http
    http:
      method: GET
      url: https://api-cardata.bmwgroup.com/customers/vehicles/:vin/telematicData
      headers:
      - name: x-version
        value: ''
      params:
      - name: vin
        value: ''
        type: path
      - name: containerId
        value: ''
        type: query
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 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).
  - info:
      name: Request a vehicle Smart Maintenance Tyre Diagnosis for the specified vehicle.
      type: http
    http:
      method: GET
      url: https://api-cardata.bmwgroup.com/customers/vehicles/:vin/smartMaintenanceTyreDiagnosis
      headers:
      - name: x-version
        value: ''
      params:
      - name: vin
        value: ''
        type: path
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Request a vehicle Smart Maintenance Tyre Diagnosis for the specified vehicle.
  - info:
      name: Request Vehicle's location based charging settings
      type: http
    http:
      method: GET
      url: https://api-cardata.bmwgroup.com/customers/vehicles/:vin/locationBasedChargingSettings
      headers:
      - name: x-version
        value: ''
      params:
      - name: vin
        value: ''
        type: path
      - name: nextToken
        value: ''
        type: query
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Request Vehicle's location based charging settings
  - info:
      name: Request a vehicle image for the specified vehicle.
      type: http
    http:
      method: GET
      url: https://api-cardata.bmwgroup.com/customers/vehicles/:vin/image
      headers:
      - name: x-version
        value: ''
      params:
      - name: vin
        value: ''
        type: path
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Request a vehicle image for the specified vehicle.
  - info:
      name: Request the vehicle's Charging History sessions.
      type: http
    http:
      method: GET
      url: https://api-cardata.bmwgroup.com/customers/vehicles/:vin/chargingHistory
      headers:
      - name: x-version
        value: ''
      params:
      - name: vin
        value: ''
        type: path
      - name: nextToken
        value: ''
        type: query
      - name: from
        value: ''
        type: query
      - name: to
        value: ''
        type: query
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Request the vehicle's Charging History sessions.
  - info:
      name: Request basic vehicle data for the specified vehicle.
      type: http
    http:
      method: GET
      url: https://api-cardata.bmwgroup.com/customers/vehicles/:vin/basicData
      headers:
      - name: x-version
        value: ''
      params:
      - name: vin
        value: ''
        type: path
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Request basic vehicle data for the specified vehicle.
  - info:
      name: Request mapped vehicles.
      type: http
    http:
      method: GET
      url: https://api-cardata.bmwgroup.com/customers/vehicles/mappings
      headers:
      - name: x-version
        value: ''
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Request mapped vehicles.
bundled: true