> ## 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.

# Retrieve an asset schedule

> The plan in force for an asset over Berlin delivery dates: one slot per planned quarter hour. A quarter hour without a slot runs the device's own logic.



## OpenAPI

````yaml /openapi/openapi.gauss.json get /assets/{id}/schedule
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:
  /assets/{id}/schedule:
    get:
      tags:
        - Assets
      summary: Retrieve an asset schedule
      description: >-
        The plan in force for an asset over Berlin delivery dates: one slot per
        planned quarter hour. A quarter hour without a slot runs the device's
        own logic.
      parameters:
        - schema:
            type: string
            example: ha_b7q2m1k8v4n0x3c9l5p2r7td
          required: true
          name: id
          in: path
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            example: '2026-09-08'
            description: First delivery date, inclusive, in Europe/Berlin (YYYY-MM-DD).
          required: true
          description: First delivery date, inclusive, in Europe/Berlin (YYYY-MM-DD).
          name: start
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            example: '2026-09-08'
            description: >-
              Last delivery date, inclusive, in Europe/Berlin (YYYY-MM-DD). May
              equal start.
          required: true
          description: >-
            Last delivery date, inclusive, in Europe/Berlin (YYYY-MM-DD). May
            equal start.
          name: end
          in: query
      responses:
        '200':
          description: The plan in force
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetSchedule'
        '400':
          description: >-
            The request is invalid: a field fails validation, breaks a business
            rule, or the body is not valid JSON. `errors` lists every problem
            with its field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrBadRequest'
              examples:
                End before start:
                  summary: End before start
                  value:
                    code: BAD_REQUEST
                    message: end must be on or after start.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: invalid_value
                        field: end
                        message: end must be on or after start.
                Asset that takes no schedule or forecast:
                  summary: Asset that takes no schedule or forecast
                  value:
                    code: BAD_REQUEST
                    message: >-
                      Asset ha_n4t8w2q6e1r5y9u3i7o0p2as is a household_net
                      asset, which takes no schedule or forecast.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: >-
                      https://docs.nomos.energy/api-references/errors/BAD_REQUEST
                    errors:
                      - code: invalid_value
                        field: id
                        message: >-
                          Asset ha_n4t8w2q6e1r5y9u3i7o0p2as is a household_net
                          asset, which takes no schedule or forecast.
                Unsupported version header:
                  $ref: '#/components/examples/400-unsupported-version-header'
        '401':
          description: The access token is missing, expired or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrUnauthorized'
              examples:
                No token:
                  $ref: '#/components/examples/401-no-token'
                Expired token:
                  $ref: '#/components/examples/401-expired-token'
                Invalid token:
                  $ref: '#/components/examples/401-invalid-token'
        '403':
          description: The access token is valid but not allowed to use this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrForbidden'
              examples:
                Role without access:
                  $ref: '#/components/examples/403-role-without-access'
                Token without scope:
                  $ref: '#/components/examples/403-token-without-scope-2'
                Customer token without customer:
                  $ref: '#/components/examples/403-customer-token-without-customer'
        '404':
          description: >-
            A resource in the path or the body does not exist or belongs to
            another organization, or the endpoint does not exist in the API
            version of your token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrNotFound'
              examples:
                Unknown asset:
                  $ref: '#/components/examples/404-unknown-asset'
                Endpoint not in your API version:
                  summary: Endpoint not in your API version
                  value:
                    code: NOT_FOUND
                    message: >-
                      There is no GET /assets/{id}/schedule in API version
                      2025-12-01.chucky.
                    requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
                    docs: https://docs.nomos.energy/api-references/errors/NOT_FOUND
        '422':
          description: >-
            A query parameter, such as a filter value or a date range, is
            invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrUnprocessableEntity'
              examples:
                Date that does not exist:
                  $ref: '#/components/examples/422-date-that-does-not-exist'
                Date out of range:
                  $ref: '#/components/examples/422-date-out-of-range'
        '500':
          description: >-
            Something went wrong on our side. Retry later, and send us the
            `requestId` if it persists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrInternalServerError'
              examples:
                Unexpected error:
                  $ref: '#/components/examples/500-unexpected-error'
      security:
        - Bearer: []
components:
  schemas:
    AssetSchedule:
      type: object
      properties:
        object:
          type: string
          enum:
            - asset_schedule
        asset:
          type: string
          example: ha_b7q2m1k8v4n0x3c9l5p2r7td
        period:
          type: object
          properties:
            start:
              type: string
              example: '2026-10-07T00:00:00.000+02:00'
              description: Inclusive start, with its UTC offset.
            end:
              type: string
              example: '2026-10-08T00:00:00.000+02:00'
              description: Exclusive end, with its UTC offset.
          required:
            - start
            - end
        resolution:
          type: string
          enum:
            - 15min
        items:
          type: array
          items:
            type: object
            properties:
              timestamp:
                type: string
                description: Start of the quarter hour in UTC.
                example: '2026-10-07T10:00:00.000Z'
              mode:
                type: string
                enum:
                  - setpoint
                  - self_consumption
                  - local
                description: >-
                  What the device does in the quarter hour. `setpoint` holds
                  `power_kw` (`battery`, `wallbox`). `self_consumption` switches
                  the device to using solar surplus and keeping the grid near
                  zero (`battery`, `wallbox`). `local` leaves the device's own
                  logic in charge, within any caps (every steerable type, and
                  the only mode for `heat_pump`, `inverter` and `solar`).
                example: setpoint
              power_kw:
                type: number
                nullable: true
                description: >-
                  The power to hold in kW, positive into the asset and negative
                  out of it, at most the asset's rating. Required for
                  `setpoint`, the only mode that takes it. A `wallbox` only
                  charges.
                example: 3
              max_in_kw:
                type: number
                nullable: true
                minimum: 0
                description: >-
                  Cap on power into the asset in kW, at most its rating.
                  `battery`, `wallbox` and `heat_pump` in `self_consumption` and
                  `local`. 0 blocks charging or drawing.
                example: null
              max_out_kw:
                type: number
                nullable: true
                minimum: 0
                description: >-
                  Cap on power out of the asset in kW, at most its rating.
                  `battery` in `self_consumption` and `local`, and `inverter` in
                  `local`, where it curtails solar: 4 limits it to 4 kW, 0 stops
                  it. 0 on a battery keeps the charge.
                example: null
              min_soc:
                type: number
                nullable: true
                minimum: 0
                maximum: 1
                description: >-
                  Lowest charge level as a share from 0 to 1, not above
                  `max_soc`. `battery` in every mode.
                example: 0.1
              max_soc:
                type: number
                nullable: true
                minimum: 0
                maximum: 1
                description: >-
                  Highest charge level as a share from 0 to 1. `battery` in
                  every mode.
                example: 0.9
              expected_power_kw:
                type: number
                nullable: true
                description: >-
                  The average power expected in the quarter hour in kW, when it
                  differs from what the mode implies. On a `setpoint` it lies
                  between 0 and `power_kw`, and it stays within the caps. Every
                  mode, except on an `inverter`. On a `solar` asset it is the
                  production forecast, 0 or negative and at most its
                  `peak_power_kwp`, and the only field a `solar` slot takes.
                example: null
              author:
                type: string
                enum:
                  - partner
                  - nomos
                description: Who planned the slot.
                example: nomos
            required:
              - timestamp
              - mode
              - power_kw
              - max_in_kw
              - max_out_kw
              - min_soc
              - max_soc
              - expected_power_kw
              - author
          description: >-
            Sorted by time: one slot per planned quarter hour. A quarter hour
            without one runs the device's own logic.
      required:
        - object
        - asset
        - period
        - resolution
        - items
    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.
        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
                description: >-
                  What is wrong with the field, such as `invalid_type` or
                  `asset_not_found`. `x-extensible-enum` lists the values known
                  today. New values can be added in any API version, so treat an
                  unknown value like any other error of the response's status.
                example: invalid_type
                x-extensible-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
                  - incompatible_grid_reduction
                  - 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
                  - terminated_subscription
                  - 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
                  - asset_not_steerable
                  - mode_not_allowed
                  - slot_missing
              field:
                type: string
                example: customer.email
              message:
                type: string
                example: 'Invalid input: expected string, received undefined'
            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.
        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
      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.
        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
      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.
        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
                description: >-
                  What is wrong with the field, such as `invalid_type` or
                  `asset_not_found`. `x-extensible-enum` lists the values known
                  today. New values can be added in any API version, so treat an
                  unknown value like any other error of the response's status.
                example: invalid_type
                x-extensible-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
                  - incompatible_grid_reduction
                  - 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
                  - terminated_subscription
                  - 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
                  - asset_not_steerable
                  - mode_not_allowed
                  - slot_missing
              field:
                type: string
                example: customer.email
              message:
                type: string
                example: 'Invalid input: expected string, received undefined'
            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
    ErrUnprocessableEntity:
      type: object
      properties:
        code:
          type: string
          enum:
            - UNPROCESSABLE_ENTITY
          description: The error code related to the status code.
          example: UNPROCESSABLE_ENTITY
        message:
          type: string
          description: A human readable message describing the issue.
        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/UNPROCESSABLE_ENTITY
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  What is wrong with the field, such as `invalid_type` or
                  `asset_not_found`. `x-extensible-enum` lists the values known
                  today. New values can be added in any API version, so treat an
                  unknown value like any other error of the response's status.
                example: invalid_type
                x-extensible-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
                  - incompatible_grid_reduction
                  - 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
                  - terminated_subscription
                  - 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
                  - asset_not_steerable
                  - mode_not_allowed
                  - slot_missing
              field:
                type: string
                example: customer.email
              message:
                type: string
                example: 'Invalid input: expected string, received undefined'
            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.
        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
      required:
        - code
        - message
        - requestId
        - docs
  examples:
    400-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-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
    401-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
    401-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-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
    403-token-without-scope-2:
      summary: Token without scope
      value:
        code: FORBIDDEN
        message: 'Insufficient scope: read:* required.'
        requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs: https://docs.nomos.energy/api-references/errors/FORBIDDEN
    403-customer-token-without-customer:
      summary: Customer token without customer
      value:
        code: FORBIDDEN
        message: Customer not found.
        requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs: https://docs.nomos.energy/api-references/errors/FORBIDDEN
    404-unknown-asset:
      summary: Unknown asset
      value:
        code: NOT_FOUND
        message: Asset not found
        requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs: https://docs.nomos.energy/api-references/errors/NOT_FOUND
    422-date-that-does-not-exist:
      summary: Date that does not exist
      value:
        code: UNPROCESSABLE_ENTITY
        message: start must be a valid date
        requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs: https://docs.nomos.energy/api-references/errors/UNPROCESSABLE_ENTITY
        errors:
          - code: invalid_format
            field: start
            message: start must be a valid date
    422-date-out-of-range:
      summary: Date out of range
      value:
        code: UNPROCESSABLE_ENTITY
        message: start must be between 2000-01-01 and 2099-12-31
        requestId: 37a04f8f-e791-491c-81e1-86cd304649bb
        docs: https://docs.nomos.energy/api-references/errors/UNPROCESSABLE_ENTITY
        errors:
          - code: invalid_value
            field: start
            message: start must be between 2000-01-01 and 2099-12-31
    500-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
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

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