canonical: https://jentic.com/apis/documents.ekmmetering.com/ekm-metering

# Documents Ekmmetering EKM Metering API

The EKM Push API exposes real-time and historical readings from EKM Omnimeter smart meters and ioStack gateway devices. The REST interface returns JSON and authenticates with HTTP Basic where the API key is supplied as the username. This curated specification covers the realtime read endpoint, account information, and full CRUD for Push3 gateway triggers, giving agents the operations needed to monitor consumption and react to threshold-driven events. It is intended for energy monitoring, sub-metering, and building-management workflows.

## For AI agents

Read real-time EKM smart meter data, fetch account details, and create or update Push3 gateway triggers using HTTP Basic authentication with an API key.

## Scope

Does not handle billing, utility-tariff calculation, or weather data - use for EKM smart meter readings and Push3 gateway triggers only.

## Capabilities

- Read the latest meter values via GET /readmeter (Realtime API)
- Fetch account and device information through GET /account
- List configured Push3 gateway triggers with GET /triggers
- Create a new gateway trigger using POST /triggers
- Update or delete an existing trigger by ID via PUT or DELETE `/triggers/{id}`
- Authenticate every call with HTTP Basic using the EKM Push API key as the username

## Use cases

### Real-Time Energy Monitoring

Pull the latest meter readings from EKM Omnimeter and ioStack devices via GET /readmeter and feed them into dashboards or alerting pipelines. The realtime endpoint exposes up to the most recent 1,000 readings per meter, suitable for short-window monitoring and operational visibility. A live monitor can be assembled in a few hours of integration work.

Example prompt: GET /readmeter with a meter serial filter, parse the JSON response, and emit the latest kWh reading to a monitoring dashboard.

### Threshold-Based Triggers

Configure Push3 gateway triggers via POST /triggers, then list, update, or delete them through the /triggers collection. Triggers let the gateway fire actions when meter values cross thresholds, supporting demand-response and anomaly-detection workflows without a polling layer in client code.

Example prompt: POST /triggers with a kW threshold and a webhook URL, then GET /triggers to confirm the trigger appears in the list.

### Account and Device Inventory

Use GET /account to enumerate the meters, gateways, and account settings tied to the API key. This provides a starting inventory for orchestration jobs that target specific devices and confirms the credential has access to the expected hardware before issuing reads or trigger updates.

Example prompt: GET /account, parse the device list, and pick the first meter serial number to use as the target for subsequent /readmeter calls.

### AI Agent Energy Workflows via Jentic

An AI agent uses Jentic to search for energy-monitoring intents, load the matching EKM operation, and execute reads or trigger updates while Jentic isolates the API key. This supports agents that watch consumption and act when thresholds are crossed without ever holding the raw credential.

Example prompt: Search Jentic for 'read smart meter data', execute GET /readmeter for a target meter, and create a trigger via POST /triggers if the reading exceeds a configured threshold.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/readmeter` | Read meter data (Realtime API) |
| GET | `/account` | Get account information |
| GET | `/triggers` | List triggers |
| POST | `/triggers` | Create trigger |
| PUT | `/triggers/{id}` | Update trigger |
| DELETE | `/triggers/{id}` | Delete trigger |

## Key resources

- **Realtime** — Latest meter readings from EKM Omnimeter and ioStack devices
- **Account** — Account-level information including registered devices
- **Triggers** — CRUD operations on Push3 gateway triggers

## Why Jentic

- **Setup:** Wiring the EKM Metering API by hand means applying your key as HTTP Basic, choosing between the API and summary EKM Push hosts, and mapping each Push3 gateway route before you can read a meter. Through Jentic you install once, import the EKM Metering API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** EKM puts the trigger id in the URL path (`/triggers/{id}`), so a rule can pin your agent to one trigger for updates. You choose the operations it may call, so a destructive DELETE on a trigger is not included unless you add it, and you can keep the agent to reading meters only.
- **Credential handling:** Your EKM Push API key is stored once, encrypted, by your own Jentic One instance and injected at execution time as HTTP Basic. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'read smart meter data' or 'create an energy trigger', and Jentic returns the matching EKM operation with its parameter schema so the agent calls the right endpoint without consulting the spec by hand.

## Related APIs

- **Particle** — Connected device platform with cloud APIs for sensor data and commands
- **Samsara** — Fleet and industrial IoT data including energy and environmental sensors
- **Ambient Weather** — Environmental sensor data API

## FAQ

### What authentication does the EKM Metering API use?

It uses HTTP Basic authentication. You supply your EKM Push API key as the username with no password. Through Jentic, the key is stored encrypted in the vault and the Basic header is constructed at execution time so the secret never enters the agent's context.

### Can I read live meter data with the EKM Metering API?

Yes. GET /readmeter on https://api.ekmpush.com returns the latest readings (up to the most recent 1,000 per meter) in JSON, with filters for meter serial and time window.

### What are the rate limits for the EKM Metering API?

The OpenAPI spec does not declare explicit rate limits. EKM recommends polling the realtime endpoint no more often than meter sample frequency (typically 1-15 seconds depending on hardware) and applying retries with backoff on transient errors.

### How do I create a gateway trigger through the EKM Metering API via Jentic?

Run pip install jentic and search for 'create an iot trigger'. Jentic returns POST /triggers with its schema; execute it with the threshold and action payload, and Jentic injects the EKM Basic auth credential from the vault.

### Can I update an existing trigger?

Yes. PUT `/triggers/{id}` updates the trigger with the given ID, and DELETE `/triggers/{id}` removes it. List the current triggers with GET /triggers first to confirm the ID you want to modify.

### Does the EKM Metering API include account information?

Yes. GET /account returns the account context and the devices associated with the key, useful for confirming permission scope and enumerating meter serials before reading data.

### Can I limit what my agent is allowed to do with the EKM Metering API?

Yes. Because Jentic One is self-hosted, your own rules decide which EKM operations and credentials the agent may use, so you can allow read-only calls like GET /readmeter and GET /account while withholding write operations such as POST /triggers or DELETE `/triggers/{id}.` Since the trigger id lives in the URL path (`/triggers/{id}`), a rule can pin the agent to a single trigger for PUT updates rather than the whole collection. A destructive delete is never available unless you explicitly grant it, and the API key is injected only for the operations you approve.
