Skip to main content
The terralayr API gives your organisation programmatic access to the terralayr platform across six domains: virtual assets, auctions, revenue reporting, physical assets, asset monitoring, and authentication. Every endpoint is secured with a Bearer token — see Authentication to get started.

Virtual Assets

Manage virtual batteries and their block schedules

Auctions

Browse energy auctions, submit bids, and track outcomes

Revenue Reporting

Query revenue and aggregated data points across assets and portfolios

Physical Assets

Manage physical asset parameters, schedules, bids, and logbook entries

Asset Monitoring

Retrieve timeseries datapoints for physical assets

Authentication

Authenticate and obtain Bearer tokens

Virtual Assets

A virtual asset is a virtual battery with static parameters that control how much power it can import and export, how much energy it can store, and how efficiently it charges and discharges. It also has a state of charge that changes as the asset exports and imports power. A block represents a slice of a virtual asset’s power capacity over a time window. Each block has a schedule you can update to control what the virtual asset does during that period.
Keep virtual assets balanced: manage schedules so that the state of charge at the end of the asset’s lifetime is 50%. You can submit schedules that deviate from this, but the response will include an imbalance report.

Auctions

This API lets participating organisations browse energy auctions, submit bids, and track outcomes on the terralayr platform. Each auction offers a virtual-asset delivery window — power, energy, and efficiency parameters — for a specific period. During the auction open interval, invited organisations can place bids priced in EUR. After the auction closes, the highest valid bid wins; if prices tie, the earliest bid wins. Auction responses include a status for your organisation:
StatusMeaning
NOT_STARTEDThe auction has not yet opened
RUNNINGThe auction is open and accepting bids
PENDINGThe auction has closed and results are being processed
WONYour organisation won the auction
LOSTYour organisation did not win
NO_BIDS_SUBMITTEDThe auction closed with no bids from your organisation
When you win, the response includes the allocated virtual asset ID.

Revenue Reporting

This API exposes revenue data and aggregated data points for virtual assets, portfolios, fleets, and physical assets on the terralayr platform. Use the revenue endpoints to query wholesale, ancillary, tolling, and virtual battery auction revenue for a virtual asset over a time range. Data-point endpoints return aggregated metrics at raw, 15-minute, hourly, or daily resolution.

Data point categories

Data-point endpoints accept an optional datapoints query parameter: a comma-separated list of category names. When omitted, all categories for the asset are returned. Each category name appears as a key under data in the response (dataPointName in metaData).

Total and wholesale

Wholesale metrics are calculated per 15-minute delivery period. Buy means energy imported (charging); sell means energy exported (discharging). Volume-weighted average prices (VWAP) are the average wholesale price weighted by traded volume within each period. Net volume is sell minus buy energy (MWh). Net-off volume is the portfolio schedule-netting volume: energy attributed to internal schedule netting rather than wholesale market trades.
CategoryDescription
revenue_total_revenueTotal revenue across wholesale, ancillary, tolling, and virtual battery auction products
revenue_wholesaleWholesale market revenue for the period (sell proceeds minus buy cost)
buy_vwap_wholesaleVolume-weighted average buy price over the 15-minute period (EUR/MWh)
sell_vwap_wholesaleVolume-weighted average sell price over the 15-minute period (EUR/MWh)
buy_volume_wholesaleEnergy bought on the wholesale market in the period (MWh)
sell_volume_wholesaleEnergy sold on the wholesale market in the period (MWh)
net_volume_wholesaleNet wholesale energy: sell volume minus buy volume (MWh)
net_off_volume_wholesaleSchedule-netting volume from portfolio internal netting (MWh)

FCR

FCR metrics relate to 4-hour EFA delivery blocks. Weighted capacity and settlement price values multiply each accepted capacity or price by its delivery hours within the block. The weighted-average categories divide those sums by total delivery hours in the block.
CategoryDescription
revenue_fcrFCR capacity revenue for the delivery window
capacity_fcrAccepted FCR capacity (MW)
settlement_price_fcrFCR settlement price (EUR/MW per hour)
weighted_capacity_fcrAccepted capacity multiplied by delivery hours within the window
weighted_settlement_price_fcrSettlement price multiplied by delivery hours within the window
delivery_hours_fcrFCR delivery hours in the window
capacity_fcr_weighted_avgCapacity-weighted average accepted FCR capacity over the 4-hour EFA block
settlement_price_fcr_weighted_avgCapacity-weighted average FCR settlement price over the 4-hour EFA block

aFRR

Positive and negative energy categories refer to upward and downward aFRR energy activation respectively.
CategoryDescription
revenue_afrr_capacityaFRR capacity revenue
revenue_afrr_energyCombined aFRR energy revenue (positive plus negative)
revenue_afrr_energy_posaFRR positive (upward) energy revenue
revenue_afrr_energy_negaFRR negative (downward) energy revenue
settlement_price_afrr_energy_posSettlement price for positive aFRR energy activations
settlement_price_afrr_energy_negSettlement price for negative aFRR energy activations
total_volume_afrr_energy_posTotal activated positive aFRR energy volume
total_volume_afrr_energy_negTotal activated negative aFRR energy volume

Tolling and virtual battery auction

CategoryDescription
revenue_tollingTolling revenue
annual_price_tollingTolling annual price
revenue_vbaVirtual battery auction revenue
hurdle_price_vbaVirtual battery auction hurdle price

Normalised revenue (per MW)

Normalised revenue divides absolute revenue (EUR) by the virtual asset’s average rated power capacity (MW), where capacity is the mean of rated charge and discharge power. This allows comparison across assets of different sizes.
CategoryDescription
revenue_normalised_totalTotal revenue normalised per MW
revenue_normalised_wholesaleWholesale revenue normalised per MW
revenue_normalised_fcrFCR revenue normalised per MW
revenue_normalised_afrr_capacityaFRR capacity revenue normalised per MW
revenue_normalised_afrr_energyCombined aFRR energy revenue normalised per MW
revenue_normalised_afrr_energy_posPositive aFRR energy revenue normalised per MW
revenue_normalised_afrr_energy_negNegative aFRR energy revenue normalised per MW
revenue_normalised_vbaVirtual battery auction revenue normalised per MW
revenue_normalised_tollingTolling revenue normalised per MW

Normalised revenue (per MW per year)

These categories scale the per-MW normalised values by 365 to express an annualised rate (EUR/MW/year).
CategoryDescription
revenue_normalised_per_year_totalTotal normalised revenue per MW per year
revenue_normalised_per_year_wholesaleWholesale revenue normalised per MW per year
revenue_normalised_per_year_fcrFCR revenue normalised per MW per year
revenue_normalised_per_year_afrr_capacityaFRR capacity revenue normalised per MW per year
revenue_normalised_per_year_afrr_energyCombined aFRR energy revenue normalised per MW per year
revenue_normalised_per_year_afrr_energy_posPositive aFRR energy revenue normalised per MW per year
revenue_normalised_per_year_afrr_energy_negNegative aFRR energy revenue normalised per MW per year
revenue_normalised_per_year_vbaVirtual battery auction revenue normalised per MW per year
revenue_normalised_per_year_tollingTolling revenue normalised per MW per year

Physical Assets

This API manages physical assets on the terralayr platform: asset parameters, schedules, ancillary bids and results, metadata, logbook entries, unavailabilities, and EEX notifications.

Asset Monitoring

This API provides timeseries datapoints for physical assets, allowing you to observe asset behaviour and operational state over time.

Authentication

All endpoints require a Bearer token in the Authorization header. Step 1 — get a token:
POST https://api.trlyr.com/auth/public/authenticate
Content-Type: application/json

{
  "username": "YOUR_USERNAME",
  "password": "YOUR_PASSWORD"
}
Extract access_token from the response body. Step 2 — use the token on every request:
Authorization: Bearer <access_token>
Your username and password are set when you accept an invitation to join your organisation. If you need access, contact support@trlyr.com.
Last modified on June 30, 2026