Integration Guide

eZap Integration Guide

Connect metering data, run your first forecast, and start scheduling dispatch.

Get started

Three steps to a first forecast

Get credentials, send data, and receive a dispatch schedule in under a day for one feeder.

01

Get API credentials

Ask the eZap team to provision your account. You will receive a Bearer token scoped to your feeder set and bound to your IP range by default. Keep it secure.

Authorization: Bearer ezp_live_<your_token>

Tokens do not expire during the pilot term. Rotate on request: [email protected].

02

Send metering data

Post feeder metering aggregates to /v1/ingest/metering. Model initialisation requires at least 7 days of data at 15-minute resolution.

POST https://api.ezaphq.com/v1/ingest/metering
Content-Type: application/json
Authorization: Bearer ezp_live_<token>

{
  "feeder_id": "feeder-pt-0042",
  "interval_minutes": 15,
  "readings": [
    { "ts": "2026-07-14T00:00:00Z", "mw": 14.7 },
    { "ts": "2026-07-14T00:15:00Z", "mw": 13.9 },
    ...
  ]
}
03

Request a forecast, then retrieve dispatch

After ingesting 7 days of history, request a 24-hour forecast for a feeder. Poll the dispatch schedule endpoint for an operator-ready output.

GET https://api.ezaphq.com/v1/forecast/feeder-pt-0042?horizon=24h
Authorization: Bearer ezp_live_<token>

Response 200 OK
{
  "feeder_id": "feeder-pt-0042",
  "horizon_hours": 24,
  "generated_at": "2026-07-21T06:00:00Z",
  "intervals": [
    {
      "ts": "2026-07-21T06:00:00Z",
      "p10_mw": 12.1,
      "p50_mw": 14.8,
      "p90_mw": 17.2
    },
    ...
  ]
}

Use the quickstart guide for a complete example, including dispatch schedule retrieval.

API reference

Core endpoints

Every endpoint uses JSON for input and output. Send a Bearer token with every request.

Method Endpoint Description Auth
POST /v1/ingest/metering Send feeder readings. Body: feeder_id, interval_minutes, readings[]. Bearer
GET /v1/forecast/{feeder_id} Get the latest probabilistic feeder forecast. Query param: horizon (24h or 72h). Bearer
GET /v1/dispatch-schedule/{feeder_id} Get the dispatch schedule from the P50 forecast for the next 24 to 72 hours. Bearer
GET /v1/feeders List your feeders with ingestion status and the last forecast timestamp. Bearer
POST /v1/ingest/weather Optional: send weather data, including temperature, wind, and cloud cover, to supplement the default ECMWF/Copernicus feed. Bearer
GET /v1/accuracy/{feeder_id} Get trailing 30-day feeder accuracy: MAPE, RMSE, and P50 vs actual comparison. Bearer

Base URL: https://api.ezaphq.com. Use HTTPS for every request. Responses are JSON with standard REST HTTP status codes.

Integration notes

Protocol compatibility and formats

IEC 61968 / CIM compatibility

For SCADA or DMS exports in CIM XML, eZap provides a mapping adapter in its ingestion layer. Submit a sample CIM export during onboarding to confirm the mapping before live ingestion.

Modbus TCP bridge

If REST push is not available, a Modbus TCP bridge forwards interval readings to the ingestion endpoint. It runs as a Docker container on-premises or on a customer-managed VM, with no cloud dependency for the bridge process.

CSV historical backfill

Use the one-time batch endpoint to upload archival CSV data for model initialisation. Format: feeder_id, timestamp_utc, mw, one row per interval. Maximum: 50 MB per batch. Contact support for larger backfills.

Webhook delivery

Grid tier and above can receive forecast updates and deviation alerts through a webhook. The payload matches the forecast GET JSON. An HMAC-SHA256 signature header verifies delivery.

For other integration needs, contact the eZap team. The Regional tier includes custom SCADA connectors and on-site integration support.