Manual / Getting started
3. Add & authorize the integration
You need the portal prep from step 1 done first: a CarData Client created and subscribed to both CarData API and CarData Streaming. That applies to both setup paths below — the guided path only saves you copying the client ID by hand, it doesn’t skip creating the client.
Start setup:
-
Settings → Devices & Services → Add Integration → BavarianData: Connect Home Assistant to BMW CarData.
-
Pick a setup path — Guided or Manual:
Guided vs Manual — which to pick#
Both paths need the same portal client and both end the same way (device authorization → a live stream). They differ only in how the client ID gets in and how the stream is switched on:
| Guided (recommended) | Manual | |
|---|---|---|
| Client ID | discovered for you | you copy & paste it |
| Switching on the stream | one click — an Activate BMW data bookmarklet you run on the portal, before authorizing | the same bookmarklet, after authorizing and picking clusters |
| Which fields turn on | a sensible default set (fine-tune later) | exactly the clusters you tick |
| Best when | you just want it working with no copying | you want to choose clusters up front |
You can always change the streamed clusters afterwards from Configure → Choose streamed data, which uses the same one-click activator again — see step 4.
Guided path#
-
Choose Guided setup (recommended). Home Assistant serves a small activation page. Drag the Activate BMW data button to your bookmarks bar (once):
-
Open the BMW or MINI portal, sign in, go to a vehicle’s stream setup page (BMW CarData → Change data selection), and click the Activate BMW data bookmark. This is the page it runs on:
The bookmarklet finds your client ID, checks the vehicle, and turns on the default data fields — all in your own browser, so no password or session ever leaves it. You’ll see it read the available fields…
…then report how many are active:
Back in Home Assistant, the guided screen waits for that result:
- On an https Home Assistant the activator reports back and setup continues on its own.
- On an http Home Assistant, press Copy in the box the activator shows (pictured above) and paste the short (non-secret) result into the field.
-
Continue with device authorization (below). When it finishes, the default clusters are already streaming — fine-tune them any time from Configure → Choose streamed data.
Manual path#
-
Choose I’ll paste the Client ID myself and paste the client ID you copied from the portal.
-
Continue with device authorization (below).
-
When authorization succeeds, setup moves straight into the cluster picker. Choose your clusters, then run the Activate BMW data bookmarklet exactly as on the guided path. Continue with step 4.
Device authorization (both paths)#
Home Assistant shows a link and a code. Open the link, sign in, and approve the device on BMW’s site. When BMW accepts the approval, the dialog continues on its own — there is nothing to click in Home Assistant. If the code times out, press Submit for a fresh one and try again.
If onboarding fails with “access denied”#
BMW’s authorization backend is sometimes flaky and can report access denied even though your login clearly worked and you never saw a consent page. This is a known BMW-side quirk, not a fault in the integration, and it has a reliable workaround — see Troubleshooting → “access denied”.
Re-authorizing later#
If BMW later invalidates the token, run Configure → Re-authorize with BMW. Running Add device again with the same client ID also works — the existing entry is re-authorized in place and keeps its history. (Removing the integration yourself deletes its recorded history.)