Before you start
This playbook is for operators and e-mobility providers who need reporting beyond what Connect offers out of the box. Connect already gives you a business overview, live operational dashboards, and CDR exports; reach for the API when you need custom KPIs, your own storage, or feeds into other systems. You’ll need an API key and a working understanding of sessions and CDRs, which are the backbone of most reports.What you can build
- A live operations cockpit showing connector availability and faults across your network.
- An automated business report — daily or monthly usage, revenue, and utilisation, sent to your operations or management team.
- A financial export shaped for your accounting system, reconciling sessions, payments, and VAT.
- A performance dashboard to spot utilisation trends and margin opportunities.
The data you’ll use
Four resources cover almost every reporting need. Follow the component link for what each represents; use the reference for the full schema and every field.What a CDR gives you
A single CDR carries most of what a report needs, so you rarely have to stitch resources together:- Energy and time —
consumed(kWh),duration(charging, idle, total),startedAt/endedAt,highestPowerDrawn. - Money —
price(amount,amountExVat,currency,vatRate), andcpoDefaultPrice(the price before vouchers and discounts, useful for margin analysis). - Pricing —
price.tariffIdandtariffNameare embedded, so you can attribute revenue to a tariff without a second call. - Who and how —
auth(method and token),paymentMethod,paymentStatus, andvoucherwhere one applied. - Where —
location(name, city, country, type),evseId,chargeBoxId. - Roaming —
isRoamingandroamingDetailsto separate roaming sessions from your own network.
fields parameter to request only the properties your report needs and keep payloads small.
Integration patterns
Live operations cockpit
- Poll Locations on a short interval for current EVSE and connector status, scoping the request to the sites you care about.
- Poll Transactions for sessions in progress, using its
updatedAtfilter to fetch only what changed since your last pull. - Surface current availability and faults, and flag anything stuck.
Nightly report
-
Query CDRs for the day’s completed sessions with the
updatedAtFromandupdatedAtTowindow: - Store the records locally, then compile and send the day’s usage and revenue summary.
Monthly report
- Aggregate the CDRs you’ve stored over the month rather than refetching them.
- Group by location, tariff, or payment method to build the figures management needs — most of what you need is already on each CDR.
-
For advanced slicing, the CDR endpoint accepts a
filterparameter (a JSON query) so you can, for example, return only the sessions at a set of locations:
Two limits shape any reporting integration: requests are capped at 120 per minute, and a CDR request returns at most 5,000 records. Page through larger result sets, and see Rate limits.
Best practices
- Sync incrementally. Pull only what changed using each endpoint’s time filter rather than refetching everything. The parameter names differ by endpoint — CDRs use
updatedAtFrom/updatedAtTo, transactions useupdatedAt— so confirm each on the reference. See Filtering. - Page through completely. List endpoints return results in pages; follow the cursor to the end, and set
limitexplicitly rather than relying on defaults. See Pagination. - Store CDRs locally. Keep a copy of completed records to cut repeat calls and stay clear of the rate limit.
- Retry safely. Back off and retry on transient errors; don’t retry a rejected request unchanged. See Errors.
- Map identifiers across systems. Align on
location.idandevseIdwhen joining Spirii data with your own, to keep records consistent and catch duplicates. See Identifiers.
Next steps
Fleet management
Give a fleet operator visibility and control over their drivers’ charging.
Pylon
Set up the Pylon integration.