eZap Integration Guide
Connect metering data, run your first forecast, and start scheduling dispatch.
Three steps to a first forecast
Get credentials, send data, and receive a dispatch schedule in under a day for one feeder.
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].
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 },
...
]
}
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.
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.
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.