ENERGY1POWER Developers
Energy1Power API · v1

One integration. Many programs.

Enroll resources, push telemetry, set dispatch parameters, receive events, and read performance and settlements, all with one schema-first API. The sandbox ISO uses the same shapes as production.

Get startedDownload OpenAPI 3.1

Quickstart

The base URL is https://api.energy1power.io. Create a scoped sandbox key in the workspace (an authenticator code is required; the key is shown once). Production access requires a signed program addendum.

curl https://api.energy1power.io/healthz

# Enroll a battery (key scope assets:write)
curl -X POST https://api.energy1power.io/v1/assets \
  -H "Authorization: Bearer $E1P_SANDBOX_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "content-type: application/json" \
  -d '{"site_name":"Fresno DC","type":"bess","capacity_kw":2000,
       "energy_kwh":8000,"market":"CAISO"}'

# Push telemetry (scope telemetry:write; up to 5,000 points per call)
curl -X POST https://api.energy1power.io/v1/telemetry \
  -H "Authorization: Bearer $E1P_SANDBOX_KEY" \
  -H "Idempotency-Key: batch-2026-10-03T16:00Z" \
  -H "content-type: application/json" \
  -d '{"points":[{"asset_id":"","ts":"2026-10-03T16:00:00-07:00",
       "kw":1800,"soc_kwh":4200,"quality":"measured"}]}'

# Portfolio MW / GW truth (scope assets:read)
curl https://api.energy1power.io/v1/portfolio -H "Authorization: Bearer $E1P_SANDBOX_KEY"

Simulator: node tools/telemetry-sim/sim.mjs --api https://api.staging.energy1power.io --asset <uuid>:bess:2000:8000 --hours 24 --live.

Every money or dispatch POST takes an Idempotency-Key. Every response carries a correlation id. Timestamps are RFC 3339 with an offset, and a market hour is never sent without a date and zone.

Reference

MethodPathPurposeStatus
GET/healthzLivenessavailable
POST/v1/assetsEnroll a resource (solar, bess, evse, load, gen, microgrid)available
GET/v1/assetsList org-scoped resourcesavailable
GET/v1/assets/{id}Asset 360 with the latest telemetry pointavailable
GET/v1/portfolioMW/GW rollups by type and marketavailable
GET/POST/v1/market/listingsEnergy1Power Market listingsavailable
POST/v1/telemetryPush interval telemetry with quality flags (idempotent batches)available
GET/v1/assets/{id}/telemetryRead a telemetry seriesavailable
GET/v1/dispatch/instructionsReceive dispatch (or subscribe via webhook)phase 2
GET/v1/performanceBaseline vs measured per eventphase 2
GET/v1/settlementsSettlement packsphase 3

Event catalog

Webhooks are signed (HMAC-SHA256, header E1P-Signature) and retried with exponential backoff. Partner-pulled webhooks support mTLS.

dispatch.instruction.created

A resource-level setpoint, with fail-safe semantics if it is not acknowledged.

event.shed.announced

A normalized load-shed or DR event from OpenADR, ISO, or a utility.

performance.measured

Delivered vs baseline for an interval or event.

settlement.issued

An immutable settlement pack is ready.

Changelog

2026-10-03: v1.1 preview adds scoped API keys, telemetry ingest and reads, Asset 360, and Idempotency-Key replay. Tenancy is enforced by Postgres row-level security.

2026-10-03: v1 preview with assets, portfolio, market listings, and access requests. The path stays /v1 until a breaking change, and additive fields never create a new version.