Easee
How Joulo connects an Easee charger: Cloud API, OAuth, sync cadence and MID detection.
Easee chargers connect through the Easee Cloud API. You sign in with your Easee account once. Joulo then reads your charging sessions on a schedule.
At a glance
| Property | Value |
|---|---|
| Route | Cloud API |
| API | Easee Cloud API |
| Authentication | OAuth 2.0 |
| Sync | Hourly per account |
| MID detection | Per model, from the Joulo charger catalog |
| Backfill | Automatic, to 1 January 2026 |
How the connection works
Easee issues access tokens that live one hour, paired with a single-use refresh token. Joulo refreshes only when the access token is near expiry. Refreshing on every tick burned about 17,000 requests a day and turned brief upstream hiccups into mass disconnects.
Easee rate-limits per client, and every Joulo token shares one bucket. That is a real upstream ceiling, so each account syncs at most once an hour plus jitter.
The hourly floor costs no data. Sessions are fetched with a 14-day overlap window, so a session that lands between two ticks is picked up on the next one. Only live charger status has hourly resolution.
A single failed refresh does not disconnect you. Joulo counts consecutive auth failures and expires the integration only after several ticks fail in a row.
What Joulo reads
Joulo reads the charging sessions per charger, each with a start time, an end time and the metered energy in kWh.
MID certification
The Easee API reports a product code, not a MID flag. Joulo matches the model against its validated hardware catalog to decide mid_certified. A model that is not in the catalog stays unknown and goes to review.
Limitations
- Live status is refreshed hourly, so
is_chargingcan lag a session that just started. - Easee's auth backend fails in waves. A wave shows as a temporary sync error, not as a lost connection.