Skip to navigation

Concepts

How organizations, domains, virtual chargers and roaming fit together.

Organizations

Your organization is the tenant. Every token belongs to one organization, and every call only reads and writes that organization’s data. An id from another organization returns 404.

Domains

The API is split into eight domains. Each one is a namespace in the SDKs, a command group in the CLI and its own MCP server.

DomainSDK namespaceREST prefixUse it to
Virtual chargersclient.evcharger/evchargerDeploy simulated chargers against any CSMS and drive them with OCPP commands
CPOclient.cpo/cpoRun your own charging infrastructure: charge points, locations, tariffs, sessions, CDRs
eMSPclient.emsp/emspIssue driver tokens and choose which partner locations your drivers see
OCPIclient.ocpi/ocpiConnect to roaming partners and hubs, and push or pull CPO and eMSP data
Proxyclient.proxy/proxyPut OCPPLab between chargers and a backend, and send commands through it
Bookingclient.booking/bookingLet drivers reserve a charger ahead of time
Energyclient.energy/energy-managementCap the power of chargers and read what they draw
Webhooksclient.webhooks/webhook-gatewayGet events on your HTTPS endpoint instead of polling

Virtual chargers

A location groups virtual chargers. A deployment is one running charger: it has an OCPP identity, a charger model from the catalog, and the ws_url of the CSMS it connects to. Once online, a virtual charger also appears as a CPO charge point, so the same charger can be driven as a simulator (evcharger) and managed as infrastructure (cpo).

Asynchronous operations

Deploying chargers and sending them commands takes seconds, so those calls return 202 Accepted at once and finish in the background. The response tells you what to poll. See Long-running operations.

Roaming

As a CPO you publish locations, tariffs, sessions and CDRs to partners. As an eMSP you publish driver tokens and receive partner locations. OCPI connects the two: register a partner, run the credentials handshake, then push or pull data. Your organization’s OCPI party id (for example NL*X0I) is set in Studio under Settings → Business details.

Environments

The SDKs and CLI call https://api.ocpplab.io by default. Pass baseUrl (TypeScript), base_url (Python) or --base-url (CLI) to use another host.