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

# Create a physical asset



## OpenAPI

````yaml https://api.trlyr.com/physical-assets/docs/doc.json post /physical-assets
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.0
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
externalDocs:
  description: ''
  url: ''
paths:
  /physical-assets:
    post:
      tags:
        - physical-assets
      summary: Create a physical asset
      parameters:
        - description: Access token
          in: header
          name: Authorization
          required: true
          schema:
            default: Bearer <access token value>
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/pkg_models_http_v0_requests.PostPhysicalAssetRequestBody
              description: Physical asset parameters
              summary: physicalAsset
        description: Physical asset parameters
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/pkg_models_http_v0_responses.PhysicalAssetResponseBody
          description: Created
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
components:
  schemas:
    pkg_models_http_v0_requests.PostPhysicalAssetRequestBody:
      properties:
        ancillaryParameters:
          $ref: >-
            #/components/schemas/pkg_service_physicalassets.AncillaryParametersRequest
        chargeEfficiency:
          type: number
        deliveryZoneIdentifier:
          $ref: '#/components/schemas/deliveryzone.Identifier'
        designatedOptimiserIdentifier:
          $ref: '#/components/schemas/optimiser.Identifier'
        dischargeEfficiency:
          type: number
        energyCapacity:
          type: number
        isSimulatedAsset:
          type: boolean
        metadata:
          items:
            $ref: '#/components/schemas/pkg_service_physicalassets.MetadataRequest'
          type: array
          uniqueItems: false
        name:
          type: string
        organisationIDs:
          items:
            type: string
          type: array
          uniqueItems: false
        rampRate:
          type: number
        ratedChargePower:
          type: number
        ratedDischargePower:
          type: number
      required:
        - chargeEfficiency
        - deliveryZoneIdentifier
        - dischargeEfficiency
        - energyCapacity
        - name
        - ratedChargePower
        - ratedDischargePower
      type: object
    pkg_models_http_v0_responses.PhysicalAssetResponseBody:
      properties:
        ancillaryParameters:
          $ref: '#/components/schemas/entity.AncillaryParameters'
        chargeEfficiency:
          type: number
        deliveryZoneIdentifier:
          $ref: '#/components/schemas/deliveryzone.Identifier'
        designatedOptimiserIdentifier:
          $ref: '#/components/schemas/optimiser.Identifier'
        dischargeEfficiency:
          type: number
        energyCapacity:
          type: number
        id:
          format: uuid
          type: string
        name:
          type: string
        rampRate:
          type: number
        ratedChargePower:
          type: number
        ratedDischargePower:
          type: number
      type: object
    pkg_service_physicalassets.AncillaryParametersRequest:
      properties:
        afrrCapacityRated:
          $ref: '#/components/schemas/pkg_service_physicalassets.PowerRequest'
        fcrCapacityRated:
          $ref: '#/components/schemas/pkg_service_physicalassets.PowerRequest'
        maxBidsPerProduct:
          type: integer
        maxTotalCapacityRated:
          $ref: '#/components/schemas/pkg_service_physicalassets.PowerRequest'
      type: object
    deliveryzone.Identifier:
      enum:
        - 50Hertz
        - tennet
        - amprion
      type: string
      x-enum-varnames:
        - _50HertzIdentifier
        - tennetIdentifier
        - amprionIdentifier
    optimiser.Identifier:
      enum:
        - NULL_OPTIMISER
        - SWDU
        - TMH
        - entrix
        - trlyr
      type: string
      x-enum-varnames:
        - NullIdentifier
        - swduIdentifier
        - tmhIdentifier
        - entrixIdentifier
        - trlyrIdentifier
    pkg_service_physicalassets.MetadataRequest:
      properties:
        category:
          $ref: '#/components/schemas/pkg_models_types.MetadataCategory'
        data:
          items:
            type: integer
          type: array
          uniqueItems: false
      type: object
    entity.AncillaryParameters:
      type: object
    pkg_service_physicalassets.PowerRequest:
      properties:
        charge:
          type: number
        discharge:
          type: number
      required:
        - charge
        - discharge
      type: object
    pkg_models_types.MetadataCategory:
      enum:
        - ASSET
        - SITE
        - FINANCIAL
        - OPERATIONAL
        - ANCILLARY
        - STAKEHOLDER
        - METERING
        - TECHNICAL
        - PROJECT
        - CAPEX
        - SERVICE_FEE
        - DECOMMISSIONING
        - LIABILITY
      type: string
      x-enum-varnames:
        - PhysicalAssetData
        - SiteData
        - FinancialData
        - OperationalData
        - AncillaryData
        - StakeholderData
        - MeteringData
        - TechnicalData
        - ProjectData
        - CapexData
        - ServiceFeeData
        - DecommissioningData
        - LiabilityData

````