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

# Update operational data for a physical asset

> Updates external restriction operational data for a physical asset as a timeseries.

Callers must have access to the physical asset and the `Update:physical-asset-operational` permission. The following categories may be updated:

Values are signed power in kW: charge is negative and discharge is positive. Thus `externalRestrictionMin = -1000`, `externalRestrictionMax = 2000` at `2025-07-11T22:00:00Z` implies that the asset may charge no more than 1 MW and discharge no more than 2 MW in the delivery period starting at `2025-07-11T22:00:00Z`.

`externalRestrictionMin`: The lower (most negative / charge-side) external power restriction of the physical asset in kW, e.g. `-1000.0`.

`externalRestrictionMax`: The upper (most positive / discharge-side) external power restriction of the physical asset in kW, e.g. `2000.0`.

Requests that include any other category are rejected.

### Request body

The request body has the following shape:

```json
{
  "data": {
    "externalRestrictionMin": {
      "dataPoints": [
        {
          "timestamp": "2025-07-11T22:00:00Z",
          "value": -1000
        }
      ]
    },
    "externalRestrictionMax": {
      "dataPoints": [
        {
          "timestamp": "2025-07-11T22:00:00Z",
          "value": 2000
        }
      ]
    }
  }
}
```

This body sets `externalRestrictionMin = -1000` and `externalRestrictionMax = 2000` at `2025-07-11T22:00:00Z`, so the asset may charge no more than 1 MW and discharge no more than 2 MW in the delivery period starting at that timestamp.

`data`: A map of operational data category name to category payload. At least one category is required.

`dataPoints`: A non-empty list of points for that category.

`timestamp`: The UTC timestamp of the point, e.g. `2025-07-11T22:00:00Z`.

`value`: The signed power value for the category at that timestamp, in kW (negative for charge, positive for discharge).

A successful update returns `204 No Content`.




## OpenAPI

````yaml https://api.trlyr.com/physical-assets/docs/doc.json put /physical-assets/{physicalAssetID}/operational
openapi: 3.1.0
info:
  description: >
    This API manages physical assets on the terralayr platform: asset
    parameters, schedules, ancillary bids and results, metadata, logbook
    entries, unavailabilities, and EEX notifications.


    Endpoints documented here require a valid Bearer token and the appropriate
    organisation permissions for the physical asset.


    ### Authorization


    All documented endpoints require a Bearer-type `Authorization` header:


    ```

    Authorization: Bearer <YOUR_TOKEN>

    ```


    Obtain a token via the Auth API:


    ```

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

    ```


    Example POST body:


    ```

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

    ```



    If you have any questions, contact support@trlyr.com.
  title: terralayr Physical Assets API
  version: 1.0.4
servers:
  - description: Production API
    url: https://api.trlyr.com
  - description: Sandbox API
    url: https://api.sandbox.trlyr.com
security: []
tags:
  - name: health
  - name: physical-assets
  - name: schedule
  - name: ancillary
  - name: metadata
  - name: logbook
  - name: eex
  - name: operational
externalDocs:
  description: ''
  url: ''
paths:
  /physical-assets/{physicalAssetID}/operational:
    put:
      tags:
        - operational
      summary: Update operational data for a physical asset
      description: >
        Updates external restriction operational data for a physical asset as a
        timeseries.


        Callers must have access to the physical asset and the
        `Update:physical-asset-operational` permission. The following categories
        may be updated:


        Values are signed power in kW: charge is negative and discharge is
        positive. Thus `externalRestrictionMin = -1000`, `externalRestrictionMax
        = 2000` at `2025-07-11T22:00:00Z` implies that the asset may charge no
        more than 1 MW and discharge no more than 2 MW in the delivery period
        starting at `2025-07-11T22:00:00Z`.


        `externalRestrictionMin`: The lower (most negative / charge-side)
        external power restriction of the physical asset in kW, e.g. `-1000.0`.


        `externalRestrictionMax`: The upper (most positive / discharge-side)
        external power restriction of the physical asset in kW, e.g. `2000.0`.


        Requests that include any other category are rejected.


        ### Request body


        The request body has the following shape:


        ```json

        {
          "data": {
            "externalRestrictionMin": {
              "dataPoints": [
                {
                  "timestamp": "2025-07-11T22:00:00Z",
                  "value": -1000
                }
              ]
            },
            "externalRestrictionMax": {
              "dataPoints": [
                {
                  "timestamp": "2025-07-11T22:00:00Z",
                  "value": 2000
                }
              ]
            }
          }
        }

        ```


        This body sets `externalRestrictionMin = -1000` and
        `externalRestrictionMax = 2000` at `2025-07-11T22:00:00Z`, so the asset
        may charge no more than 1 MW and discharge no more than 2 MW in the
        delivery period starting at that timestamp.


        `data`: A map of operational data category name to category payload. At
        least one category is required.


        `dataPoints`: A non-empty list of points for that category.


        `timestamp`: The UTC timestamp of the point, e.g.
        `2025-07-11T22:00:00Z`.


        `value`: The signed power value for the category at that timestamp, in
        kW (negative for charge, positive for discharge).


        A successful update returns `204 No Content`.
      parameters:
        - description: Access token
          in: header
          name: Authorization
          required: true
          schema:
            default: Bearer <access token value>
            type: string
        - description: Physical asset ID
          in: path
          name: physicalAssetID
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/pkg_models_http_v0_requests.UpdateOperationalDataBody
              description: Operational data timeseries
              summary: body
        description: Operational data timeseries
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
components:
  schemas:
    pkg_models_http_v0_requests.UpdateOperationalDataBody:
      properties:
        data:
          additionalProperties:
            $ref: >-
              #/components/schemas/pkg_models_http_v0_requests.UpdateOperationalCategoryData
          type: object
      required:
        - data
      type: object
    pkg_models_http_v0_requests.UpdateOperationalCategoryData:
      properties:
        dataPoints:
          items:
            $ref: >-
              #/components/schemas/pkg_models_http_v0_requests.UpdateOperationalDataPoint
          type: array
          uniqueItems: false
      required:
        - dataPoints
      type: object
    pkg_models_http_v0_requests.UpdateOperationalDataPoint:
      properties:
        timestamp:
          example: '2026-09-07T10:00:00Z'
          format: dateTime
          type: string
        value:
          example: 1000
          format: float
          type: number
      required:
        - timestamp
        - value
      type: object

````

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