PowerBox API
The PowerBox API is the integration surface between a utility's back-office systems and the EnergyGrid platform. It carries the two flows a utility partner needs to wire up before customers can use any EnergyGrid-powered hardware or app:
- Customer synchronisation — push customer accounts, service addresses (Premises), and meter configurations from the utility Customer Information System (CIS) into EnergyGrid.
- Hardware binding — link a DataBridge or SmartLink device to its target Advanced Metering Infrastructure (AMI) meter over the utility's wireless mesh radio (Home Area Network).
This page is the entry point. Follow the operations in the sidebar for the full request/response contract, schema definitions, and error semantics.
Audience
This API is intended for utility backend engineers integrating their CIS and AMI head-end systems with EnergyGrid. It is not a public consumer API.
Authentication
All endpoints require an OAuth 2.0 Bearer token obtained from the utility's identity provider. Tokens are short-lived (typically one hour) and must be refreshed via the utility IDP — EnergyGrid does not issue tokens. Pass the token in the Authorization header as Bearer <token>. See the Integration Guide — Configure authentication (OAuth) for the end-to-end exchange.
Base URL
All requests are made against the production base URL, scoped by API version:
https://api.energygrid.example/v1
A staging environment is available for integration testing — see the Servers dropdown on each operation page.
Conventions
- Content type. Requests and responses use
application/jsonunless otherwise noted. - Identifiers. Customer identifiers (
clientId), Premise identifiers (externalSiteId), and Meter identifiers (meterId) are opaque strings owned by the utility CIS. EnergyGrid does not generate them. - Account status. The
AcctStatusfield uses the utility CIS encoding (A= Active,C= Closed,S= Suspended). EnergyGrid mirrors the value rather than translating it. - Idempotency. Customer sync (
POST /powerbox/customer) is idempotent onclientId— repeating the call with the same payload is safe. Hardware binding (POST /powerbox/bind) is not idempotent; checkactionCodeand the meter's current bind state before retrying. - Errors. Errors return the relevant 4xx status code with no body. Reason codes are derived from the status:
400invalid payload,401invalid or expired token,403account locked or closed,404unknown identifier.
Versioning
The API is versioned via the URL path (/v1). Breaking changes ship under a new major version with at least 90 days of overlap. Non-breaking additions (new optional fields, new enum values on extensible enums) ship within the current version.
Sample
This specification is published as a portfolio sample. The contracts, schemas, and conventions are representative of the kind of utility integration API that EnergyGrid (a fictional platform documented end-to-end on this site) would expose. The hostnames are illustrative and do not resolve.
Authentication
- HTTP: Bearer Auth
OAuth 2.0 Bearer token from the Utility IDP
Security Scheme Type: | http |
|---|---|
HTTP Authorization Scheme: | bearer |
Bearer format: | JWT |
License
MIT