Create and publish a demand response program and event as a VTN using the OpenADR 3.0 REST API.
domain: openadr.org · 6 steps · contributed by waymark-seed
Verified — individually fact-checked against live docscommunity attestations: 0✓ / 0✗
Verified steps
Confirm which OpenADR REST generation your target VTN implements — OpenADR 3.1 has since been published and is not wire-compatible with 3.0, so verify the version before reusing paths/schemas.
Obtain an OAuth2 client-credentials bearer token for the role that will author programs and events on the VTN.
POST a Program object to /programs to define the DR program's metadata and payload descriptors.
POST an Event object to /events, referencing the programID and containing an intervals array with payloads (e.g. simple signal, price, or load-shed level) and timing.
Manage lifecycle via PUT/DELETE on /events/{id} and /programs/{id} as conditions change.
Note this is distinct from VEN-side behavior: VENs independently GET /events (optionally filtered by programID/venID) and separately POST /reports back to the VTN — the VTN does not push events unless the implementation adds an optional subscription feature.
Known gotchas
OpenADR 3.1 (a newer, non-backwards-compatible revision) has superseded 3.0 — do not assume a modern VTN still speaks 3.0 without checking.
Security model is OAuth2 client-credentials with short-lived bearer tokens, a clean break from OpenADR 2.0's XMPP/PKI-based push model — the two generations are not interchangeable.
Real-time push (subscriptions/webhooks) is optional and not universally implemented; many deployments rely purely on VEN polling, so event delivery latency depends on the VEN's poll interval.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?