1. Onboarding
Each battery needs asite_id and asset_id in Axle’s system before you can send telemetry or
receive dispatch for it — these are the identifiers used throughout the rest of the integration.
There are two ways to get there.
- Through your app
- Through Axle's signup flow
If you already collect address, consent and asset details yourself, call Axle’s onboarding API
directly.Example requestYour backend authenticates as described in Authentication.
Onboard site and asset
Register a site and battery, returns
site_id and asset_id.For events only mode you should use
vpp_limited_control in the dispatch_methods array.
If you want to allow full control of the battery, use full_asset_schedule_control instead.2. Telemetry
Send regular readings for each battery so we can optimise it and verify delivery. We rely mainly on two readings:- Battery state of charge —
battery_state_of_charge_pct(0–100) - Grid import/export at the site boundary —
boundary_import_kw
battery_inverter_import_kw) and solar generation (solar_power_kw), we’ll use them to improve
optimisation and determine event earnings.
Push readings to the readings endpoint, which lists every accepted label and its sign
convention.
Send telemetry
Push battery and boundary readings to Axle.
If pushing readings doesn’t suit your platform, we can also pull readings from custom endpoints
you provide — get in touch to discuss your setup.
3. Dispatch
During a grid event we send a dispatch instruction to a webhook URL you provide. Each instruction covers a single event and sets a target power for every affected asset over a fixed window. You supply the webhook URL when you set up your integration — get in touch to register it.power_kw uses the same sign convention as telemetry: positive = charge (import into the
battery), negative = discharge (export). Apply the target power to each asset for the window
between start_time and end_time.
Dispatch webhook
Full schema for the dispatch instruction we send to your webhook.
If you already have your own dispatch API, we can work with custom dispatch endpoints instead of
the webhook above — get in touch to discuss your setup.
Important points
- Customers should be able to override dispatch instructions at any time.
- The battery should return to its original mode of operation after the dispatch event has finished

