JouloDocs

Overview

Joulo REST API reference • base URL, authentication, rate limits, and response format

The Joulo API gives you programmatic access to your EV charger data, charging sessions, and energy statistics. All API access is over HTTPS and returns JSON.

Base URL

https://api.joulo.nl/functions/v1/api

The sandbox runs the same code on test data at https://api-staging.joulo.nl/functions/v1/api.

Four parts, one base URL

PartTokenReference
Personal APIAn API token from your dashboard, or an OAuth2 tokenThe endpoints below
Partner APIA partner API key: jpk_live_ on production, jpk_test_ on the sandboxPartner API in the menu
CPO APIA client credentials token from /functions/v1/oauth-tokenCPO API in the menu
Sandbox helpersYour sandbox partner key or CPO client, on the sandbox onlySandbox in the menu

Every part is described in one OpenAPI document. We announce breaking changes in the API changelog before they take effect.

Authentication

All requests must include a valid token in the Authorization header:

Authorization: Bearer YOUR_API_TOKEN

Generate your API token from the Joulo dashboard under Developer → API. See Authentication for full details, including OAuth2 support.

Personal API endpoints

MethodPathDescription
GET/chargersList all chargers with status and active session info
POST/chargersRegister a new charger (OCPP)
GET/sessionsList charging sessions with filtering and pagination
GET/energyGet monthly energy aggregates and lifetime totals
GET/ere-positionGet your ERE reserve/sell/forecast position with per-quarter sales

Response format

All responses are JSON with Content-Type: application/json. Timestamps are in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ). Numeric values (kWh, credits) are rounded to two decimal places.

Pagination

The GET /sessions endpoint supports pagination with limit and offset query parameters.

ParameterTypeDefaultMaxDescription
limitinteger20100Number of records to return
offsetinteger0•Number of records to skip

Rate limits

Requests are rate-limited per token. If you exceed the limit, the API returns 429 Too Many Requests.

The GET /energy endpoint is ideal for infrequent polling (e.g. once per hour) since it returns aggregated data. Reserve GET /chargers for more frequent checks when you need real-time status.