This guide takes you from zero to a working integration. By the end, you’ll have authenticated a client, listed your accessible sites, retrieved a charger’s live state, and subscribed to the realtime telemetry stream.Documentation Index
Fetch the complete documentation index at: https://developers.telluspowergroup.com/llms.txt
Use this file to discover all available pages before exploring further.
Before you start
You need aclient_id and client_secret issued by the Tellus platform team. These are not self-service today — request them by emailing support@telluspowergroup.com or via your Tellus partnership contact, specifying:
- The name of your organisation and the platform you’re integrating from
- Whether you need production read-only scope (read live fleet data) or test sandbox scope (verify write / control endpoints)
- The IP ranges or domains your client will call from (for CORS and IP allowlisting)
The base URL shown throughout the API Reference (
api.telluspower.example.com) is a placeholder. The real production hostname is provided alongside your credentials.Step 1 — Get an access token
Exchange yourclient_id and client_secret for a Bearer access token. Tokens are valid for 24 hours; refresh by calling the same endpoint again before expiry.
access_token securely — typically in a server-side secret store, never in browser-accessible code.
Step 2 — List the sites you have access to
Pass the access token in theAuthorization header on every subsequent request.
cURL
Step 3 — Get a charger’s live state
cURL
Step 4 — Subscribe to realtime telemetry
For sub-second telemetry updates across multiple devices, open a WebSocket connection and pass the access token in theAuthorization header during the handshake — or, if your WebSocket client doesn’t support custom handshake headers, as a ?token=... query parameter.
TypeScript
Step 5 — Issue a control command (write scope)
Remote control endpoints — start, stop, V2G discharge, schedule, flexibility — require a write scope on your client_id. Verify each command against the test sandbox before calling against production; these affect real chargers and real customers.
cURL
command_id you can poll via GET /operator/commands/{command_id} to track acceptance and completion.
Common patterns
Token refresh
Token refresh
Access tokens last 24 hours. Refresh by calling
POST /v1/operator/oauth/token again with the same client_id and client_secret. Most production clients refresh proactively a few minutes before expiry rather than waiting for a 401.Error handling
Error handling
All errors follow the envelope
{ code, message, details? }. Common codes:1001— Invalid request parameters1002— Missing required parameter2001— Unauthenticated or invalid token2002— Token expired (refresh and retry)2003— Permission denied3001— Resource not found4001— Resource conflict (e.g., device already registered)5001— Rate-limited9001— Internal server error (please report)
Rate limits
Rate limits
Operator endpoints: 60 requests/minute for queries, 30 requests/minute for batch control commands. Exceeded limits return HTTP 429 with
code: 5001. Add exponential backoff to your client.Coexistence with OCPP
Coexistence with OCPP
Tellus chargers running firmware 260420.0107+ support a customer-configurable second backend. When you (or Tellus, with your authorisation) enable it, the OCPP link to your CPMS continues to handle session operations while the Open Platform API channel runs in parallel for diagnostic, V2G, and energy services. The second channel is opt-in — never an undisclosed parallel connection.
See Coexisting with OCPP for the full pattern, including hosting region and data-sovereignty considerations relevant to European deployments.This is intentional design: Tellus’s Open Platform API is complementary to your CPMS, not a replacement.
Next steps
Browse the API Reference
Every endpoint with an interactive “Try it” console, fully documented schemas, and example payloads.
Tellus Console
See a working application built entirely on this API — operations, diagnostics, V2G, and AI agents.