Voltus · AsyncAPI Specification
Voltus Webhooks
Version
View Spec
View on GitHub
EnergyUnited StatesElectricityDemand ResponseVirtual Power PlantDERGridEnergy MarketsFlexibilityEnergy StorageOpenADRTelemetryAsyncAPIEvents
AsyncAPI Specification
generated: '2026-07-27'
method: searched
source: https://api.voltus.co/docs/openapi/webhooks
docs:
- https://api.voltus.co/docs/openapi/webhooks
- https://github.com/voltusdev/voltus-api-examples/blob/main/webhooks/webhook-server.py
spec_type: none
asyncapi_published: false
description: >-
Voltus publishes no AsyncAPI document, but it does run a real webhook surface:
partners register an HTTPS callback and Voltus pushes dispatch notifications
instead of the partner polling GET /dispatches. Only two events exist. The
payload shape below is taken verbatim from Voltus's own first-party example
listener, and the registration/fixture shapes from the harvested OpenAPI and a
live sandbox call. Nothing here is inferred beyond what Voltus publishes.
transport: https
subscribe_direction: Voltus -> partner (HTTP POST to the registered url)
registration:
create: {operationId: 'voltus#post-webhook', method: POST, path: /2022-04-15/webhooks}
list: {operationId: 'voltus#get-webhooks', method: GET, path: /2022-04-15/webhooks}
delete: {operationId: 'voltus#delete-webhook', method: DELETE, path: '/2022-04-15/webhooks/{id}', note: 'Permanently deletes a webhook. It cannot be undone.'}
request_body:
url: URL that this webhook will send requests to
events: 'List of events that will be posted to this webhook. Currently only dispatch.create and dispatch.update are supported.'
events:
- name: dispatch.create
description: A new grid dispatch has been issued for one or more of your sites.
payload: {event: {name: dispatch.create}, resource: '<path of the dispatch resource>'}
consumer_action: >-
GET the `resource` path to retrieve the full dispatch, then signal the
listed sites to curtail to their `commitment` by `start_time`.
- name: dispatch.update
description: >-
An existing dispatch changed - start_time or end_time moved (earlier or
later), the dispatch was cancelled (authorized=false), or another field was
revised. modification_number increments on each update.
payload: {event: {name: dispatch.update}, resource: '<path of the dispatch resource>'}
consumer_action: >-
Re-fetch the dispatch. If end_time is in the past or authorized is false,
treat it as a cancellation and ramp the sites back up.
payload_contract:
fields:
event.name: The event name (dispatch.create or dispatch.update).
resource: >-
Relative path of the changed resource, to be joined onto the API base URL
and re-fetched with your API key. The event carries a pointer, not the
dispatch body.
handshake: >-
Voltus's example listener answers 200 "Hello webhook!" when both
event.name and resource are empty strings - a registration/liveness ping.
delivery:
guarantee: at-least-once
evidence: >-
Voltus's example handler warns, for both create and update, that the callback
"could get called twice if the first time you return a non-200 response".
ack: Respond 2xx. A non-2xx response causes redelivery.
retry_policy: not published
signing: none documented (no signature header, no shared secret in the create-webhook body)
ordering: not guaranteed; use dispatch id + modification_number to detect stale updates
alternatives:
polling: 'GET /2022-04-15/dispatches - the poll-based integration Voltus documents first'
openadr: >-
OpenADR 2.0a Simple HTTP PULL against the VTN
(https://openadr.voltus.co/vtn/YOUR_VEN_ID/OpenADR2/Simple/EiEvent), polled
on a recommended 1-minute cadence, acknowledged with oadrCreatedEvent. This
is the standards-based equivalent of the webhook/poll surface.
sandbox:
example: examples/voltus-get-webhooks-200.json
note: The public sandbox returns a fixture webhook registered for both events.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/voltus-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.