Mercedes-Benz Vehicle
Status API Integration

This document explains how to integrate the Mercedes-Benz Vehicle Status API into an application to retrieve real-time vehicle state doors, windows, deck lid, sunroof, tire pressure, and overall lock status for a customer-consented vehicle. It also gives a high-level view of how this could be connected to Odoo, since Odoo has no native Mercedes-Benz connector.

Mercedes-Benz currently offers this data through two related product generations on their developer portal: a classic REST polling API, and a newer "Vehicle Status 1.5" product built around a consent-based Push API. Both are covered here at overview level since the exact product available to a given developer account depends on what is enabled in the Mercedes-Benz Developer Console.

Mercedes-Benz Vehicle Status API integration with Odoo

Objectives

  • Understand what the Vehicle Status API returns and how vehicle owner consent works.
  • Register an application and obtain OAuth2 credentials from the Developer Console.
  • Walk through the consent-based OAuth2 flow needed to call the API on a customer's behalf.
  • Call the Vehicle Status resource and interpret the response fields.
  • Establish a practical path to bring this vehicle data into Odoo.

Key Highlights

  • Vehicle Status data includes door status, door lock status, window position, deck lid, sunroof, tire pressure, and overall vehicle lock state, each with a value, a retrieval status, and a timestamp.
  • Access is per-vehicle and requires the vehicle owner's explicit consent - this is not an open data feed, unlike Lufthansa's public schedule data.
  • Authentication uses OAuth2 with Mercedes-Benz's own CIAM (Customer Identity and Access Management) authorization servers, not a simple client-credentials token.
  • Typical scopes include openid, offline_access, and a product-specific scope such as mb:vehicle:mbdata:vehiclestatus15 (or mb:vehicle:status:general on the older product).
  • The classic REST product exposes a poll-style endpoint at a base URL such as https://api.mercedes-benz.com/vehicledata/v1.
  • The newer "Vehicle Status 1.5" product is push-based: a Management API activates the service per vehicle, and a separate Push API (Kafka-based) streams status changes rather than being polled.
  • Some signals are conditional - for example, certain charging-related signals are only sent while the vehicle is actively charging.
  • Exact endpoint paths, scopes, and payload field names should be confirmed against your Developer Console subscription, since Mercedes-Benz has multiple product versions active at once and the public docs sit behind a login.

1. What This API Offers

The Vehicle Status product delivers last-known state for a specific Mercedes-Benz vehicle, identified by VIN, once the vehicle owner has consented to share data with your application. Reported data typically covers:

  • Door status and door lock status (per door, plus deck lid and fuel flap where applicable)
  • Window and sunroof/rooftop position
  • Overall vehicle lock state
  • Tire pressure
  • Odometer / distance driven
  • Fuel level, or state of charge and range for electric and plug-in hybrid vehicles

Each field in the response is generally returned as a small object containing the value itself, a retrieval status (e.g. VALID), and a timestamp of when that value was last read from the vehicle.

This is status data only. It does not include location tracking beyond what a separate "location" resource provides, and it does not include remote commands (lock/unlock) - those live in a separate product (Connect Your Business / Connect Your Fleet, or the Remote Diagnostic Support API for diagnostics).

2. Getting Access

Step 1 - Create an account at https://developer.mercedes-benz.com and log in to the Developer Console.

Step 2 - Register an application in the Console. This gives you a Client ID and Client Secret.

Step 3 - Subscribe your application to the Vehicle Status product (or "Vehicle Status 1.5" if that is what your account has access to). Some products require an approval step before going live, beyond the free trial tier.

Step 4 - Collect consent from the vehicle owner. Unlike Lufthansa's flight data, this API cannot be called for an arbitrary VIN - the owner must authorize your application first, through Mercedes-Benz's own consent screen. Typical scopes requested at this stage:

  • openid
  • offline_access
  • mb:vehicle:mbdata:vehiclestatus15 (or mb:vehicle:status:general on older products)

Step 5 - Exchange the resulting authorization code for an access token and a refresh token, following the standard OAuth2 Authorization Code flow. Store the refresh token so you can renew access without asking the owner to re-consent every time.

Note

Because this flow depends on a real vehicle owner going through a consent screen, it cannot be fully tested with client-credentials alone the way Lufthansa's public schedule data can. Mercedes-Benz provides a car simulator / tryout environment for development before going to production.

3. Calling the Vehicle Status Endpoint

Once you hold a valid access token scoped to the vehicle owner's consent, a typical call looks like:

GET https://api.mercedes-benz.com/vehicledata/v1/vehicles/{vin}/resources/doors
Authorization: Bearer YOUR_ACCESS_TOKEN

Example response shape (door status resource)

{ "doorstatusfrontleft": { "value": "CLOSED", "retrievalstatus": "VALID", "timestamp": 1544018685 },
  "doorlockstatusfrontleft": { "value": "LOCKED", "retrievalstatus": "VALID", "timestamp": 1544018685 },
  "doorlockstatusvehicle": { "value": "LOCKED", "retrievalstatus": "VALID", "timestamp": 1544018685 } }

Other resources follow the same per-VIN pattern, for example tire pressure or overall vehicle status, depending on which resource path and product your subscription includes.

On the newer Vehicle Status 1.5 product, the pattern is different: you activate the service for a vehicle through the Management API, and status changes are then delivered to you asynchronously through the Push API rather than being fetched on demand.

4. Practical Considerations

  • Treat this as a consent-gated, per-vehicle API, not a public lookup service - your application design needs an onboarding step where the vehicle owner logs in and grants access.
  • Cache and refresh tokens carefully; a lapsed refresh token means asking the owner to re-consent.
  • Some fields will show a retrieval status other than VALID if the vehicle hasn't reported recently (e.g. it's been off or out of signal) - handle this in your UI rather than treating it as an error.
  • If you need remote actions (lock/unlock) rather than status, that is a separate, more restricted product.
  • If you need fleet-scale access across many vehicles rather than one owner-consented vehicle, look at Connect Your Fleet instead, which is designed for that use case.

5. Overview: Connecting This to Odoo

Odoo has no native Mercedes-Benz connector, so this is a custom module, similar in shape to a Lufthansa integration but with one added layer: a consent/onboarding step per vehicle before any data can flow.

Option A - Consent Onboarding + Scheduled Pull

  • Build an Odoo module with a simple onboarding wizard that redirects the vehicle owner (e.g. a fleet driver or asset owner recorded in Odoo) to the Mercedes-Benz consent screen.
  • On callback, store the resulting access and refresh tokens against the corresponding Odoo record (e.g. a Fleet Vehicle record in the Fleet module) as encrypted fields.
  • Use a scheduled action (ir.cron) to refresh tokens and pull current door/window/tire status into a custom model, e.g. x_vehicle_status, linked to the Fleet Vehicle.
  • Surface the latest status directly on the vehicle's form view.

Option B - Push-Based Sync (for the 1.5 / Push API product)

  • Since this product streams updates rather than being polled, you would need a small always-on listener service (outside Odoo's request/response cycle) that subscribes to the Push API and writes updates into Odoo via its external API (XML-RPC/JSON-RPC) as they arrive.
  • This suits real-time dashboards better than a nightly or hourly cron job.

Need a Similar Odoo Integration

Talk to our Odoo team about connecting Mercedes-Benz, or any other third-party vehicle or fleet API, with your Odoo Website.

WhatsApp