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: 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