Voltus is a United States virtual power plant (VPP) operator and distributed energy resource (DER) technology platform, headquartered in San Francisco, California, that aggregates commercial, industrial, residential and transportation loads and batteries into wholesale electricity markets across all of North America's organized markets (AESO, CAISO, ERCOT, IESO, ISO-NE, MISO, NYISO, PJM, SPP). It sits in the demand-response and flexibility layer of the energy value chain: it is not a utility and not a metering data holder, so no Green Button, Consumer Data Right or smart-meter data mandate applies to it — mandate regime is honestly none. Its API posture is unusually good for the sector and unusually split. Voltus runs a genuine public developer portal at api.voltus.co/docs (Docusaurus, no login) with concepts, tutorials, an OpenAPI-generated reference and a changelog, plus a fully anonymous sandbox at sandbox.voltus.co that answers real HTTP requests with the documented public key "X-Voltus-API-Key: secret" — a developer can call it before signing anything. Production, however, is partner-only: api.voltus.co/2022-04-15 returns 401 Permission denied to the sandbox key, and real access requires a commercial partnership plus a signed Letter of Authorization per site. Site telemetry and dispatch control are exposed to partners over that account-scoped REST API and over OpenADR 2.0a Simple HTTP PULL with mutual TLS; Voltus publishes no open grid or market data of its own, so consumer/site energy data is available under contract while market data is closed. No downloadable OpenAPI or Swagger document is served — /openapi.json, /swagger.json and /openapi3.yaml all 404 — but the portal is built with the Docusaurus OpenAPI plugin, and the real operation objects (parameters, request bodies, response schemas, examples) were recovered verbatim from the published build and assembled into openapi/voltus-openapi.yml: 10 operations across 8 paths.
Voltus publishes 4 APIs on the APIs.io network, including Dispatches API, Sites API, Telemetry API, and 1 more. Tagged areas include Energy, United States, Electricity, Demand Response, and Virtual Power Plant.
The Voltus catalog on APIs.io includes 1 event-driven AsyncAPI specification.
Voltus’ developer surface includes authentication, documentation, API reference, getting-started guide, sandbox, changelog, support, and 33 more developer resources.
Regulatory Posture applies to this provider. Its tags matched the
Energy & Utilities regime, so
Regulatory Posture carries 15 points of the composite.
If this regime is wrong for your business, say so on your
provider repo — the
applicability map is public and we will correct it.
The six quality facets above are damped to 85 points between them,
because the conditional facet above carries the other
15. That is why each facet's contribution is shown against a damped
maximum: raising a quality facet moves the composite by 85% of its nominal
weight, not 100%. The full arithmetic is at apis.io/rating/.
Grid dispatch events for enrolled sites — list dispatches, retrieve a single dispatch by ID, and create a test dispatch. Documented operations are GET /dispatches ("Returns a li...
Read the sites (facilities) enrolled with Voltus under the calling account, with their meters. The single documented operation is GET /sites ("Returns a list of your sites."), r...
Submit and retrieve interval energy telemetry for enrolled sites. Documented operations are POST /telemetry, POST /telemetry/controllable-load ("Posts controllable load.") and G...
Register HTTP callbacks so Voltus can push dispatch notifications instead of the partner polling. Documented operations are GET /webhooks ("Returns a list of all webhooks that h...
Standards-based alternative to the REST dispatch integration. Voltus states it "supports OpenADR2.0a via Simple HTTP (PULL)" and that "Voltus provides a VTN, and our partners ru...
The core Voltus demand-response loop: resolve your enrolled sites, poll for dispatches, then read the individual dispatch to drive per-site curtailment commitments. Runs end-to-...
Move from polling to push: register an HTTPS callback for dispatch.create and dispatch.update, confirm it is listed, then remove it. Delete is permanent.
Submit interval telemetry and controllable load for an enrolled site, then read interval kW back within Voltus's documented limits (10 sites, 90 days, 10,000 points per site).
aid: voltus
url: https://raw.githubusercontent.com/api-evangelist/voltus/refs/heads/main/apis.yml
name: Voltus
kind: company
description: 'Voltus is a United States virtual power plant (VPP) operator and distributed energy resource (DER) technology
platform, headquartered in San Francisco, California, that aggregates commercial, industrial, residential and transportation
loads and batteries into wholesale electricity markets across all of North America''s organized markets (AESO, CAISO, ERCOT,
IESO, ISO-NE, MISO, NYISO, PJM, SPP). It sits in the demand-response and flexibility layer of the energy value chain: it
is not a utility and not a metering data holder, so no Green Button, Consumer Data Right or smart-meter data mandate applies
to it — mandate regime is honestly none. Its API posture is unusually good for the sector and unusually split. Voltus runs
a genuine public developer portal at api.voltus.co/docs (Docusaurus, no login) with concepts, tutorials, an OpenAPI-generated
reference and a changelog, plus a fully anonymous sandbox at sandbox.voltus.co that answers real HTTP requests with the
documented public key "X-Voltus-API-Key: secret" — a developer can call it before signing anything. Production, however,
is partner-only: api.voltus.co/2022-04-15 returns 401 Permission denied to the sandbox key, and real access requires a commercial
partnership plus a signed Letter of Authorization per site. Site telemetry and dispatch control are exposed to partners
over that account-scoped REST API and over OpenADR 2.0a Simple HTTP PULL with mutual TLS; Voltus publishes no open grid
or market data of its own, so consumer/site energy data is available under contract while market data is closed. No downloadable
OpenAPI or Swagger document is served — /openapi.json, /swagger.json and /openapi3.yaml all 404 — but the portal is built
with the Docusaurus OpenAPI plugin, and the real operation objects (parameters, request bodies, response schemas, examples)
were recovered verbatim from the published build and assembled into openapi/voltus-openapi.yml: 10 operations across 8 paths.'
image: https://api.voltus.co/img/voltus.png
tags:
- Energy
- United States
- Electricity
- Demand Response
- Virtual Power Plant
- DER
- Grid
- Energy Markets
- Flexibility
- Energy Storage
- OpenADR
- Telemetry
created: '2026-07-27'
modified: '2026-07-27'
specificationVersion: '0.19'
apis:
- aid: voltus:voltus-dispatches-api
name: Voltus Dispatches API
description: Grid dispatch events for enrolled sites — list dispatches, retrieve a single dispatch by ID, and create a test
dispatch. Documented operations are GET /dispatches ("Returns a list of dispatches."), POST /dispatches ("Creates a test
dispatch.") and GET /dispatches/{id} ("Retrieves the dispatch with the given ID."). Dispatch objects carry program, market
(e.g. MISO), program_type, start/end time, modification_number, optional metadata and per-site drop_by (deprecated) and
commitment values. Verified live against the public sandbox, with the full operation contracts harvested into openapi/voltus-openapi.yml.
humanURL: https://api.voltus.co/docs/openapi/dispatches
baseURL: https://api.voltus.co/2022-04-15
tags:
- Demand Response
- Dispatch
- Energy Markets
properties:
- type: APIReference
url: https://api.voltus.co/docs/openapi/dispatches
- type: Documentation
url: https://api.voltus.co/docs/concepts/demand_response
- type: Tutorials
url: https://api.voltus.co/docs/tutorials/create-a-dispatch-integration
- type: Tutorials
url: https://api.voltus.co/docs/tutorials/get-sandbox-dispatches
- type: Tutorials
url: https://api.voltus.co/docs/tutorials/test-your-dispatch-integration
- type: Sandbox
url: https://api.voltus.co/docs/concepts/public-credentials
- type: Authentication
url: https://api.voltus.co/docs/openapi/voltus-api-reference
- type: ChangeLog
url: https://api.voltus.co/docs/changelog
- type: OpenAPI
url: openapi/voltus-openapi.yml
- type: Examples
url: examples/voltus-get-dispatches-200.json
- type: Arazzo
name: Poll dispatches and curtail enrolled sites
url: arazzo/voltus-poll-dispatches-and-curtail.yml
- type: AgentSkill
name: Receive and act on Voltus grid dispatches
url: skills/voltus-dispatch-integration.md
- aid: voltus:voltus-sites-api
name: Voltus Sites API
description: Read the sites (facilities) enrolled with Voltus under the calling account, with their meters. The single documented
operation is GET /sites ("Returns a list of your sites."), returning site name, id and customer_location_id, with an asset_type
field on each meter object added 2026-07-01. Verified live against the public sandbox.
humanURL: https://api.voltus.co/docs/openapi/sites
baseURL: https://api.voltus.co/2022-04-15
tags:
- Sites
- Metering
- DER
properties:
- type: APIReference
url: https://api.voltus.co/docs/openapi/sites
- type: Tutorials
url: https://api.voltus.co/docs/tutorials/first-api-request-get-sites
- type: Sandbox
url: https://api.voltus.co/docs/concepts/public-credentials
- type: ChangeLog
url: https://api.voltus.co/docs/changelog/meter-asset-type
- type: OpenAPI
url: openapi/voltus-openapi.yml
- type: Examples
url: examples/voltus-get-sites-200.json
- type: DataModel
url: data-model/voltus-data-model.yml
- aid: voltus:voltus-telemetry-api
name: Voltus Telemetry API
description: Submit and retrieve interval energy telemetry for enrolled sites. Documented operations are POST /telemetry,
POST /telemetry/controllable-load ("Posts controllable load.") and GET /telemetry/kw ("Returns a list of telemetry readings
for one or more sites. The maximum number of sites per request is 10. The maximum request interval is 90 days, with a
limit of 10,000 total data points per site."). This is the site-level customer energy-usage surface — account-scoped to
the API key holder, not a Green Button or Consumer Data Right style consented third-party feed.
humanURL: https://api.voltus.co/docs/openapi/telemetry
baseURL: https://api.voltus.co/2022-04-15
tags:
- Telemetry
- Metering
- Electricity
- Flexibility
properties:
- type: APIReference
url: https://api.voltus.co/docs/openapi/telemetry
- type: Tutorials
url: https://api.voltus.co/docs/tutorials/get-telemetry
- type: Tutorials
url: https://api.voltus.co/docs/tutorials/send-telemetry
- type: Sandbox
url: https://api.voltus.co/docs/concepts/public-credentials
- type: ChangeLog
url: https://api.voltus.co/docs/changelog/telemetry-controllable-load
- type: OpenAPI
url: openapi/voltus-openapi.yml
- type: RateLimits
url: rate-limits/voltus-rate-limits.yml
- type: Arazzo
name: Report telemetry and read it back
url: arazzo/voltus-report-and-read-telemetry.yml
- type: AgentSkill
name: Report and read Voltus site telemetry
url: skills/voltus-telemetry-reporting.md
- aid: voltus:voltus-webhooks-api
name: Voltus Webhooks API
description: Register HTTP callbacks so Voltus can push dispatch notifications instead of the partner polling. Documented
operations are GET /webhooks ("Returns a list of all webhooks that have been created."), POST /webhooks and DELETE /webhooks/{id}
("Permanently deletes a webhook. It cannot be undone.").
humanURL: https://api.voltus.co/docs/openapi/webhooks
baseURL: https://api.voltus.co/2022-04-15
tags:
- Webhooks
- Dispatch
- Notifications
properties:
- type: APIReference
url: https://api.voltus.co/docs/openapi/webhooks
- type: Webhooks
url: https://api.voltus.co/docs/openapi/webhooks
- type: Documentation
url: https://api.voltus.co/docs/tutorials/create-a-dispatch-integration
- type: OpenAPI
url: openapi/voltus-openapi.yml
- type: Webhooks
url: asyncapi/voltus-webhooks.yml
- type: Examples
url: examples/voltus-dispatch-webhook-payload.json
- type: Arazzo
name: Register a dispatch webhook and verify it
url: arazzo/voltus-register-webhook-and-verify.yml
- type: AgentSkill
name: Register a Voltus webhook and handle dispatch callbacks
url: skills/voltus-webhook-dispatch-listener.md
- aid: voltus:voltus-openadr-vtn
name: Voltus OpenADR 2.0a VTN
description: Standards-based alternative to the REST dispatch integration. Voltus states it "supports OpenADR2.0a via Simple
HTTP (PULL)" and that "Voltus provides a VTN, and our partners run one or more VENs". Partners poll https://openadr.voltus.co/vtn/YOUR_VEN_ID/OpenADR2/Simple/EiEvent
(recommended once per minute) and reply with an oadrCreatedEvent acknowledgement. Authentication is mutual TLS — the partner
submits a Certificate Signing Request to Voltus and presents the returned client certificate. The host is not anonymously
reachable (connection refused on a bare HTTPS GET), which is consistent with an mTLS-only endpoint.
humanURL: https://api.voltus.co/docs/concepts/openadr
baseURL: https://openadr.voltus.co
tags:
- OpenADR
- Demand Response
- Standards
- Dispatch
properties:
- type: Documentation
url: https://api.voltus.co/docs/concepts/openadr
- type: Tutorials
url: https://api.voltus.co/docs/tutorials/openadr
- type: ChangeLog
url: https://api.voltus.co/docs/changelog/sandbox-openadr-support
- type: Authentication
url: authentication/voltus-authentication.yml
- type: Conformance
url: conformance/voltus-conformance.yml
common:
- type: MCPServer
url: mcp/voltus-mcp.yml
- type: AgenticAccess
url: agentic-access/voltus-agentic-access.yml
- type: DomainSecurity
url: security/voltus-domain-security.yml
- type: Authentication
url: authentication/voltus-authentication.yml
- type: Website
url: https://www.voltus.co/
- type: DeveloperPortal
url: https://api.voltus.co/docs/
- type: Documentation
url: https://api.voltus.co/docs/
- type: APIReference
url: https://api.voltus.co/docs/openapi/voltus-api-reference
- type: GettingStarted
url: https://api.voltus.co/docs/tutorials/first-api-request-get-sites
- type: Tutorials
url: https://api.voltus.co/docs/tutorials/
- type: Sandbox
url: https://api.voltus.co/docs/concepts/public-credentials
- type: Authentication
url: https://api.voltus.co/docs/openapi/voltus-api-reference
- type: ChangeLog
url: https://api.voltus.co/docs/changelog
- type: Support
url: mailto:api-support@voltus.co
- type: Blog
url: https://www.voltus.co/blog
- type: TermsOfService
url: https://www.voltus.co/legal/terms-of-service
- type: PrivacyPolicy
url: https://www.voltus.co/legal/privacy-policy
- type: GitHubOrganization
url: https://github.com/voltus
- type: LinkedIn
url: https://www.linkedin.com/company/voltus-inc./
- type: OpenAPI
url: openapi/voltus-openapi.yml
name: Voltus API (harvested from the developer portal build)
- type: Overlay
url: overlays/voltus-openapi-overlay.yaml
- type: Examples
url: examples/voltus-examples.yml
- type: Conventions
url: conventions/voltus-conventions.yml
- type: ErrorCatalog
url: errors/voltus-problem-types.yml
- type: RateLimits
url: rate-limits/voltus-rate-limits.yml
- type: Sandbox
url: sandbox/voltus-sandbox.yml
name: Sandbox and test-data profile
- type: Lifecycle
url: lifecycle/voltus-lifecycle.yml
- type: Deprecation
url: https://api.voltus.co/docs/changelog/deprecated-field-drop-by
name: Published deprecation notice (drop_by superseded by commitment)
- type: ChangeLog
url: changelog/voltus-changelog.yml
name: Structured changelog
- type: Conformance
url: conformance/voltus-conformance.yml
- type: Webhooks
url: asyncapi/voltus-webhooks.yml
- type: DataModel
url: data-model/voltus-data-model.yml
- type: Packages
url: packages/voltus-packages.yml
- type: LLMsTxt
url: llms/voltus-llms.txt
- type: AgentSkill
url: skills/_index.yml
name: Voltus agent skills
- type: Arazzo
url: arazzo/_index.yml
name: Voltus workflow catalog
- type: SourceCode
url: https://github.com/voltusdev/voltus-api-examples
name: Voltus API examples (Python)
- type: GitHubOrganization
url: https://github.com/voltusdev
- type: Login
url: https://cashdash.voltus.co/
name: Cash Dash customer portal
- type: Twitter
url: https://twitter.com/voltusinc
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com