canonical: https://jentic.com/apis/leap.energy/leap-energy

# Leap Energy API

Jentic publishes the only available OpenAPI specification for Leap Energy API, keeping it validated and agent-ready. The Leap Energy API is the universal control plane for distributed energy resources: it onboards meters in batches, manages enrollment lifecycle, configures idle periods and tags, submits and searches market bids in CAISO, dispatches energy from individual meters or groups, and reports interval data and revenue. Webhooks deliver enrollment, dispatch, and connection-status events so a partner can keep their own system in sync without polling.

## For AI agents

Onboard meters, manage CAISO bidding and dispatches, search interval and revenue data, and configure webhooks for distributed energy resource (DER) operations on Leap.

## Scope

Does not handle retail billing, hardware control, or weather forecasting - use for DER enrollment, market bidding, dispatches, and revenue reporting only.

## Capabilities

- Submit batch jobs to onboard new meters and poll batch job status for enrollment completion
- Manage meter enrollment, idle periods, and tags to control which assets are dispatchable
- Submit, modify, and cancel CAISO market bids and search bid history by meter or window
- Search meter-level and group-level dispatches to reconcile what was called and delivered
- Pull aggregated and meter-level interval data for performance analytics and settlement
- Configure and test webhooks to receive enrollment, connection, and dispatch events

## Use cases

### Automated Meter Onboarding for an Aggregator

A virtual power plant operator onboards thousands of new residential meters into Leap. The agent submits the batch via POST `/meters/batch` with the meter list, polls `/meters/batch/jobs/{jobId}` until completion, and then verifies enrollment status per meter via GET `/meters/{meterId}/enrollment.` Replaces a multi-week manual onboarding workflow.

Example prompt: POST `/meters/batch` with the meter list, poll GET `/meters/batch/jobs/{jobId}` every 30 seconds until status is 'completed', and report the count of successfully enrolled meters.

### CAISO Bidding Automation

An energy operator submits bids into the CAISO market each evening for the next operating day. The agent reads forecast availability, submits bids via POST /bids with price and quantity per resource, then verifies via POST `/bids/search` that the bids cleared. Cancellations and modifications use the same /bids endpoint so the agent can rebalance close to the close time.

Example prompt: POST /bids with the next-day bid set, then POST `/bids/search` filtered by the same window and confirm every bid was accepted.

### Dispatch Settlement Reconciliation

An asset owner reconciles what Leap actually dispatched against their billing system. The agent runs POST `/dispatches/meters/search` for the settlement period, pulls POST `/intervals/meter-level` for the same meters, and joins the two against GET `/revenue/reports` to confirm the revenue line. Replaces manual CSV exports during monthly close.

Example prompt: Search dispatches and meter-level intervals for the prior month, pull GET `/revenue/reports`, and surface any meters where dispatch energy and revenue differ by more than 5 percent.

### Idle-Period Maintenance Coordination

A site manager schedules maintenance windows so meters are not dispatched during downtime. The agent posts the planned window via POST `/meters/{meterId}/idle-periods`, lists existing windows for verification with GET `/meters/{meterId}/idle-periods`, and removes them with DELETE when work completes. Prevents missed-dispatch penalties.

Example prompt: POST `/meters/{meterId}/idle-periods` with the maintenance window, then DELETE the same window when the technician marks the work complete.

### AI Agent Energy Operator via Jentic

An AI agent built on Jentic acts as a junior operator: it watches dispatch webhooks, summarises the day's CAISO performance, flags meters that under-delivered, and drafts the bid set for the next day. Jentic isolates the bearer token so the agent can run unattended without exposing market credentials.

Example prompt: Through Jentic, search 'submit caiso bid', load the schema for POST /bids, and execute the next-day bid set after a human approves the draft.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/meters/batch` | Submit a batch meter onboarding job |
| GET | `/meters/{meterId}/enrollment` | Get enrollment state for a meter |
| POST | `/bids` | Submit, modify, or cancel a CAISO bid |
| POST | `/bids/search` | Search bid history with filters |
| POST | `/dispatches/meters/search` | Search dispatches by meter |
| POST | `/intervals/meter-level` | List meter-level interval energy data |
| GET | `/revenue/reports` | Get monthly revenue reports |
| POST | `/webhooks` | Create a webhook subscription |

## Key resources

- **Meters** — Onboard, search, and manage individual meter assets and their enrollment state
- **Bids** — Submit, modify, cancel, and search CAISO market bids
- **Dispatches** — Search dispatches at meter and group level
- **Intervals** — Aggregated and per-meter interval energy data for analytics and settlement
- **Revenue** — Monthly and yearly revenue reports across the portfolio
- **Webhooks** — Subscribe to enrollment, dispatch, and connection-status events

## Why Jentic

- **Setup:** Wiring the Leap Energy API by hand means setting the bearer token in the Authorization header, targeting the api.leap.energy host, and coordinating the meter, bid, and dispatch endpoints yourself. Through Jentic you install once, import the Leap Energy API from the API Directory, store the bearer token once, and your agent calls it.
- **Permission scoping:** You choose which Leap operations the agent may call, so you can limit it to the ones it needs, such as reading revenue reports and searching dispatches. Because submitting a market bid carries financial weight, you can leave the bid operation out of the allowed set and grant only read and reporting access.
- **Credential handling:** Your Leap bearer token, which carries the rights to submit market bids, is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'submit a CAISO bid' or 'onboard meters in a batch', and Jentic returns the matching Leap operation with its input schema so the agent calls the right endpoint without parsing the paths by hand.

## Related APIs

- **Octopus Energy API** — Octopus Energy provides retail electricity tariffs and consumption data; Leap focuses on dispatching DERs into wholesale markets.
- **Enphase Energy API** — Enphase exposes solar and battery telemetry per home; Leap aggregates and dispatches those assets across markets.
- **Tesla Fleet API** — Tesla Fleet API controls Powerwall and vehicle assets directly; Leap orchestrates fleets of those assets into grid services.

## FAQ

### Why is there no official OpenAPI spec for Leap Energy API?

Leap Energy does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Leap Energy API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Leap Energy API use?

The Leap Energy API uses bearer token authentication: each request includes an `Authorization: Bearer <token>` header. Through Jentic, the bearer token is held in the credential vault and applied at execution time so it never enters the agent's context.

### Can I submit and cancel CAISO market bids through the Leap API?

Yes. POST /bids handles submit, modify, and cancel actions on the same endpoint with different payloads, and POST `/bids/search` returns the resulting state filtered by meter, group, or time window.

### What are the rate limits for the Leap Energy API?

Rate limits are not published in the spec. Bidding is window-bound by CAISO market deadlines, so the practical constraint is timing rather than request volume - submit bids well ahead of the gate-close time and use webhooks rather than polling for dispatch updates.

### How do I onboard a batch of meters through Jentic?

Run `pip install jentic`, search 'onboard meters batch', and execute POST `/meters/batch` with the meter list. Then poll GET `/meters/batch/jobs/{jobId}` via the same Jentic flow until the job reports completion.

### Are webhooks available for dispatches and enrollment events?

Yes. POST /webhooks creates a webhook subscription, PUT `/webhooks/{webhookId}` updates it, and POST `/webhooks/{webhookId}/test` sends a test payload. Subscribe rather than polling /dispatches and /connections for production workloads.

### Can I limit what my agent is allowed to do with the Leap Energy API?

Yes. Jentic One runs self-hosted, so your own rules decide which Leap operations the agent may call and which credentials it may use. You can allow only read and reporting operations such as GET `/revenue/reports` and POST `/dispatches/meters/search` while leaving the financially weighty POST /bids submission out of the allowed set. That way the agent can reconcile dispatches and pull revenue without ever being able to submit or cancel a CAISO market bid.
