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:
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 optionaldatapoints 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.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.aFRR
Positive and negative energy categories refer to upward and downward aFRR energy activation respectively.Tolling and virtual battery auction
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.Normalised revenue (per MW per year)
These categories scale the per-MW normalised values by 365 to express an annualised rate (EUR/MW/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 theAuthorization header.
Step 1 — get a token:
access_token from the response body.
Step 2 — use the token on every request: