Voltus Sites API

The Sites API from Voltus — 1 operation(s) for sites.

Operations 1

GET /2022-04-15/sites #

Documentation

Specifications

Other Resources

🔗
Tutorials
https://api.voltus.co/docs/tutorials/create-a-dispatch-integration
🔗
Tutorials
https://api.voltus.co/docs/tutorials/get-sandbox-dispatches
🔗
Tutorials
https://api.voltus.co/docs/tutorials/test-your-dispatch-integration
🔗
Sandbox
https://api.voltus.co/docs/concepts/public-credentials
🔗
ChangeLog
https://api.voltus.co/docs/changelog
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/voltus/refs/heads/main/examples/voltus-get-dispatches-200.json
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/voltus/refs/heads/main/arazzo/voltus-poll-dispatches-and-curtail.yml
🔗
Tutorials
https://api.voltus.co/docs/tutorials/first-api-request-get-sites
🔗
ChangeLog
https://api.voltus.co/docs/changelog/meter-asset-type
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/voltus/refs/heads/main/examples/voltus-get-sites-200.json
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/voltus/refs/heads/main/data-model/voltus-data-model.yml
🔗
Tutorials
https://api.voltus.co/docs/tutorials/get-telemetry
🔗
Tutorials
https://api.voltus.co/docs/tutorials/send-telemetry
🔗
ChangeLog
https://api.voltus.co/docs/changelog/telemetry-controllable-load
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/voltus/refs/heads/main/arazzo/voltus-report-and-read-telemetry.yml
🔗
Webhooks
https://api.voltus.co/docs/openapi/webhooks
🔗
Webhooks
https://raw.githubusercontent.com/api-evangelist/voltus/refs/heads/main/asyncapi/voltus-webhooks.yml
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/voltus/refs/heads/main/examples/voltus-dispatch-webhook-payload.json
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/voltus/refs/heads/main/arazzo/voltus-register-webhook-and-verify.yml

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/voltus-sites-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

voltus-sites-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Voltus API Reference Sites API
  description: "Welcome to the Voltus API Reference.\n\nThe live production API hostname is `api.voltus.co`.\n\n## Versioning\n\nWe use date-based versioning. `api.voltus.co` will always redirect to the latest version.\n\n**Current version: api.voltus.co/2022-04-15**\n\n<details>\n  <summary>Changelog</summary>\n\n- Renamed \"Facilities\" to \"Sites\n- Entity IDs are now strings instead of ints\n- New Authorization header `X-Voltus-API-Key`\n- Removed support for `Authorization: Bearer` header\n</details>\n\n### Previous versions:\n\n- api.voltus.co/2020-12-30\n\n## Authentication\n\nThe API uses [API key authentication](https://swagger.io/docs/specification/authentication/api-keys/). API keys are provided by your account manager. Each request must include an `X-Voltus-API-Key` header where the value is your API key. Code examples for each endpoint will demonstrate how this header can be added in various languages.\n\n## Errors\n\nExample error responses\n\n```json\n{\n  \"message\": \"A create webhook request must contain an 'events' field\",\n  \"type\": \"Bad Request\"\n}\n\n{\n  \"message\": \"Permission denied\",\n  \"type\": \"Unauthorized\"\n}\n```\n\nVoltus uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the `2xx` range indicate success. Codes in the `4xx` range indicate an error that failed given the information provided (e.g., a required parameter was omitted, an api key has been revoked, etc.). Codes in the `5xx` range indicate an error with Voltus's servers (these are rare).\n\n### Attributes\n\n- `message` (string) A human-readable message providing more details about the error.\n\n- `type` (string) The error type. These types will always match the name of the name of the http status code that is used in the response. One of `Unauthorized`, `Bad Request`, `Content Too Large`, `Internal Server Error`, `Too Many Requests` or `Not Found`."
  version: '2022-04-15'
servers:
- url: https://api.voltus.co
security:
- X-Voltus-API-Key: []
tags:
- name: Sites
paths:
  /2022-04-15/sites:
    get:
      tags:
      - Sites
      description: 'Returns a list of your sites.


        The sites endpoint is important because a given API key will only get dispatch notifications that include sites visible to the account. You should make sure that all expected sites are returned by this endpoint.


        Sites include `id` and `customer_location_id` fields that can be used to identify sites in a dispatch communication. A site''s `name` value may change, and should not be used as a static identifier.


        All sites will be returned in a single request. The values of `page` and `per_page` have been reserved for future use, but should be ignored at present.'
      operationId: voltus#get-sites
      parameters:
      - name: X-Voltus-API-Key
        in: header
        description: API key used to perform authorization
        allowEmptyValue: true
        required: true
        schema:
          type: string
          description: API key used to perform authorization
          example: API_KEY
        example: API_KEY
      responses:
        '200':
          description: OK response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  page:
                    type: integer
                    description: Page number. Reserved for future use, should ignore for now.
                    example: 1
                    format: int64
                  perPage:
                    type: integer
                    description: Number of items per page. Reserved for future use, should ignore for now.
                    example: 50
                    format: int64
                  sites:
                    type: array
                    items:
                      type: object
                      properties:
                        customer_location_id:
                          type: string
                          description: An identifier for this site provided by a customer. This can be any identifier supplied by the site owner, such as a store number.
                          example: site101
                        id:
                          type: string
                          description: Primary key of the site
                          example: xv1w4
                        meters:
                          type: array
                          items:
                            type: object
                            properties:
                              asset_type:
                                type: string
                                description: Type of asset associated with this meter (e.g. load, battery, generator, poi)
                                example: load
                              id:
                                type: string
                                description: Primary key of the meter
                                example: wpv31
                              name:
                                type: string
                                description: Name of the meter
                                example: Primary Meter
                            example:
                              asset_type: load
                              id: wpv31
                              name: Primary Meter
                            required:
                            - id
                            - name
                            - asset_type
                            title: Meter
                          description: Meters associated with this site
                          example:
                          - asset_type: load
                            id: wpv31
                            name: Primary Meter
                          - asset_type: load
                            id: wpv31
                            name: Primary Meter
                          - asset_type: load
                            id: wpv31
                            name: Primary Meter
                        name:
                          type: string
                          description: Name of the site
                          example: A cool site
                      example:
                        customer_location_id: site101
                        id: xv1w4
                        meters:
                        - asset_type: load
                          id: wpv31
                          name: Primary Meter
                        - asset_type: load
                          id: wpv31
                          name: Primary Meter
                        name: A cool site
                      required:
                      - name
                      - id
                      - customer_location_id
                      title: Site
                    example:
                    - customer_location_id: site101
                      id: xv1w4
                      meters:
                      - asset_type: load
                        id: wpv31
                        name: Primary Meter
                      - asset_type: load
                        id: wpv31
                        name: Primary Meter
                      - asset_type: load
                        id: wpv31
                        name: Primary Meter
                      - asset_type: load
                        id: wpv31
                        name: Primary Meter
                      name: A cool site
                    - customer_location_id: site101
                      id: xv1w4
                      meters:
                      - asset_type: load
                        id: wpv31
                        name: Primary Meter
                      - asset_type: load
                        id: wpv31
                        name: Primary Meter
                      - asset_type: load
                        id: wpv31
                        name: Primary Meter
                      - asset_type: load
                        id: wpv31
                        name: Primary Meter
                      name: A cool site
                example:
                  page: 0
                  perPage: 0
                  sites:
                  - customer_location_id: site101
                    id: xv1w4
                    meters:
                    - asset_type: load
                      id: wpv31
                      name: Primary Meter
                    - asset_type: generator
                      id: yvve
                      name: Generator
                    name: A cool site
                  - customer_location_id: site102
                    id: yd4g
                    meters:
                    - asset_type: poi
                      id: njj1
                      name: The best meter
                    name: The coolest site
                  - customer_location_id: ''
                    id: 40wl
                    meters: []
                    name: Just an ok site
                  - customer_location_id: ''
                    id: 6rnp
                    meters:
                    - asset_type: poi
                      id: 2j3y
                      name: The sites meter name
                    name: A decent site
                required:
                - sites
                - page
                - perPage
                title: GetSitesResponseBody
              example:
                page: 0
                perPage: 0
                sites:
                - customer_location_id: site101
                  id: xv1w4
                  meters:
                  - asset_type: load
                    id: wpv31
                    name: Primary Meter
                  - asset_type: generator
                    id: yvve
                    name: Generator
                  name: A cool site
                - customer_location_id: site102
                  id: yd4g
                  meters:
                  - asset_type: poi
                    id: njj1
                    name: The best meter
                  name: The coolest site
                - customer_location_id: ''
                  id: 40wl
                  meters: []
                  name: Just an ok site
                - customer_location_id: ''
                  id: 6rnp
                  meters:
                  - asset_type: poi
                    id: 2j3y
                    name: The sites meter name
                  name: A decent site
        '400':
          description: 'Bad Request: Bad Request response.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: A human-readable message providing more details about the error.
                    example: Do not pass go, do not collect $100.
                  type:
                    type: string
                    description: The error type. One of `Unauthorized`, `Bad Request`, `Content Too Large`, `Internal Server Error`, `Too Many Requests` or `Not Found`.
                    example: Too Many Requests
                example:
                  message: Do not pass go, do not collect $100.
                  type: Too Many Requests
                required:
                - message
                - type
                title: Error
              example:
                message: Do not pass go, do not collect $100.
                type: Too Many Requests
        '403':
          description: 'Unauthorized: Forbidden response.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: A human-readable message providing more details about the error.
                    example: Do not pass go, do not collect $100.
                  type:
                    type: string
                    description: The error type. One of `Unauthorized`, `Bad Request`, `Content Too Large`, `Internal Server Error`, `Too Many Requests` or `Not Found`.
                    example: Too Many Requests
                example:
                  message: Do not pass go, do not collect $100.
                  type: Too Many Requests
                required:
                - message
                - type
                title: Error
              example:
                message: Do not pass go, do not collect $100.
                type: Too Many Requests
        '404':
          description: 'Not Found: Not Found response.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: A human-readable message providing more details about the error.
                    example: Do not pass go, do not collect $100.
                  type:
                    type: string
                    description: The error type. One of `Unauthorized`, `Bad Request`, `Content Too Large`, `Internal Server Error`, `Too Many Requests` or `Not Found`.
                    example: Too Many Requests
                example:
                  message: Do not pass go, do not collect $100.
                  type: Too Many Requests
                required:
                - message
                - type
                title: Error
              example:
                message: Do not pass go, do not collect $100.
                type: Too Many Requests
        '413':
          description: 'Content Too Large: Request Entity Too Large response.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: A human-readable message providing more details about the error.
                    example: Do not pass go, do not collect $100.
                  type:
                    type: string
                    description: The error type. One of `Unauthorized`, `Bad Request`, `Content Too Large`, `Internal Server Error`, `Too Many Requests` or `Not Found`.
                    example: Too Many Requests
                example:
                  message: Do not pass go, do not collect $100.
                  type: Too Many Requests
                required:
                - message
                - type
                title: Error
              example:
                message: Do not pass go, do not collect $100.
                type: Too Many Requests
        '429':
          description: 'Too Many Requests: Too Many Requests response.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: A human-readable message providing more details about the error.
                    example: Do not pass go, do not collect $100.
                  type:
                    type: string
                    description: The error type. One of `Unauthorized`, `Bad Request`, `Content Too Large`, `Internal Server Error`, `Too Many Requests` or `Not Found`.
                    example: Too Many Requests
                example:
                  message: Do not pass go, do not collect $100.
                  type: Too Many Requests
                required:
                - message
                - type
                title: Error
              example:
                message: Do not pass go, do not collect $100.
                type: Too Many Requests
        '500':
          description: 'Internal Server Error: Internal Server Error response.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: A human-readable message providing more details about the error.
                    example: Do not pass go, do not collect $100.
                  type:
                    type: string
                    description: The error type. One of `Unauthorized`, `Bad Request`, `Content Too Large`, `Internal Server Error`, `Too Many Requests` or `Not Found`.
                    example: Too Many Requests
                example:
                  message: Do not pass go, do not collect $100.
                  type: Too Many Requests
                required:
                - message
                - type
                title: Error
              example:
                message: Do not pass go, do not collect $100.
                type: Too Many Requests
      security:
      - X-Voltus-API-Key: []
components:
  securitySchemes:
    X-Voltus-API-Key:
      type: apiKey
      name: X-Voltus-API-Key
      in: header