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

# Get all the blocks belonging to a virtual asset.

> Get all the blocks belonging to a virtual asset.

Returns a JSON representation of the blocks belonging to a virtual asset as a list. This includes the static parameters of the block, such as its maximum power capability, as well as it's schedule represented as an array of power-time pairs.

The `powerCapacity` timeseries indicates the amount of power assigned to a block (`ratedChargePowerCapacity` and `ratedDischargePowerCapacity`) and the currently available power capacity on the block (`chargePowerCapacity` and `dischargePowerCapacity`).

It is invalid to schedule a power value at a point in time greater than the corresponding power capacity. e.g.,  if `chargePowerCapacity` for a delivery period starting at time T is 400 kW and `dischargePowerCapacity` is 500 kW then it is only valid to schedule power for that delivery period in the range [-400, 500] kW.

The available power capacities will usually equal the rated power capacities, but may be reduced during unexpected outages.



## OpenAPI

````yaml https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/blocks
openapi: 3.1.0
info:
  description: >
    This API allows clients to manage virtual-assets and blocks on the terralayr
    system.


    A virtual asset is a virtual battery, it has static parameters that dictate
    how much power it can import / export, how much energy it can store, and how
    efficiently it charges / discharges. It also has a state of charge which
    changes as the virtual asset exports and imports power.


    A block represents a slice of the power capacity of a virtual asset over
    time, and has a schedule which can be updated to control what the
    virtual-asset will do.


    Virtual assets should be kept balanced: you should manage the schedule such
    that the such that state of charge at the end of its lifetime is 50%. It is
    possible to submit schedules that do not end at 50%, but the response will
    include information about how much imbalance is left.


    ### Authorization


    All the underneath requests require a Bearer-type `Authorization` Header
    i.e. in the form : `Authorization: Bearer <YOUR_TOKEN>`.


    To retrieve a valid token you must log in to our system using a
    password-username authentication as follows:


    ```

    POST https://api.sandbox.trlyr.com/auth/public/authenticate

    ```


    with the following JSON body:


    ```

    {
        "username": "YOUR_USERNAME",
        "password": "YOUR_PASSWORD"
    }

    ```


    Your username and password are the ones you created after receiving an
    invitation to join your organisation.


    You should receive a JSON response body from which you can extract your
    token under `access_token`.


    If you have any questions, don't hesitate to contact our account manager at
    the following address: support@trlyr.com.
  title: terralayr API
  version: 1.11.3
servers:
  - description: Production API
    url: https://api.trlyr.com
  - description: Sandbox API
    url: https://api.sandbox.trlyr.com
security: []
tags:
  - name: virtual-assets
  - name: afrr
  - name: fcr
  - name: ancillary
  - name: blocks
externalDocs:
  description: ''
  url: ''
paths:
  /organisations/{organisationID}/virtual-assets/{virtualAssetID}/blocks:
    get:
      tags:
        - blocks
      summary: Get all the blocks belonging to a virtual asset.
      description: >-
        Get all the blocks belonging to a virtual asset.


        Returns a JSON representation of the blocks belonging to a virtual asset
        as a list. This includes the static parameters of the block, such as its
        maximum power capability, as well as it's schedule represented as an
        array of power-time pairs.


        The `powerCapacity` timeseries indicates the amount of power assigned to
        a block (`ratedChargePowerCapacity` and `ratedDischargePowerCapacity`)
        and the currently available power capacity on the block
        (`chargePowerCapacity` and `dischargePowerCapacity`).


        It is invalid to schedule a power value at a point in time greater than
        the corresponding power capacity. e.g.,  if `chargePowerCapacity` for a
        delivery period starting at time T is 400 kW and
        `dischargePowerCapacity` is 500 kW then it is only valid to schedule
        power for that delivery period in the range [-400, 500] kW.


        The available power capacities will usually equal the rated power
        capacities, but may be reduced during unexpected outages.
      parameters:
        - description: Access token
          in: header
          name: Authorization
          required: true
          schema:
            default: Bearer <access token value>
            type: string
        - description: Organisation ID
          in: path
          name: organisationID
          required: true
          schema:
            type: string
        - description: Virtual Asset ID
          in: path
          name: virtualAssetID
          required: true
          schema:
            type: string
        - description: Query start time
          in: query
          name: start
          schema:
            type: string
        - description: Query end time
          in: query
          name: end
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Block'
                type: array
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
components:
  schemas:
    Block:
      properties:
        end:
          example: '2023-11-12T00:00:00Z'
          format: dateTime
          type: string
        id:
          example: 11111111-1111-1111-1111-111111111111
          format: uuid
          type: string
        powerCapacity:
          items:
            $ref: '#/components/schemas/PowerCapacityPoint'
          type: array
          uniqueItems: false
        ratedChargePower:
          example: 1000
          format: float
          type: number
        ratedDischargePower:
          example: 1000
          format: float
          type: number
        schedule:
          items:
            $ref: '#/components/schemas/InstructionPoint'
          type: array
          uniqueItems: false
        start:
          example: '2023-11-11T00:00:00Z'
          format: dateTime
          type: string
        unitsPower:
          example: kW
          type: string
      type: object
    PowerCapacityPoint:
      properties:
        chargePowerCapacity:
          example: 380
          format: float
          type: number
        dischargePowerCapacity:
          example: 380
          format: float
          type: number
        ratedChargePowerCapacity:
          example: 380
          format: float
          type: number
        ratedDischargePowerCapacity:
          example: 380
          format: float
          type: number
        time:
          example: '2023-11-11T14:30:00Z'
          format: dateTime
          type: string
      required:
        - chargePowerCapacity
        - dischargePowerCapacity
        - ratedChargePowerCapacity
        - ratedDischargePowerCapacity
        - time
      type: object
    InstructionPoint:
      properties:
        power:
          example: 380
          format: float
          type: number
        time:
          example: '2023-11-11T14:30:00Z'
          format: dateTime
          type: string
      required:
        - power
        - time
      type: object

````