> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nomos.energy/llms.txt
> Use this file to discover all available pages before exploring further.

# Send asset snapshots

> Send the live power and state of one household's assets, up to 10,000 snapshots per request. The request is stored as a whole or not at all: any invalid snapshot rejects it, with every problem listed in `errors` by its path.



## OpenAPI

````yaml /openapi/openapi.gauss.json post /asset-snapshots
openapi: 3.0.0
info:
  title: Nomos API
  version: 2026-09-08.gauss
servers:
  - url: https://api.nomos.energy
    description: production
security: []
tags:
  - name: Plans
  - name: Leads
  - name: Subscriptions
  - name: Customers
  - name: Households
  - name: Assets
  - name: Usage
  - name: Prices
  - name: Invoices
  - name: Smart Meter Orders
  - name: Grid Fee Reductions
  - name: Market Partners
  - name: Events
  - name: Authentication
paths:
  /asset-snapshots:
    post:
      tags:
        - Assets
      summary: Send asset snapshots
      description: >-
        Send the live power and state of one household's assets, up to 10,000
        snapshots per request. The request is stored as a whole or not at all:
        any invalid snapshot rejects it, with every problem listed in `errors`
        by its path.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAssetSnapshots'
      responses:
        '200':
          description: The snapshots were stored
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetSnapshotBatch'
        '400':
          description: >-
            The server cannot or will not process the request due to something
            that is perceived to be a client error (e.g., malformed request
            syntax, invalid request message framing, or deceptive request
            routing).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrBadRequest'
              examples:
                Malformed JSON:
                  summary: Malformed JSON
                  value:
                    code: BAD_REQUEST
                    message: Malformed JSON in request body
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                More than 10,000 snapshots:
                  summary: More than 10,000 snapshots
                  value:
                    code: BAD_REQUEST
                    message: 'Too big: expected array to have <=10000 items'
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: too_big
                        field: snapshots
                        message: 'Too big: expected array to have <=10000 items'
                Missing required field:
                  summary: Missing required field
                  value:
                    code: BAD_REQUEST
                    message: 'Invalid input: expected boolean, received undefined'
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: invalid_type
                        field: snapshots.1.is_online
                        message: 'Invalid input: expected boolean, received undefined'
                Unknown field in a snapshot:
                  summary: Unknown field in a snapshot
                  value:
                    code: BAD_REQUEST
                    message: 'Unrecognized key: "state_of_charge"'
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: unrecognized_keys
                        field: snapshots.0
                        message: 'Unrecognized key: "state_of_charge"'
                Timestamp in the future:
                  summary: Timestamp in the future
                  value:
                    code: BAD_REQUEST
                    message: timestamp 2026-10-06T12:00:00.000Z is in the future.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: too_big
                        field: snapshots.0.timestamp
                        message: timestamp 2026-10-06T12:00:00.000Z is in the future.
                Power in a direction the asset can't have:
                  summary: Power in a direction the asset can't have
                  value:
                    code: BAD_REQUEST
                    message: nothing flows into a solar
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: invalid_direction
                        field: snapshots.1.power_kw
                        message: nothing flows into a solar
                Steerable battery without charge level:
                  summary: Steerable battery without charge level
                  value:
                    code: BAD_REQUEST
                    message: a steerable battery snapshot needs soc
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: invalid_type
                        field: snapshots.0.soc
                        message: a steerable battery snapshot needs soc
                Power above the asset's rating:
                  summary: Power above the asset's rating
                  value:
                    code: BAD_REQUEST
                    message: >-
                      power_kw -1000 is more than 1.5 times the solar's
                      peak_power_kwp of 10
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: too_big
                        field: snapshots.0.power_kw
                        message: >-
                          power_kw -1000 is more than 1.5 times the solar's
                          peak_power_kwp of 10
                One asset, one timestamp, two values:
                  summary: One asset, one timestamp, two values
                  value:
                    code: BAD_REQUEST
                    message: >-
                      Asset ha_b7q2m1k8v4n0x3c9l5p2r7td has another snapshot at
                      2026-10-06T10:14:50.000Z with different values.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: duplicate_timestamp
                        field: snapshots.2.timestamp
                        message: >-
                          Asset ha_b7q2m1k8v4n0x3c9l5p2r7td has another snapshot
                          at 2026-10-06T10:14:50.000Z with different values.
                Field the asset type doesn't take:
                  summary: Field the asset type doesn't take
                  value:
                    code: BAD_REQUEST
                    message: a solar snapshot has no soc
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: field_not_allowed
                        field: snapshots.0.soc
                        message: a solar snapshot has no soc
                Assets of two households:
                  summary: Assets of two households
                  value:
                    code: BAD_REQUEST
                    message: >-
                      Asset ha_b7q2m1k8v4n0x3c9l5p2r7td belongs to household
                      dom_p2r7td4k8m1x6c3v9b0n5q2w, the request's first asset to
                      dom_k3v9x2m7n1b4v8c2x6z0q5wd. Send each household in its
                      own request.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: mixed_households
                        field: snapshots.1.asset
                        message: >-
                          Asset ha_b7q2m1k8v4n0x3c9l5p2r7td belongs to household
                          dom_p2r7td4k8m1x6c3v9b0n5q2w, the request's first
                          asset to dom_k3v9x2m7n1b4v8c2x6z0q5wd. Send each
                          household in its own request.
                Unsupported version header:
                  summary: Unsupported version header
                  value:
                    code: BAD_REQUEST
                    message: Version header 2026-01-01.foo is invalid.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
        '401':
          description: The client must authenticate itself to get the requested response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrUnauthorized'
              examples:
                No token:
                  summary: No token
                  value:
                    code: UNAUTHORIZED
                    message: No authorization header provided.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/UNAUTHORIZED
                Expired token:
                  summary: Expired token
                  value:
                    code: UNAUTHORIZED
                    message: Token expired
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/UNAUTHORIZED
                Invalid token:
                  summary: Invalid token
                  value:
                    code: UNAUTHORIZED
                    message: Invalid or malformed token
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/UNAUTHORIZED
        '403':
          description: >-
            The client does not have the necessary permissions to access the
            resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrForbidden'
              examples:
                Token without scope:
                  summary: Token without scope
                  value:
                    code: FORBIDDEN
                    message: 'Insufficient scope: write:* required.'
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: https://docs.nomos.energy/api-references/errors/FORBIDDEN
                Role without access:
                  summary: Role without access
                  value:
                    code: FORBIDDEN
                    message: Forbidden to access this route.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: https://docs.nomos.energy/api-references/errors/FORBIDDEN
        '404':
          description: The server can't find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrNotFound'
              examples:
                Unknown asset:
                  summary: Unknown asset
                  value:
                    code: NOT_FOUND
                    message: Asset ha_b7q2m1k8v4n0x3c9l5p2r7td not found.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: https://docs.nomos.energy/api-references/errors/NOT_FOUND
                    errors:
                      - code: asset_not_found
                        field: snapshots.0.asset
                        message: Asset ha_b7q2m1k8v4n0x3c9l5p2r7td not found.
        '409':
          description: >-
            The request could not be completed due to a conflict mainly due to
            unique constraints.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrConflict'
              examples:
                Asset decommissioned before the snapshot:
                  summary: Asset decommissioned before the snapshot
                  value:
                    code: CONFLICT
                    message: >-
                      Asset ha_b7q2m1k8v4n0x3c9l5p2r7td was decommissioned
                      before 2026-10-06T10:14:50.000Z.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: https://docs.nomos.energy/api-references/errors/CONFLICT
                    errors:
                      - code: asset_decommissioned
                        field: snapshots.0.timestamp
                        message: >-
                          Asset ha_b7q2m1k8v4n0x3c9l5p2r7td was decommissioned
                          before 2026-10-06T10:14:50.000Z.
        '500':
          description: >-
            The server has encountered a situation it doesn't know how to
            handle.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrInternalServerError'
              examples:
                Unexpected error:
                  summary: Unexpected error
                  value:
                    code: INTERNAL_SERVER_ERROR
                    message: Internal Server Error
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/INTERNAL_SERVER_ERROR
      security:
        - Bearer: []
components:
  schemas:
    CreateAssetSnapshots:
      type: object
      properties:
        snapshots:
          type: array
          items:
            $ref: '#/components/schemas/AssetSnapshotInput'
          minItems: 1
          maxItems: 10000
          description: 1 to 10,000 snapshots of one household's assets.
      required:
        - snapshots
    AssetSnapshotBatch:
      type: object
      properties:
        object:
          type: string
          enum:
            - asset_snapshot_batch
        accepted:
          type: integer
          description: How many snapshots were stored.
          example: 5
      required:
        - object
        - accepted
    ErrBadRequest:
      type: object
      properties:
        code:
          type: string
          enum:
            - BAD_REQUEST
          description: The error code related to the status code.
          example: BAD_REQUEST
        message:
          type: string
          description: A human readable message describing the issue.
          example: 'invalid_type in ''end'': Required'
        requestId:
          type: string
          description: The request id to be used for debugging and error reporting.
          example: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs:
          type: string
          description: The docs related to the error code.
          example: https://docs.nomos.energy/api-references/errors/BAD_REQUEST
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - invalid_type
                  - too_big
                  - too_small
                  - invalid_format
                  - not_multiple_of
                  - unrecognized_keys
                  - invalid_union
                  - invalid_key
                  - invalid_element
                  - invalid_value
                  - custom
                  - unserviceable_zip
                  - ended_subscription
                  - duplicate_grid_reduction
                  - missing_smart_meter
                  - missing_module_1
                  - unsupported_product
                  - unsupported_meter_order
                  - duplicate_meter_order
                  - unsupported_meter
                  - out_of_period_meter_reading
                  - unsupported_meter_reading
                  - duplicate_meter_reading
                  - implausible_meter_reading
                  - duplicate_customer_email
                  - invalid_iban
                  - upgrade_api_version
                  - withdrawal_not_allowed
                  - invalid_termination_date
                  - subscription_not_started
                  - missing_household
                  - invalid_household_customer
                  - invalid_household_meter
                  - duplicate_consumption_subscription
                  - invalid_inverter
                  - read_only_asset
                  - duplicate_external_id
                  - asset_has_children
                  - asset_decommissioned
                  - asset_not_found
                  - mixed_households
                  - field_not_allowed
                  - invalid_direction
                  - duplicate_timestamp
                example: invalid_type
              field:
                type: string
                example: favoriteNumbers.1
              message:
                type: string
                example: 'Invalid input: expected string, received number'
            required:
              - code
              - field
              - message
          description: >-
            Per-field breakdown of a validation or business-rule failure.
            Omitted for API versions before the structured-errors cutoff.
      required:
        - code
        - message
        - requestId
        - docs
    ErrUnauthorized:
      type: object
      properties:
        code:
          type: string
          enum:
            - UNAUTHORIZED
          description: The error code related to the status code.
          example: UNAUTHORIZED
        message:
          type: string
          description: A human readable message describing the issue.
          example: Invalid or malformed token
        requestId:
          type: string
          description: The request id to be used for debugging and error reporting.
          example: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs:
          type: string
          description: The docs related to the error code.
          example: https://docs.nomos.energy/api-references/errors/UNAUTHORIZED
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - invalid_type
                  - too_big
                  - too_small
                  - invalid_format
                  - not_multiple_of
                  - unrecognized_keys
                  - invalid_union
                  - invalid_key
                  - invalid_element
                  - invalid_value
                  - custom
                  - unserviceable_zip
                  - ended_subscription
                  - duplicate_grid_reduction
                  - missing_smart_meter
                  - missing_module_1
                  - unsupported_product
                  - unsupported_meter_order
                  - duplicate_meter_order
                  - unsupported_meter
                  - out_of_period_meter_reading
                  - unsupported_meter_reading
                  - duplicate_meter_reading
                  - implausible_meter_reading
                  - duplicate_customer_email
                  - invalid_iban
                  - upgrade_api_version
                  - withdrawal_not_allowed
                  - invalid_termination_date
                  - subscription_not_started
                  - missing_household
                  - invalid_household_customer
                  - invalid_household_meter
                  - duplicate_consumption_subscription
                  - invalid_inverter
                  - read_only_asset
                  - duplicate_external_id
                  - asset_has_children
                  - asset_decommissioned
                  - asset_not_found
                  - mixed_households
                  - field_not_allowed
                  - invalid_direction
                  - duplicate_timestamp
                example: invalid_type
              field:
                type: string
                example: favoriteNumbers.1
              message:
                type: string
                example: 'Invalid input: expected string, received number'
            required:
              - code
              - field
              - message
          description: >-
            Per-field breakdown of a validation or business-rule failure.
            Omitted for API versions before the structured-errors cutoff.
      required:
        - code
        - message
        - requestId
        - docs
    ErrForbidden:
      type: object
      properties:
        code:
          type: string
          enum:
            - FORBIDDEN
          description: The error code related to the status code.
          example: FORBIDDEN
        message:
          type: string
          description: A human readable message describing the issue.
          example: You are not allowed to access this resource
        requestId:
          type: string
          description: The request id to be used for debugging and error reporting.
          example: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs:
          type: string
          description: The docs related to the error code.
          example: https://docs.nomos.energy/api-references/errors/FORBIDDEN
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - invalid_type
                  - too_big
                  - too_small
                  - invalid_format
                  - not_multiple_of
                  - unrecognized_keys
                  - invalid_union
                  - invalid_key
                  - invalid_element
                  - invalid_value
                  - custom
                  - unserviceable_zip
                  - ended_subscription
                  - duplicate_grid_reduction
                  - missing_smart_meter
                  - missing_module_1
                  - unsupported_product
                  - unsupported_meter_order
                  - duplicate_meter_order
                  - unsupported_meter
                  - out_of_period_meter_reading
                  - unsupported_meter_reading
                  - duplicate_meter_reading
                  - implausible_meter_reading
                  - duplicate_customer_email
                  - invalid_iban
                  - upgrade_api_version
                  - withdrawal_not_allowed
                  - invalid_termination_date
                  - subscription_not_started
                  - missing_household
                  - invalid_household_customer
                  - invalid_household_meter
                  - duplicate_consumption_subscription
                  - invalid_inverter
                  - read_only_asset
                  - duplicate_external_id
                  - asset_has_children
                  - asset_decommissioned
                  - asset_not_found
                  - mixed_households
                  - field_not_allowed
                  - invalid_direction
                  - duplicate_timestamp
                example: invalid_type
              field:
                type: string
                example: favoriteNumbers.1
              message:
                type: string
                example: 'Invalid input: expected string, received number'
            required:
              - code
              - field
              - message
          description: >-
            Per-field breakdown of a validation or business-rule failure.
            Omitted for API versions before the structured-errors cutoff.
      required:
        - code
        - message
        - requestId
        - docs
    ErrNotFound:
      type: object
      properties:
        code:
          type: string
          enum:
            - NOT_FOUND
          description: The error code related to the status code.
          example: NOT_FOUND
        message:
          type: string
          description: A human readable message describing the issue.
          example: Resource not found
        requestId:
          type: string
          description: The request id to be used for debugging and error reporting.
          example: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs:
          type: string
          description: The docs related to the error code.
          example: https://docs.nomos.energy/api-references/errors/NOT_FOUND
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - invalid_type
                  - too_big
                  - too_small
                  - invalid_format
                  - not_multiple_of
                  - unrecognized_keys
                  - invalid_union
                  - invalid_key
                  - invalid_element
                  - invalid_value
                  - custom
                  - unserviceable_zip
                  - ended_subscription
                  - duplicate_grid_reduction
                  - missing_smart_meter
                  - missing_module_1
                  - unsupported_product
                  - unsupported_meter_order
                  - duplicate_meter_order
                  - unsupported_meter
                  - out_of_period_meter_reading
                  - unsupported_meter_reading
                  - duplicate_meter_reading
                  - implausible_meter_reading
                  - duplicate_customer_email
                  - invalid_iban
                  - upgrade_api_version
                  - withdrawal_not_allowed
                  - invalid_termination_date
                  - subscription_not_started
                  - missing_household
                  - invalid_household_customer
                  - invalid_household_meter
                  - duplicate_consumption_subscription
                  - invalid_inverter
                  - read_only_asset
                  - duplicate_external_id
                  - asset_has_children
                  - asset_decommissioned
                  - asset_not_found
                  - mixed_households
                  - field_not_allowed
                  - invalid_direction
                  - duplicate_timestamp
                example: invalid_type
              field:
                type: string
                example: favoriteNumbers.1
              message:
                type: string
                example: 'Invalid input: expected string, received number'
            required:
              - code
              - field
              - message
          description: >-
            Per-field breakdown of a validation or business-rule failure.
            Omitted for API versions before the structured-errors cutoff.
      required:
        - code
        - message
        - requestId
        - docs
    ErrConflict:
      type: object
      properties:
        code:
          type: string
          enum:
            - CONFLICT
          description: The error code related to the status code.
          example: CONFLICT
        message:
          type: string
          description: A human readable message describing the issue.
          example: Resource already exists
        requestId:
          type: string
          description: The request id to be used for debugging and error reporting.
          example: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs:
          type: string
          description: The docs related to the error code.
          example: https://docs.nomos.energy/api-references/errors/CONFLICT
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - invalid_type
                  - too_big
                  - too_small
                  - invalid_format
                  - not_multiple_of
                  - unrecognized_keys
                  - invalid_union
                  - invalid_key
                  - invalid_element
                  - invalid_value
                  - custom
                  - unserviceable_zip
                  - ended_subscription
                  - duplicate_grid_reduction
                  - missing_smart_meter
                  - missing_module_1
                  - unsupported_product
                  - unsupported_meter_order
                  - duplicate_meter_order
                  - unsupported_meter
                  - out_of_period_meter_reading
                  - unsupported_meter_reading
                  - duplicate_meter_reading
                  - implausible_meter_reading
                  - duplicate_customer_email
                  - invalid_iban
                  - upgrade_api_version
                  - withdrawal_not_allowed
                  - invalid_termination_date
                  - subscription_not_started
                  - missing_household
                  - invalid_household_customer
                  - invalid_household_meter
                  - duplicate_consumption_subscription
                  - invalid_inverter
                  - read_only_asset
                  - duplicate_external_id
                  - asset_has_children
                  - asset_decommissioned
                  - asset_not_found
                  - mixed_households
                  - field_not_allowed
                  - invalid_direction
                  - duplicate_timestamp
                example: invalid_type
              field:
                type: string
                example: favoriteNumbers.1
              message:
                type: string
                example: 'Invalid input: expected string, received number'
            required:
              - code
              - field
              - message
          description: >-
            Per-field breakdown of a validation or business-rule failure.
            Omitted for API versions before the structured-errors cutoff.
      required:
        - code
        - message
        - requestId
        - docs
    ErrInternalServerError:
      type: object
      properties:
        code:
          type: string
          enum:
            - INTERNAL_SERVER_ERROR
          description: The error code related to the status code.
          example: INTERNAL_SERVER_ERROR
        message:
          type: string
          description: A human readable message describing the issue.
          example: Internal Server Error
        requestId:
          type: string
          description: The request id to be used for debugging and error reporting.
          example: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs:
          type: string
          description: The docs related to the error code.
          example: >-
            https://docs.nomos.energy/api-references/errors/INTERNAL_SERVER_ERROR
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - invalid_type
                  - too_big
                  - too_small
                  - invalid_format
                  - not_multiple_of
                  - unrecognized_keys
                  - invalid_union
                  - invalid_key
                  - invalid_element
                  - invalid_value
                  - custom
                  - unserviceable_zip
                  - ended_subscription
                  - duplicate_grid_reduction
                  - missing_smart_meter
                  - missing_module_1
                  - unsupported_product
                  - unsupported_meter_order
                  - duplicate_meter_order
                  - unsupported_meter
                  - out_of_period_meter_reading
                  - unsupported_meter_reading
                  - duplicate_meter_reading
                  - implausible_meter_reading
                  - duplicate_customer_email
                  - invalid_iban
                  - upgrade_api_version
                  - withdrawal_not_allowed
                  - invalid_termination_date
                  - subscription_not_started
                  - missing_household
                  - invalid_household_customer
                  - invalid_household_meter
                  - duplicate_consumption_subscription
                  - invalid_inverter
                  - read_only_asset
                  - duplicate_external_id
                  - asset_has_children
                  - asset_decommissioned
                  - asset_not_found
                  - mixed_households
                  - field_not_allowed
                  - invalid_direction
                  - duplicate_timestamp
                example: invalid_type
              field:
                type: string
                example: favoriteNumbers.1
              message:
                type: string
                example: 'Invalid input: expected string, received number'
            required:
              - code
              - field
              - message
          description: >-
            Per-field breakdown of a validation or business-rule failure.
            Omitted for API versions before the structured-errors cutoff.
      required:
        - code
        - message
        - requestId
        - docs
    AssetSnapshotInput:
      type: object
      properties:
        asset:
          type: string
          description: >-
            Our ID of the asset. All snapshots of one request belong to the same
            household.
          example: ha_b7q2m1k8v4n0x3c9l5p2r7td
        timestamp:
          type: string
          format: date-time
          description: >-
            When the device measured the values, ISO 8601 with an offset. It may
            not lie in the future.
          example: '2026-10-06T10:14:50.000Z'
        is_online:
          type: boolean
          description: >-
            Whether the device was reachable. An offline snapshot carries no
            other value.
          example: true
        power_kw:
          type: number
          nullable: true
          description: >-
            Power in kW, positive into the asset (charging, consumption, import)
            and negative out of it (discharging, production, export). Taken by
            every type except `inverter`: `solar` only negative,
            `household_residual`, `heat_pump` and `wallbox` only positive,
            `household_net` and `battery` both. More than 1.5 times the asset's
            rating is rejected: `peak_power_kwp` for `solar`, `max_in_kw` and
            `max_out_kw` for `battery`, `max_in_kw` for `wallbox` and
            `heat_pump`.
          example: 2
        soc:
          type: number
          nullable: true
          description: >-
            The battery's charge level as a share from 0 to 1. `battery` only,
            and required while a battery we steer is online.
          example: 0.694
        is_car_connected:
          type: boolean
          nullable: true
          description: Whether a car is plugged in. `wallbox` only.
          example: null
        controlled_by:
          type: string
          nullable: true
          enum:
            - schedule
            - local
            - customer
            - grid_operator
            - protection
            - unknown
            - null
          description: >-
            Who controls the device right now: our schedule, the device's own
            logic, the customer, the grid operator, a protection function, or
            unknown. `battery`, `wallbox`, `heat_pump` and `inverter`.
          example: schedule
        curtailment:
          type: string
          nullable: true
          enum:
            - active
            - inactive
            - unknown
            - null
          description: Whether the inverter curtails solar right now. `inverter` only.
          example: null
        max_out_kw:
          type: number
          nullable: true
          description: The inverter's output cap in force, in kW. `inverter` only.
          example: null
      required:
        - asset
        - timestamp
        - is_online
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.