> ## Documentation Index
> Fetch the complete documentation index at: https://doc.heat-solutions.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get all sites

> Get all available sites with some information on status included.



## OpenAPI

````yaml /cloud-api/openapi.json get /api/v1/public/sites
openapi: 3.0.3
info:
  title: H.E.A.T. Cloud API
  version: 1.0.0
servers:
  - url: https://cloud.heat-solutions.com
security:
  - bearerAuth: []
paths:
  /api/v1/public/sites:
    get:
      tags:
        - Sites
      summary: Get all sites
      description: Get all available sites with some information on status included.
      operationId: listSites
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                  - sites
                properties:
                  sites:
                    type: array
                    items:
                      $ref: '#/components/schemas/Site'
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
components:
  schemas:
    Site:
      additionalProperties: false
      example:
        siteId: 123e4567-e89b-12d3-a456-426614174000
        siteName: Site 1
        isOnline: true
        reportedAt: '2025-06-01T08:00:00Z'
        schedules:
          - asset: grid
            type: upperLimitkW
            entries:
              - startAt: '2026-06-01T08:00:00Z'
                endAt: '2026-06-01T10:00:00Z'
                value: 50
          - asset: grid
            type: lowerLimitkW
            entries:
              - startAt: '2026-06-01T08:00:00Z'
                endAt: '2026-06-01T10:00:00Z'
                value: -20
          - asset: grid
            type: activePowerkW
            entries:
              - startAt: '2026-06-01T10:00:00Z'
                endAt: '2026-06-01T12:00:00Z'
                value: 30
          - asset: bess
            type: activePowerkW
            entries:
              - startAt: '2026-06-01T08:00:00Z'
                endAt: '2026-06-01T10:00:00Z'
                value: -50
          - asset: bess
            type: optimalSocPcnt
            entries:
              - startAt: '2026-06-01T10:00:00Z'
                endAt: '2026-06-01T12:00:00Z'
                value: 80
          - asset: solar
            type: solarCurtailmentPcnt
            entries:
              - startAt: '2026-06-01T08:00:00Z'
                endAt: '2026-06-01T12:00:00Z'
                value: 10
      type: object
      required:
        - siteId
        - siteName
        - isOnline
        - schedules
        - reportedAt
      properties:
        siteId:
          format: uuid
          description: Unique site identifier in UUID format
          type: string
        siteName:
          description: Human-readable name of the site
          type: string
        isOnline:
          description: Connectivity status
          type: boolean
        schedules:
          description: List of schedules currently active on site
          type: array
          items:
            $ref: '#/components/schemas/AssetScheduleCommand'
        reportedAt:
          type: string
          nullable: true
          format: date-time
          description: >-
            Timestamp of the last healthcheck received from the controller, or
            null if it has never reported
    ServerError:
      additionalProperties: false
      example:
        error: internal_server_error
        message: An unexpected error occurred
      type: object
      required:
        - error
      properties:
        error:
          type: string
        message:
          type: string
    AssetScheduleCommand:
      additionalProperties: false
      example:
        asset: grid
        type: upperLimitkW
        entries:
          - startAt: '2026-06-01T08:00:00Z'
            endAt: '2026-06-01T10:00:00Z'
            value: 50
      type: object
      required:
        - asset
        - type
        - entries
      properties:
        asset:
          type: string
          enum:
            - load
            - heatpump
            - genset
            - ev
            - grid
            - solar
            - bess
            - wind
          description: Type of asset group
        type:
          type: string
          enum:
            - upperLimitkW
            - lowerLimitkW
            - activePowerkW
            - optimalSocPcnt
            - solarCurtailmentPcnt
          description: >-
            Schedule command type. `upperLimitkW` and `lowerLimitkW` are signed:
            positive = import, negative = export. For BESS assets,
            `activePowerkW` and `optimalSocPcnt` are mutually exclusive.
        entries:
          description: Ordered list of time-range entries for this asset/type pair
          type: array
          items:
            $ref: '#/components/schemas/ScheduleEntry'
    ScheduleEntry:
      additionalProperties: false
      type: object
      required:
        - startAt
        - endAt
        - value
      properties:
        startAt:
          format: date-time
          description: Entry start time in ISO 8601 format
          type: string
        endAt:
          format: date-time
          description: Entry end time in ISO 8601 format
          type: string
        value:
          description: Numeric value; unit and sign depend on asset and schedule type
          type: number
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````