go-e
How Joulo connects a go-e charger with a per-device API key and the Charging Session Export.
go-e chargers connect with an API key per charger, not per account. You enable the Cloud API in the go-e app and copy the key for each charger you want to connect.
At a glance
| Property | Value |
|---|---|
| Route | Cloud API |
| API | go-e Cloud API, plus the Charging Session Export |
| Authentication | API key per charger, from the go-e app |
| Sync | Every 15 minutes |
| MID detection | Per model, from the Joulo charger catalog |
| Backfill | Automatic, to 1 January 2026 |
How the connection works
go-e keys are per device. Each paired charger carries its own key, so connecting a second charger means enabling the Cloud API on that charger too.
Two endpoints are involved, and they behave differently:
- The status endpoint is live only. It answers
404while the charger is offline. - The Charging Session Export serves history from go-e's cloud. It keeps working while the charger itself is offline.
Joulo harvests the export token at connect time from the status response, so history keeps syncing through an outage. The status call is needed again only for the daily model and MID refresh, or when the export token stops working.
What Joulo reads
Export rows carry epoch timestamps and an energy value. They also carry the meter readings at the start and end of the session, plus the RFID chip that authorised it.
Energy comes from the difference between the two meter readings, not from the reported energy field. The meter delta is the number a MID meter can stand behind.
MID certification
The go-e API exposes no MID flag and only a coarse device type such as go-eCharger_V4. Joulo matches the brand and the derived model against its catalog.
The go-e Charger PRO is the only go-e with a built-in MID meter. The Gemini, including the 2.0, does not have one. When no catalog row matches, the verdict stays unknown and the charger goes to review. Sessions keep syncing while it waits.
Limitations
- One key per charger. A multi-charger site needs the Cloud API enabled on each one.
- The live status endpoint is unavailable while the charger is offline, so
is_chargingcan be stale even though history is current.