Gets a selection of operational data of a virtual-asset as a timeseries.
Gets a selection of operational data of a virtual-asset as a timeseries.
Returns a JSON representation of the selected operational data and its metadata at 15 minute granularity.
The user selects the relevant categories of operational data through the query parameter categories, which is a comma separated list. E.g. categories=energyCapacityAvailable,energyCapacityRated
The following categories are available:
chargeEfficiency: The one-way efficiency of the virtual asset’s charging operation as a ratio, e.g. 0.95.
dischargeEfficiency: The one-way efficiency of the virtual asset’s discharging operation as a ratio, e.g. 0.95.
energyCapacityRated: The rated energy capacity of the virtual asset in kWh, e.g. 8000.0.
energyCapacityAvailable: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. 8000.0.
powerCapacityChargeRated: The rated charge power capacity of the virtual asset in kW, e.g. 8000.0.
powerCapacityChargeAvailable: The available charge power capacity of the virtual asset in kW, e.g. 8000.0.
powerCapacityDischargeRated: The rated discharge power capacity of the virtual asset in kW, e.g. 8000.0.
powerCapacityDischargeAvailable: The available discharge power capacity of the virtual asset in kW, e.g. 8000.0.
maximumDeliverablePower: The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge.
minimumDeliverablePower: The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge.
The range [minimumDeliverablePower, maximumDeliverablePower] represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range [minimumDeliverablePower, maximumDeliverablePower] updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied.
These values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period.
stateOfChargeBoundsUpper: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. 0.9 if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsUpper divided by energyCapacityAvailable.
stateOfChargeBoundsLower: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. 0.1 if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsLower divided by energyCapacityAvailable.
stateOfChargeProjection: The projected state of charge of the virtual asset as a ratio, e.g. 0.50 for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyProjection divided by energyCapacityAvailable.
stateOfEnergyProjection: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. 8000.0.
stateOfEnergy: The actual state of energy of the virtual asset, in kWh, e.g. 8000.0.
stateOfEnergyBoundsUpper: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. 7200.0 if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsUpper multiplied by availableEnergyCapacity.
stateOfEnergyBoundsLower: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. 800.0 if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsLower multiplied by availableEnergyCapacity.
fcrReserveCharge: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveCharge is 900 kWh, you would expect stateOfEnergyBoundsUpper to be no higher than 9100 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.
fcrReserveDischarge: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveDischarge is 900 kWh, you would expect stateOfEnergyBoundsLower to be no lower than 900 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.
stateOfCharge: The state of energy of the virtual-asset as a fraction of available energy capacity energyCapacityAvailable as a ratio, e.g. 0.10 for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh.
frozenEnergy: The frozen energy of the virtual asset in kWh, e.g. 500.0. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability.
frozenEnergyProjection: The projected frozen energy of the virtual asset in kWh, e.g. 500.0.
energyCharged: The sum total of charged energy of the virtual asset in kWh, e.g. 100.0.
energyDischarged: The sum total of discharged energy of the virtual asset in kWh, e.g. 100.0.
cyclesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. 0.1.
cyclesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. 0.1.
cyclesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. 0.1.
cyclesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. 0.1.
availableEnergyDischargesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. 0.1.
availableEnergyDischargesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. 0.1.
availableEnergyDischargesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. 0.1.
availableEnergyDischargesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. 0.1.
afrrPosCapacityAvailable: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability.
afrrPosCapacityAvailableMinusFcr: The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable). This value may be reduced during periods of unavailability.
afrrPosCapacityRated: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability.
afrrNegCapacityAvailable: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability.
afrrNegCapacityAvailableMinusFcr: The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable). This value may be reduced during periods of unavailability.
afrrNegCapacityRated: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability.
afrrActivation: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. 2000.0.
afrrPosActivation: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. 3000.0.
afrrNegActivation: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. -1000.0.
fcrCapacityAvailable: The maximum available power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability.
fcrCapacityRated: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability.
fcrActivation: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. 1000.0.
maxTotalAncillaryCapacityChargeAvailable: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability.
maxTotalAncillaryCapacityChargeRated: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability.
maxTotalAncillaryCapacityDischargeAvailable: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability.
maxTotalAncillaryCapacityDischargeRated: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability.
fcrCommitment: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.
afrrPosCommitment: The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.
afrrNegCommitment: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.
wholesalePowerCapacityChargeAvailable: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability.
wholesalePowerCapacityDischargeAvailable: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability.
marketableCapacityAFRRPos: DEPRECATED. Please use the new category name instead: afrrPosCapacityAvailable.
marketableCapacityAFRRNeg: DEPRECATED. Please use the new category name instead: afrrNegCapacityAvailable.
marketableCapacityFCR: DEPRECATED. Please use the new category name instead: fcrCapacityAvailable.
Along with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint.
Note that it is required to provide start and end params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of 2025-06-17T00:00:00Z and an end of 2025-06-17T00:30:00Z would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"terralayr","colors":{"primary":"#13151A","light":"#C2C6CE","dark":"#888C97"},"logo":{"light":"https://mintcdn.com/terralayr-90/i2mowZXsRr_Wp7MC/logo/terralayrDark.svg?fit=max\u0026auto=format\u0026n=i2mowZXsRr_Wp7MC\u0026q=85\u0026s=eb99311be47192737889489eb393e3d4","dark":"https://mintcdn.com/terralayr-90/i2mowZXsRr_Wp7MC/logo/terralayr.svg?fit=max\u0026auto=format\u0026n=i2mowZXsRr_Wp7MC\u0026q=85\u0026s=ec334006d0e1ec6b8461a2016ff25471"},"favicon":"https://mintcdn.com/terralayr-90/6CJgW5GjjTIZDPSq/favicon.svg?fit=max\u0026auto=format\u0026n=6CJgW5GjjTIZDPSq\u0026q=85\u0026s=a4ab56165676d79a829688cf9b6e072a","api":{"params":{"expanded":"all"},"playground":{"display":"interactive"},"examples":{"defaults":"required","prefill":true,"autogenerate":true},"url":"full"},"navbar":{"links":[{"href":"mailto:support@trlyr.com","label":"Support"}],"primary":{"type":"button","label":"Layr Dashboard","href":"https://app.trlyr.com"}},"footer":{"socials":{"website":"https://www.trlyr.com/","github":"https://github.com/terralayr","linkedin":"https://www.linkedin.com/company/terralayr"}},"fonts":{"heading":{"family":"InterDisplay","weight":700,"source":"fonts/PPNeueMontreal-Regular.woff2","format":"woff2"},"body":{"family":"InterDisplay","weight":400,"source":"fonts/PPNeueMontreal-Regular.woff2","format":"woff2"}},"integrations":{"gtm":{"tagId":"GTM-MK2HWCBW"},"intercom":{"appId":"aqinf0la"}},"contextual":{"options":["copy","view","claude","chatgpt","mcp","add-mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"terralayr-90","hasAudioNarration":false,"actualSubdomain":"terralayr-90","customDomains":["docs.trlyr.com"],"gitSource":{"type":"github","owner":"terralayr","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4a400c2eaceb0e3450bd7","collectionId":"6269c0f9-f523-44e1-830e-eecdedc4dffb","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4a400c2eaceb0e3450bd7"},"feedback":{"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4a400c2eaceb0e3450bd7","clientVersion":"0.0.4039","searchFilterCounts":[{"language":"default","tag":"API Reference","count":99},{"language":"default","tag":"Physical Asset Management API","count":36},{"language":"default","tag":"Virtual Assets API","count":33},{"language":"default","tag":"BESS Academy","count":32},{"language":"default","tag":"Product Updates \u0026 Changelog","count":22},{"language":"default","tag":"Layr User Guide","count":13},{"language":"default","tag":"virtual-assets","count":13},{"language":"default","tag":"Revenue Reporting API","count":12},{"language":"default","tag":"revenue","count":12},{"language":"default","tag":"Module 3: The BESS Project Lifecycle","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@trlyr.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries","slug":"/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries","pageMetadata":{"title":"Gets a selection of operational data of a virtual-asset as a timeseries.","description":"Gets a selection of operational data of a virtual-asset as a timeseries.\n\nReturns a JSON representation of the selected operational data and its metadata at 15 minute granularity.\n\nThe user selects the relevant categories of operational data through the query parameter `categories`, which is a comma separated list. E.g. `categories=energyCapacityAvailable,energyCapacityRated`\nThe following categories are available:\n\n`chargeEfficiency`: The one-way efficiency of the virtual asset's charging operation as a ratio, e.g. `0.95`.\n\n`dischargeEfficiency`: The one-way efficiency of the virtual asset's discharging operation as a ratio, e.g. `0.95`.\n\n`energyCapacityRated`: The rated energy capacity of the virtual asset in kWh, e.g. `8000.0`.\n\n`energyCapacityAvailable`: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. `8000.0`.\n\n`powerCapacityChargeRated`: The rated charge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityChargeAvailable`: The available charge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityDischargeRated`: The rated discharge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityDischargeAvailable`: The available discharge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`maximumDeliverablePower`: The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. `5000.0`. This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge.\n\n`minimumDeliverablePower`: The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. `5000.0`. This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge.\n\nThe range `[minimumDeliverablePower, maximumDeliverablePower]` represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range `[minimumDeliverablePower, maximumDeliverablePower]` updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied.\n\nThese values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period.\n\n`stateOfChargeBoundsUpper`: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. `0.9` if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyBoundsUpper` divided by `energyCapacityAvailable`.\n\n`stateOfChargeBoundsLower`: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. `0.1` if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyBoundsLower` divided by `energyCapacityAvailable`.\n\n`stateOfChargeProjection`: The projected state of charge of the virtual asset as a ratio, e.g. `0.50` for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyProjection` divided by `energyCapacityAvailable`.\n\n`stateOfEnergyProjection`: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. `8000.0`.\n\n`stateOfEnergy`: The actual state of energy of the virtual asset, in kWh, e.g. `8000.0`.\n\n`stateOfEnergyBoundsUpper`: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. `7200.0` if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals `stateOfChargeBoundsUpper` multiplied by `availableEnergyCapacity`.\n\n`stateOfEnergyBoundsLower`: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. `800.0` if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals `stateOfChargeBoundsLower` multiplied by `availableEnergyCapacity`.\n\n`fcrReserveCharge`: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. `900.0`. For example, on a `10000` kWh asset where `fcrReserveCharge` is `900` kWh, you would expect `stateOfEnergyBoundsUpper` to be no higher than `9100` kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\n\n`fcrReserveDischarge`: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. `900.0`. For example, on a `10000` kWh asset where `fcrReserveDischarge` is `900` kWh, you would expect `stateOfEnergyBoundsLower` to be no lower than `900` kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\n\n`stateOfCharge`: The state of energy of the virtual-asset as a fraction of available energy capacity `energyCapacityAvailable` as a ratio, e.g. `0.10` for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh.\n\n`frozenEnergy`: The frozen energy of the virtual asset in kWh, e.g. `500.0`. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability.\n\n`frozenEnergyProjection`: The projected frozen energy of the virtual asset in kWh, e.g. `500.0`.\n\n`energyCharged`: The sum total of charged energy of the virtual asset in kWh, e.g. `100.0`.\n\n`energyDischarged`: The sum total of discharged energy of the virtual asset in kWh, e.g. `100.0`.\n\n`cyclesWholesale`: The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`cyclesFCR`: The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`cyclesAFRR`: The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`cyclesTotal`: The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesWholesale`: The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesFCR`: The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesAFRR`: The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesTotal`: The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`afrrPosCapacityAvailable`: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`afrrPosCapacityAvailableMinusFcr`: The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. `1000.0`. The value is calculated according to the following formula: `afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable)`. This value may be reduced during periods of unavailability.\n\n`afrrPosCapacityRated`: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`afrrNegCapacityAvailable`: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`afrrNegCapacityAvailableMinusFcr`: The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. `1000.0`. The value is calculated according to the following formula: `afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable)`. This value may be reduced during periods of unavailability.\n\n`afrrNegCapacityRated`: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`afrrActivation`: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. `2000.0`.\n\n`afrrPosActivation`: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. `3000.0`.\n\n`afrrNegActivation`: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. `-1000.0`.\n\n`fcrCapacityAvailable`: The maximum available power capacity which can be bid into FCR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`fcrCapacityRated`: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`fcrActivation`: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. `1000.0`.\n\n`maxTotalAncillaryCapacityChargeAvailable`: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. `8000.0`. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability.\n\n`maxTotalAncillaryCapacityChargeRated`: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. `10000.0`. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability.\n\n`maxTotalAncillaryCapacityDischargeAvailable`: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. `8000.0`. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability.\n\n`maxTotalAncillaryCapacityDischargeRated`: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. `10000.0`. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability.\n\n`fcrCommitment`: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`afrrPosCommitment`: The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`afrrNegCommitment`: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`wholesalePowerCapacityChargeAvailable`: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. `5000.0`. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability.\n\n`wholesalePowerCapacityDischargeAvailable`: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. `5000.0`. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability.\n\n`marketableCapacityAFRRPos`: DEPRECATED. Please use the new category name instead: `afrrPosCapacityAvailable`.\n\n`marketableCapacityAFRRNeg`: DEPRECATED. Please use the new category name instead: `afrrNegCapacityAvailable`.\n\n`marketableCapacityFCR`: DEPRECATED. Please use the new category name instead: `fcrCapacityAvailable`.\n\nAlong with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint.\n\nNote that it is required to provide `start` and `end` params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of `2025-06-17T00:00:00Z` and an end of `2025-06-17T00:30:00Z` would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00.\n\nAn example response would be:\n\n```json\n{\n \"data\": {\n \"dischargeEfficiency\": {\n \"metaData\": {\n \"unit\": \"ratio\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 0.95\n },\n {\n \"timestamp\": \"2025-07-11T22:15:00Z\",\n \"values\": 0.95\n }\n ]\n },\n \"marketableCapacityAFRRPos\": {\n \"metaData\": {\n \"unit\": \"kW\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 1000\n },\n {\n \"timestamp\": \"2025-07-11T22:15:00Z\",\n \"values\": 1000\n }\n ]\n },\n \"marketableCapacityFCR\": {\n \"metaData\": {\n \"unit\": \"kW\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 1000\n },\n {\n \"timestamp\": \"2025-07-11T22:15:00Z\",\n \"values\": 1000\n }\n ]\n }\n }\n}\n```\n\n","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/operational","href":"/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ..._provideComponents(),\n ...props.components\n }, {CodeBlock} = _components;\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Gets a selection of operational data of a virtual-asset as a timeseries.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Returns a JSON representation of the selected operational data and its metadata at 15 minute granularity.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The user selects the relevant categories of operational data through the query parameter \", _jsx(_components.code, {\n children: \"categories\"\n }), \", which is a comma separated list. E.g. \", _jsx(_components.code, {\n children: \"categories=energyCapacityAvailable,energyCapacityRated\"\n }), \"\\nThe following categories are available:\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"chargeEfficiency\"\n }), \": The one-way efficiency of the virtual asset’s charging operation as a ratio, e.g. \", _jsx(_components.code, {\n children: \"0.95\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"dischargeEfficiency\"\n }), \": The one-way efficiency of the virtual asset’s discharging operation as a ratio, e.g. \", _jsx(_components.code, {\n children: \"0.95\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"energyCapacityRated\"\n }), \": The rated energy capacity of the virtual asset in kWh, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"energyCapacityAvailable\"\n }), \": The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"powerCapacityChargeRated\"\n }), \": The rated charge power capacity of the virtual asset in kW, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"powerCapacityChargeAvailable\"\n }), \": The available charge power capacity of the virtual asset in kW, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"powerCapacityDischargeRated\"\n }), \": The rated discharge power capacity of the virtual asset in kW, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"powerCapacityDischargeAvailable\"\n }), \": The available discharge power capacity of the virtual asset in kW, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"maximumDeliverablePower\"\n }), \": The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. \", _jsx(_components.code, {\n children: \"5000.0\"\n }), \". This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"minimumDeliverablePower\"\n }), \": The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. \", _jsx(_components.code, {\n children: \"5000.0\"\n }), \". This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The range \", _jsx(_components.code, {\n children: \"[minimumDeliverablePower, maximumDeliverablePower]\"\n }), \" represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range \", _jsx(_components.code, {\n children: \"[minimumDeliverablePower, maximumDeliverablePower]\"\n }), \" updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"These values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"stateOfChargeBoundsUpper\"\n }), \": The upper boundary of the state of charge of the virtual asset as a ratio, e.g. \", _jsx(_components.code, {\n children: \"0.9\"\n }), \" if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal \", _jsx(_components.code, {\n children: \"stateOfEnergyBoundsUpper\"\n }), \" divided by \", _jsx(_components.code, {\n children: \"energyCapacityAvailable\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"stateOfChargeBoundsLower\"\n }), \": The lower boundary of the state of charge of the virtual asset as a ratio, e.g. \", _jsx(_components.code, {\n children: \"0.1\"\n }), \" if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal \", _jsx(_components.code, {\n children: \"stateOfEnergyBoundsLower\"\n }), \" divided by \", _jsx(_components.code, {\n children: \"energyCapacityAvailable\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"stateOfChargeProjection\"\n }), \": The projected state of charge of the virtual asset as a ratio, e.g. \", _jsx(_components.code, {\n children: \"0.50\"\n }), \" for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal \", _jsx(_components.code, {\n children: \"stateOfEnergyProjection\"\n }), \" divided by \", _jsx(_components.code, {\n children: \"energyCapacityAvailable\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"stateOfEnergyProjection\"\n }), \": The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"stateOfEnergy\"\n }), \": The actual state of energy of the virtual asset, in kWh, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"stateOfEnergyBoundsUpper\"\n }), \": The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. \", _jsx(_components.code, {\n children: \"7200.0\"\n }), \" if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals \", _jsx(_components.code, {\n children: \"stateOfChargeBoundsUpper\"\n }), \" multiplied by \", _jsx(_components.code, {\n children: \"availableEnergyCapacity\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"stateOfEnergyBoundsLower\"\n }), \": The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. \", _jsx(_components.code, {\n children: \"800.0\"\n }), \" if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals \", _jsx(_components.code, {\n children: \"stateOfChargeBoundsLower\"\n }), \" multiplied by \", _jsx(_components.code, {\n children: \"availableEnergyCapacity\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"fcrReserveCharge\"\n }), \": The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. \", _jsx(_components.code, {\n children: \"900.0\"\n }), \". For example, on a \", _jsx(_components.code, {\n children: \"10000\"\n }), \" kWh asset where \", _jsx(_components.code, {\n children: \"fcrReserveCharge\"\n }), \" is \", _jsx(_components.code, {\n children: \"900\"\n }), \" kWh, you would expect \", _jsx(_components.code, {\n children: \"stateOfEnergyBoundsUpper\"\n }), \" to be no higher than \", _jsx(_components.code, {\n children: \"9100\"\n }), \" kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"fcrReserveDischarge\"\n }), \": The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. \", _jsx(_components.code, {\n children: \"900.0\"\n }), \". For example, on a \", _jsx(_components.code, {\n children: \"10000\"\n }), \" kWh asset where \", _jsx(_components.code, {\n children: \"fcrReserveDischarge\"\n }), \" is \", _jsx(_components.code, {\n children: \"900\"\n }), \" kWh, you would expect \", _jsx(_components.code, {\n children: \"stateOfEnergyBoundsLower\"\n }), \" to be no lower than \", _jsx(_components.code, {\n children: \"900\"\n }), \" kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"stateOfCharge\"\n }), \": The state of energy of the virtual-asset as a fraction of available energy capacity \", _jsx(_components.code, {\n children: \"energyCapacityAvailable\"\n }), \" as a ratio, e.g. \", _jsx(_components.code, {\n children: \"0.10\"\n }), \" for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"frozenEnergy\"\n }), \": The frozen energy of the virtual asset in kWh, e.g. \", _jsx(_components.code, {\n children: \"500.0\"\n }), \". This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"frozenEnergyProjection\"\n }), \": The projected frozen energy of the virtual asset in kWh, e.g. \", _jsx(_components.code, {\n children: \"500.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"energyCharged\"\n }), \": The sum total of charged energy of the virtual asset in kWh, e.g. \", _jsx(_components.code, {\n children: \"100.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"energyDischarged\"\n }), \": The sum total of discharged energy of the virtual asset in kWh, e.g. \", _jsx(_components.code, {\n children: \"100.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"cyclesWholesale\"\n }), \": The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. \", _jsx(_components.code, {\n children: \"0.1\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"cyclesFCR\"\n }), \": The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. \", _jsx(_components.code, {\n children: \"0.1\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"cyclesAFRR\"\n }), \": The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. \", _jsx(_components.code, {\n children: \"0.1\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"cyclesTotal\"\n }), \": The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. \", _jsx(_components.code, {\n children: \"0.1\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"availableEnergyDischargesWholesale\"\n }), \": The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. \", _jsx(_components.code, {\n children: \"0.1\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"availableEnergyDischargesFCR\"\n }), \": The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. \", _jsx(_components.code, {\n children: \"0.1\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"availableEnergyDischargesAFRR\"\n }), \": The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. \", _jsx(_components.code, {\n children: \"0.1\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"availableEnergyDischargesTotal\"\n }), \": The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. \", _jsx(_components.code, {\n children: \"0.1\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrPosCapacityAvailable\"\n }), \": The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. \", _jsx(_components.code, {\n children: \"7000.0\"\n }), \". This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrPosCapacityAvailableMinusFcr\"\n }), \": The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. \", _jsx(_components.code, {\n children: \"1000.0\"\n }), \". The value is calculated according to the following formula: \", _jsx(_components.code, {\n children: \"afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable)\"\n }), \". This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrPosCapacityRated\"\n }), \": The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. \", _jsx(_components.code, {\n children: \"7000.0\"\n }), \". This value remains unchanged during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrNegCapacityAvailable\"\n }), \": The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. \", _jsx(_components.code, {\n children: \"7000.0\"\n }), \". This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrNegCapacityAvailableMinusFcr\"\n }), \": The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. \", _jsx(_components.code, {\n children: \"1000.0\"\n }), \". The value is calculated according to the following formula: \", _jsx(_components.code, {\n children: \"afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable)\"\n }), \". This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrNegCapacityRated\"\n }), \": The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. \", _jsx(_components.code, {\n children: \"7000.0\"\n }), \". This value remains unchanged during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrActivation\"\n }), \": The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. \", _jsx(_components.code, {\n children: \"2000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrPosActivation\"\n }), \": The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. \", _jsx(_components.code, {\n children: \"3000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrNegActivation\"\n }), \": The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. \", _jsx(_components.code, {\n children: \"-1000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"fcrCapacityAvailable\"\n }), \": The maximum available power capacity which can be bid into FCR market products in kW, e.g. \", _jsx(_components.code, {\n children: \"7000.0\"\n }), \". This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"fcrCapacityRated\"\n }), \": The maximum rated power capacity which can be bid into FCR market products in kW, e.g. \", _jsx(_components.code, {\n children: \"7000.0\"\n }), \". This value remains unchanged during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"fcrActivation\"\n }), \": The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. \", _jsx(_components.code, {\n children: \"1000.0\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"maxTotalAncillaryCapacityChargeAvailable\"\n }), \": The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \". This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"maxTotalAncillaryCapacityChargeRated\"\n }), \": The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. \", _jsx(_components.code, {\n children: \"10000.0\"\n }), \". This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"maxTotalAncillaryCapacityDischargeAvailable\"\n }), \": The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. \", _jsx(_components.code, {\n children: \"8000.0\"\n }), \". This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"maxTotalAncillaryCapacityDischargeRated\"\n }), \": The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. \", _jsx(_components.code, {\n children: \"10000.0\"\n }), \". This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"fcrCommitment\"\n }), \": The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. \", _jsx(_components.code, {\n children: \"5000.0\"\n }), \". Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrPosCommitment\"\n }), \": The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. \", _jsx(_components.code, {\n children: \"5000.0\"\n }), \". Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"afrrNegCommitment\"\n }), \": The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. \", _jsx(_components.code, {\n children: \"5000.0\"\n }), \". Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"wholesalePowerCapacityChargeAvailable\"\n }), \": The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. \", _jsx(_components.code, {\n children: \"5000.0\"\n }), \". Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"wholesalePowerCapacityDischargeAvailable\"\n }), \": The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. \", _jsx(_components.code, {\n children: \"5000.0\"\n }), \". Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"marketableCapacityAFRRPos\"\n }), \": DEPRECATED. Please use the new category name instead: \", _jsx(_components.code, {\n children: \"afrrPosCapacityAvailable\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"marketableCapacityAFRRNeg\"\n }), \": DEPRECATED. Please use the new category name instead: \", _jsx(_components.code, {\n children: \"afrrNegCapacityAvailable\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"marketableCapacityFCR\"\n }), \": DEPRECATED. Please use the new category name instead: \", _jsx(_components.code, {\n children: \"fcrCapacityAvailable\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Along with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Note that it is required to provide \", _jsx(_components.code, {\n children: \"start\"\n }), \" and \", _jsx(_components.code, {\n children: \"end\"\n }), \" params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of \", _jsx(_components.code, {\n children: \"2025-06-17T00:00:00Z\"\n }), \" and an end of \", _jsx(_components.code, {\n children: \"2025-06-17T00:30:00Z\"\n }), \" would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"An example response would be:\"\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"49\",\n language: \"json\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"json\",\n children: _jsxs(_components.code, {\n language: \"json\",\n numberOfLines: \"49\",\n children: [_jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"data\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"dischargeEfficiency\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"metaData\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"unit\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"ratio\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"dataPoints\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": [\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"timestamp\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2025-07-11T22:00:00Z\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"value\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"0.95\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"timestamp\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2025-07-11T22:15:00Z\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"values\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"0.95\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" ]\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"marketableCapacityAFRRPos\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"metaData\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"unit\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"kW\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"dataPoints\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": [\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"timestamp\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2025-07-11T22:00:00Z\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"value\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"1000\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"timestamp\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2025-07-11T22:15:00Z\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"values\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"1000\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" ]\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"marketableCapacityFCR\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"metaData\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"unit\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"kW\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"dataPoints\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": [\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"timestamp\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2025-07-11T22:00:00Z\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"value\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"1000\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" },\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"timestamp\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2025-07-11T22:15:00Z\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"values\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"1000\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" ]\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"}\"\n })\n }), \"\\n\"]\n })\n })\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Gets a selection of operational data of a virtual-asset as a timeseries.","description":"Gets a selection of operational data of a virtual-asset as a timeseries.\n\nReturns a JSON representation of the selected operational data and its metadata at 15 minute granularity.\n\nThe user selects the relevant categories of operational data through the query parameter `categories`, which is a comma separated list. E.g. `categories=energyCapacityAvailable,energyCapacityRated`\nThe following categories are available:\n\n`chargeEfficiency`: The one-way efficiency of the virtual asset's charging operation as a ratio, e.g. `0.95`.\n\n`dischargeEfficiency`: The one-way efficiency of the virtual asset's discharging operation as a ratio, e.g. `0.95`.\n\n`energyCapacityRated`: The rated energy capacity of the virtual asset in kWh, e.g. `8000.0`.\n\n`energyCapacityAvailable`: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. `8000.0`.\n\n`powerCapacityChargeRated`: The rated charge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityChargeAvailable`: The available charge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityDischargeRated`: The rated discharge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityDischargeAvailable`: The available discharge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`maximumDeliverablePower`: The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. `5000.0`. This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge.\n\n`minimumDeliverablePower`: The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. `5000.0`. This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge.\n\nThe range `[minimumDeliverablePower, maximumDeliverablePower]` represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range `[minimumDeliverablePower, maximumDeliverablePower]` updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied.\n\nThese values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period.\n\n`stateOfChargeBoundsUpper`: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. `0.9` if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyBoundsUpper` divided by `energyCapacityAvailable`.\n\n`stateOfChargeBoundsLower`: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. `0.1` if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyBoundsLower` divided by `energyCapacityAvailable`.\n\n`stateOfChargeProjection`: The projected state of charge of the virtual asset as a ratio, e.g. `0.50` for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyProjection` divided by `energyCapacityAvailable`.\n\n`stateOfEnergyProjection`: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. `8000.0`.\n\n`stateOfEnergy`: The actual state of energy of the virtual asset, in kWh, e.g. `8000.0`.\n\n`stateOfEnergyBoundsUpper`: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. `7200.0` if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals `stateOfChargeBoundsUpper` multiplied by `availableEnergyCapacity`.\n\n`stateOfEnergyBoundsLower`: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. `800.0` if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals `stateOfChargeBoundsLower` multiplied by `availableEnergyCapacity`.\n\n`fcrReserveCharge`: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. `900.0`. For example, on a `10000` kWh asset where `fcrReserveCharge` is `900` kWh, you would expect `stateOfEnergyBoundsUpper` to be no higher than `9100` kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\n\n`fcrReserveDischarge`: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. `900.0`. For example, on a `10000` kWh asset where `fcrReserveDischarge` is `900` kWh, you would expect `stateOfEnergyBoundsLower` to be no lower than `900` kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\n\n`stateOfCharge`: The state of energy of the virtual-asset as a fraction of available energy capacity `energyCapacityAvailable` as a ratio, e.g. `0.10` for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh.\n\n`frozenEnergy`: The frozen energy of the virtual asset in kWh, e.g. `500.0`. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability.\n\n`frozenEnergyProjection`: The projected frozen energy of the virtual asset in kWh, e.g. `500.0`.\n\n`energyCharged`: The sum total of charged energy of the virtual asset in kWh, e.g. `100.0`.\n\n`energyDischarged`: The sum total of discharged energy of the virtual asset in kWh, e.g. `100.0`.\n\n`cyclesWholesale`: The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`cyclesFCR`: The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`cyclesAFRR`: The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`cyclesTotal`: The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesWholesale`: The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesFCR`: The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesAFRR`: The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesTotal`: The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`afrrPosCapacityAvailable`: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`afrrPosCapacityAvailableMinusFcr`: The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. `1000.0`. The value is calculated according to the following formula: `afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable)`. This value may be reduced during periods of unavailability.\n\n`afrrPosCapacityRated`: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`afrrNegCapacityAvailable`: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`afrrNegCapacityAvailableMinusFcr`: The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. `1000.0`. The value is calculated according to the following formula: `afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable)`. This value may be reduced during periods of unavailability.\n\n`afrrNegCapacityRated`: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`afrrActivation`: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. `2000.0`.\n\n`afrrPosActivation`: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. `3000.0`.\n\n`afrrNegActivation`: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. `-1000.0`.\n\n`fcrCapacityAvailable`: The maximum available power capacity which can be bid into FCR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`fcrCapacityRated`: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`fcrActivation`: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. `1000.0`.\n\n`maxTotalAncillaryCapacityChargeAvailable`: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. `8000.0`. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability.\n\n`maxTotalAncillaryCapacityChargeRated`: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. `10000.0`. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability.\n\n`maxTotalAncillaryCapacityDischargeAvailable`: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. `8000.0`. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability.\n\n`maxTotalAncillaryCapacityDischargeRated`: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. `10000.0`. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability.\n\n`fcrCommitment`: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`afrrPosCommitment`: The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`afrrNegCommitment`: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`wholesalePowerCapacityChargeAvailable`: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. `5000.0`. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability.\n\n`wholesalePowerCapacityDischargeAvailable`: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. `5000.0`. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability.\n\n`marketableCapacityAFRRPos`: DEPRECATED. Please use the new category name instead: `afrrPosCapacityAvailable`.\n\n`marketableCapacityAFRRNeg`: DEPRECATED. Please use the new category name instead: `afrrNegCapacityAvailable`.\n\n`marketableCapacityFCR`: DEPRECATED. Please use the new category name instead: `fcrCapacityAvailable`.\n\nAlong with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint.\n\nNote that it is required to provide `start` and `end` params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of `2025-06-17T00:00:00Z` and an end of `2025-06-17T00:30:00Z` would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00.\n\nAn example response would be:\n\n```json\n{\n \"data\": {\n \"dischargeEfficiency\": {\n \"metaData\": {\n \"unit\": \"ratio\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 0.95\n },\n {\n \"timestamp\": \"2025-07-11T22:15:00Z\",\n \"values\": 0.95\n }\n ]\n },\n \"marketableCapacityAFRRPos\": {\n \"metaData\": {\n \"unit\": \"kW\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 1000\n },\n {\n \"timestamp\": \"2025-07-11T22:15:00Z\",\n \"values\": 1000\n }\n ]\n },\n \"marketableCapacityFCR\": {\n \"metaData\": {\n \"unit\": \"kW\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 1000\n },\n {\n \"timestamp\": \"2025-07-11T22:15:00Z\",\n \"values\": 1000\n }\n ]\n }\n }\n}\n```\n\n","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/operational","href":"/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Gets a selection of operational data of a virtual-asset as a timeseries.\n\nReturns a JSON representation of the selected operational data and its metadata at 15 minute granularity.\n\nThe user selects the relevant categories of operational data through the query parameter `categories`, which is a comma separated list. E.g. `categories=energyCapacityAvailable,energyCapacityRated`\nThe following categories are available:\n\n`chargeEfficiency`: The one-way efficiency of the virtual asset's charging operation as a ratio, e.g. `0.95`.\n\n`dischargeEfficiency`: The one-way efficiency of the virtual asset's discharging operation as a ratio, e.g. `0.95`.\n\n`energyCapacityRated`: The rated energy capacity of the virtual asset in kWh, e.g. `8000.0`.\n\n`energyCapacityAvailable`: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. `8000.0`.\n\n`powerCapacityChargeRated`: The rated charge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityChargeAvailable`: The available charge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityDischargeRated`: The rated discharge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityDischargeAvailable`: The available discharge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`maximumDeliverablePower`: The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. `5000.0`. This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge.\n\n`minimumDeliverablePower`: The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. `5000.0`. This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge.\n\nThe range `[minimumDeliverablePower, maximumDeliverablePower]` represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range `[minimumDeliverablePower, maximumDeliverablePower]` updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied.\n\nThese values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period.\n\n`stateOfChargeBoundsUpper`: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. `0.9` if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyBoundsUpper` divided by `energyCapacityAvailable`.\n\n`stateOfChargeBoundsLower`: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. `0.1` if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyBoundsLower` divided by `energyCapacityAvailable`.\n\n`stateOfChargeProjection`: The projected state of charge of the virtual asset as a ratio, e.g. `0.50` for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyProjection` divided by `energyCapacityAvailable`.\n\n`stateOfEnergyProjection`: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. `8000.0`.\n\n`stateOfEnergy`: The actual state of energy of the virtual asset, in kWh, e.g. `8000.0`.\n\n`stateOfEnergyBoundsUpper`: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. `7200.0` if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals `stateOfChargeBoundsUpper` multiplied by `availableEnergyCapacity`.\n\n`stateOfEnergyBoundsLower`: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. `800.0` if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals `stateOfChargeBoundsLower` multiplied by `availableEnergyCapacity`.\n\n`fcrReserveCharge`: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. `900.0`. For example, on a `10000` kWh asset where `fcrReserveCharge` is `900` kWh, you would expect `stateOfEnergyBoundsUpper` to be no higher than `9100` kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\n\n`fcrReserveDischarge`: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. `900.0`. For example, on a `10000` kWh asset where `fcrReserveDischarge` is `900` kWh, you would expect `stateOfEnergyBoundsLower` to be no lower than `900` kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\n\n`stateOfCharge`: The state of energy of the virtual-asset as a fraction of available energy capacity `energyCapacityAvailable` as a ratio, e.g. `0.10` for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh.\n\n`frozenEnergy`: The frozen energy of the virtual asset in kWh, e.g. `500.0`. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability.\n\n`frozenEnergyProjection`: The projected frozen energy of the virtual asset in kWh, e.g. `500.0`.\n\n`energyCharged`: The sum total of charged energy of the virtual asset in kWh, e.g. `100.0`.\n\n`energyDischarged`: The sum total of discharged energy of the virtual asset in kWh, e.g. `100.0`.\n\n`cyclesWholesale`: The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`cyclesFCR`: The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`cyclesAFRR`: The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`cyclesTotal`: The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesWholesale`: The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesFCR`: The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesAFRR`: The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`availableEnergyDischargesTotal`: The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. `0.1`.\n\n`afrrPosCapacityAvailable`: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`afrrPosCapacityAvailableMinusFcr`: The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. `1000.0`. The value is calculated according to the following formula: `afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable)`. This value may be reduced during periods of unavailability.\n\n`afrrPosCapacityRated`: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`afrrNegCapacityAvailable`: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`afrrNegCapacityAvailableMinusFcr`: The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. `1000.0`. The value is calculated according to the following formula: `afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable)`. This value may be reduced during periods of unavailability.\n\n`afrrNegCapacityRated`: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`afrrActivation`: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. `2000.0`.\n\n`afrrPosActivation`: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. `3000.0`.\n\n`afrrNegActivation`: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. `-1000.0`.\n\n`fcrCapacityAvailable`: The maximum available power capacity which can be bid into FCR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`fcrCapacityRated`: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`fcrActivation`: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. `1000.0`.\n\n`maxTotalAncillaryCapacityChargeAvailable`: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. `8000.0`. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability.\n\n`maxTotalAncillaryCapacityChargeRated`: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. `10000.0`. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability.\n\n`maxTotalAncillaryCapacityDischargeAvailable`: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. `8000.0`. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability.\n\n`maxTotalAncillaryCapacityDischargeRated`: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. `10000.0`. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability.\n\n`fcrCommitment`: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`afrrPosCommitment`: The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`afrrNegCommitment`: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`wholesalePowerCapacityChargeAvailable`: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. `5000.0`. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability.\n\n`wholesalePowerCapacityDischargeAvailable`: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. `5000.0`. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability.\n\n`marketableCapacityAFRRPos`: DEPRECATED. Please use the new category name instead: `afrrPosCapacityAvailable`.\n\n`marketableCapacityAFRRNeg`: DEPRECATED. Please use the new category name instead: `afrrNegCapacityAvailable`.\n\n`marketableCapacityFCR`: DEPRECATED. Please use the new category name instead: `fcrCapacityAvailable`.\n\nAlong with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint.\n\nNote that it is required to provide `start` and `end` params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of `2025-06-17T00:00:00Z` and an end of `2025-06-17T00:30:00Z` would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00.\n\nAn example response would be:\n\n```json\n{\n \"data\": {\n \"dischargeEfficiency\": {\n \"metaData\": {\n \"unit\": \"ratio\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 0.95\n },\n {\n \"timestamp\": \"2025-07-11T22:15:00Z\",\n \"values\": 0.95\n }\n ]\n },\n \"marketableCapacityAFRRPos\": {\n \"metaData\": {\n \"unit\": \"kW\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 1000\n },\n {\n \"timestamp\": \"2025-07-11T22:15:00Z\",\n \"values\": 1000\n }\n ]\n },\n \"marketableCapacityFCR\": {\n \"metaData\": {\n \"unit\": \"kW\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 1000\n },\n {\n \"timestamp\": \"2025-07-11T22:15:00Z\",\n \"values\": 1000\n }\n ]\n }\n }\n}\n```\n\n","parameters":["be7ef7db-eabb-4ef0-b0bd-a819d92b68a5","7a54c3a1-eeb3-4eb0-b16b-237420af1ea1","e88fed32-b461-4468-a67f-b26462f13acd","cf2222b4-0ab0-45f4-bde6-f907047fb9ec","85e0f37d-9289-4c70-a158-5f8c6566a066","191049f9-28bf-4c1d-ae81-4b5f036bad3e","a8596469-2fd9-4a8c-bcfe-29132aaaf6d9"],"requestBody":"8d170657-5b17-44f6-a568-b08b87610768","responses":{"200":"b3537dad-58ea-4d73-9d50-99ff078e9bb5","400":"0a0d87aa-f1cc-405e-84ce-cb2fd14765c1","401":"8e16773f-fa69-435c-9889-e89672db2d04","500":"f4b06d66-5a0f-4804-bf82-8206813c10e9"},"summary":"Gets a selection of operational data of a virtual-asset as a timeseries.","tags":["virtual-assets"],"method":"get","type":"path","servers":["297f8926-7508-43d5-a35e-6c4952f65031","b1201b0c-e618-4435-972d-30cad67339f3"],"security":[],"path":"/organisations/{organisationID}/virtual-assets/{virtualAssetID}/operational","baseUrlOptions":["https://api.trlyr.com","https://api.sandbox.trlyr.com"],"title":"Gets a selection of operational data of a virtual-asset as a timeseries.","codeSamples":[],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{}],"urlDisplay":"full"},"dependencies":{"parameters":{"be7ef7db-eabb-4ef0-b0bd-a819d92b68a5":{"description":"Access token","in":"header","name":"Authorization","required":true,"schema":{"default":"Bearer \u003caccess token value>","type":"string","isRequired":true,"description":"Access token","uniqueKey":"","typeLabel":"string"}},"7a54c3a1-eeb3-4eb0-b16b-237420af1ea1":{"description":"Organisation ID","in":"path","name":"organisationID","required":true,"schema":{"type":"string","isRequired":true,"description":"Organisation ID","uniqueKey":"","typeLabel":"string"}},"e88fed32-b461-4468-a67f-b26462f13acd":{"description":"Virtual Asset ID","in":"path","name":"virtualAssetID","required":true,"schema":{"type":"string","isRequired":true,"description":"Virtual Asset ID","uniqueKey":"","typeLabel":"string"}},"cf2222b4-0ab0-45f4-bde6-f907047fb9ec":{"description":"Selected Operational Data Categories","in":"query","name":"categories","required":true,"schema":{"type":"string","isRequired":true,"description":"Selected Operational Data Categories","uniqueKey":"","typeLabel":"string"}},"85e0f37d-9289-4c70-a158-5f8c6566a066":{"description":"Query start time","in":"query","name":"start","required":true,"schema":{"type":"string","isRequired":true,"description":"Query start time","uniqueKey":"","typeLabel":"string"}},"191049f9-28bf-4c1d-ae81-4b5f036bad3e":{"description":"Query end time","in":"query","name":"end","required":true,"schema":{"type":"string","isRequired":true,"description":"Query end time","uniqueKey":"","typeLabel":"string"}},"a8596469-2fd9-4a8c-bcfe-29132aaaf6d9":{"description":"Data granularity (optional, minimum 4s)","in":"query","name":"granularity","schema":{"type":"string","description":"Data granularity (optional, minimum 4s)","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b3537dad-58ea-4d73-9d50-99ff078e9bb5":{"content":{"application/json":{"schema":{"properties":{"data":{"additionalProperties":{"properties":{"dataPoints":{"items":{"properties":{"timestamp":{"example":"2020-01-01T00:00:00+00:00","type":"string","isRequired":true,"uniqueKey":"data.additionalProperties.dataPoints.items.[INDEX].timestamp","typeLabel":"string"},"value":{"example":100,"type":"number","isRequired":true,"uniqueKey":"data.additionalProperties.dataPoints.items.[INDEX].value","typeLabel":"number"}},"required":["timestamp","value"],"type":"object","uniqueKey":"data.additionalProperties.dataPoints.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueItems":false,"isRequired":true,"uniqueKey":"data.additionalProperties.dataPoints","typeLabel":"object[]"},"metaData":{"properties":{"unit":{"enum":["","PCT","KW","KWH","KW/S","AMP","V","C","HZ","WH","W","RATIO","EFC","EUR","GC02EQKWH"],"example":"kW","type":"string","x-enum-varnames":["UnitNone","UnitPercent","UnitKilowatt","UnitKilowattHr","UnitKilowattPerSecond","UnitAmpere","UnitVolt","UnitCelsius","UnitHertz","UnitWattHour","UnitWatt","UnitRatio","UnitCycles","UnitEuro","UnitCarbonIntensity"],"isRequired":true,"uniqueKey":"data.additionalProperties.metaData.unit","typeLabel":"enum\u003cstring>"}},"required":["unit"],"type":"object","isRequired":true,"uniqueKey":"data.additionalProperties.metaData","typeLabel":"object"}},"required":["dataPoints","metaData"],"type":"object","uniqueKey":"data.additionalProperties","typeLabel":"object"},"type":"object","isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{}}}},"exampleType":"generated"}},"description":"OK","exampleType":"generated"},"0a0d87aa-f1cc-405e-84ce-cb2fd14765c1":{"description":"Bad Request","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"8e16773f-fa69-435c-9889-e89672db2d04":{"description":"Unauthorized","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"f4b06d66-5a0f-4804-bf82-8206813c10e9":{"description":"Internal Server Error","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{},"servers":{"297f8926-7508-43d5-a35e-6c4952f65031":{"description":"Production API","url":"https://api.trlyr.com"},"b1201b0c-e618-4435-972d-30cad67339f3":{"description":"Sandbox API","url":"https://api.sandbox.trlyr.com"}}},"originalFileLocation":"https://api.sandbox.trlyr.com/docs/doc.json"},"subdomain":"terralayr-90","siteName":"terralayr","title":"Gets a selection of operational data of a virtual-asset as a timeseries. - terralayr","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Gets a selection of operational data of a virtual-asset as a timeseries. Returns a JSON representation of the selected operational data and its metadata at 15 minute granularity. The user selects the relevant categories of operational data through the query parameter categories, which is a comma separated list. E.g. categories=energyCapacityAvailable,energyCapacityRated The following categories are available: chargeEfficiency: The one-way efficiency of the virtual asset\u0026#x27;s charging operation as a ratio, e.g. 0.95. dischargeEfficiency: The one-way efficiency of the virtual asset\u0026#x27;s discharging operation as a ratio, e.g. 0.95. energyCapacityRated: The rated energy capacity of the virtual asset in kWh, e.g. 8000.0. energyCapacityAvailable: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. 8000.0. powerCapacityChargeRated: The rated charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityChargeAvailable: The available charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeRated: The rated discharge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeAvailable: The available discharge power capacity of the virtual asset in kW, e.g. 8000.0. maximumDeliverablePower: The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge. minimumDeliverablePower: The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge. The range [minimumDeliverablePower, maximumDeliverablePower] represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range [minimumDeliverablePower, maximumDeliverablePower] updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied. These values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period. stateOfChargeBoundsUpper: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. 0.9 if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsUpper divided by energyCapacityAvailable. stateOfChargeBoundsLower: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. 0.1 if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsLower divided by energyCapacityAvailable. stateOfChargeProjection: The projected state of charge of the virtual asset as a ratio, e.g. 0.50 for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyProjection divided by energyCapacityAvailable. stateOfEnergyProjection: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. 8000.0. stateOfEnergy: The actual state of energy of the virtual asset, in kWh, e.g. 8000.0. stateOfEnergyBoundsUpper: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. 7200.0 if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsUpper multiplied by availableEnergyCapacity. stateOfEnergyBoundsLower: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. 800.0 if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsLower multiplied by availableEnergyCapacity. fcrReserveCharge: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveCharge is 900 kWh, you would expect stateOfEnergyBoundsUpper to be no higher than 9100 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. fcrReserveDischarge: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveDischarge is 900 kWh, you would expect stateOfEnergyBoundsLower to be no lower than 900 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. stateOfCharge: The state of energy of the virtual-asset as a fraction of available energy capacity energyCapacityAvailable as a ratio, e.g. 0.10 for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh. frozenEnergy: The frozen energy of the virtual asset in kWh, e.g. 500.0. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability. frozenEnergyProjection: The projected frozen energy of the virtual asset in kWh, e.g. 500.0. energyCharged: The sum total of charged energy of the virtual asset in kWh, e.g. 100.0. energyDischarged: The sum total of discharged energy of the virtual asset in kWh, e.g. 100.0. cyclesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. 0.1. afrrPosCapacityAvailable: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrPosCapacityAvailableMinusFcr: The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable). This value may be reduced during periods of unavailability. afrrPosCapacityRated: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrNegCapacityAvailable: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrNegCapacityAvailableMinusFcr: The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable). This value may be reduced during periods of unavailability. afrrNegCapacityRated: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrActivation: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. 2000.0. afrrPosActivation: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. 3000.0. afrrNegActivation: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. -1000.0. fcrCapacityAvailable: The maximum available power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. fcrCapacityRated: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. fcrActivation: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. 1000.0. maxTotalAncillaryCapacityChargeAvailable: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityChargeRated: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability. maxTotalAncillaryCapacityDischargeAvailable: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityDischargeRated: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability. fcrCommitment: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrPosCommitment: The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrNegCommitment: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. wholesalePowerCapacityChargeAvailable: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability. wholesalePowerCapacityDischargeAvailable: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability. marketableCapacityAFRRPos: DEPRECATED. Please use the new category name instead: afrrPosCapacityAvailable. marketableCapacityAFRRNeg: DEPRECATED. Please use the new category name instead: afrrNegCapacityAvailable. marketableCapacityFCR: DEPRECATED. Please use the new category name instead: fcrCapacityAvailable. Along with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint. Note that it is required to provide start and end params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of 2025-06-17T00:00:00Z and an end of 2025-06-17T00:30:00Z would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00. An example response would be: json { \u0026quot;data\u0026quot;: { \u0026quot;dischargeEfficiency\u0026quot;: { \u0026quot;metaData\u0026quot;: { \u0026quot;unit\u0026quot;: \u0026quot;ratio\u0026quot; }, \u0026quot;dataPoints\u0026quot;: [ { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:00:00Z\u0026quot;, \u0026quot;value\u0026quot;: 0.95 }, { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:15:00Z\u0026quot;, \u0026quot;values\u0026quot;: 0.95 } ] }, \u0026quot;marketableCapacityAFRRPos\u0026quot;: { \u0026quot;metaData\u0026quot;: { \u0026quot;unit\u0026quot;: \u0026quot;kW\u0026quot; }, \u0026quot;dataPoints\u0026quot;: [ { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:00:00Z\u0026quot;, \u0026quot;value\u0026quot;: 1000 }, { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:15:00Z\u0026quot;, \u0026quot;values\u0026quot;: 1000 } ] }, \u0026quot;marketableCapacityFCR\u0026quot;: { \u0026quot;metaData\u0026quot;: { \u0026quot;unit\u0026quot;: \u0026quot;kW\u0026quot; }, \u0026quot;dataPoints\u0026quot;: [ { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:00:00Z\u0026quot;, \u0026quot;value\u0026quot;: 1000 }, { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:15:00Z\u0026quot;, \u0026quot;values\u0026quot;: 1000 } ] } } }\">\u003cmeta data-mint-head name=\"application-name\" content=\"terralayr\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Gets a selection of operational data of a virtual-asset as a timeseries. - terralayr\">\u003cmeta data-mint-head property=\"og:description\" content=\"Gets a selection of operational data of a virtual-asset as a timeseries. Returns a JSON representation of the selected operational data and its metadata at 15 minute granularity. The user selects the relevant categories of operational data through the query parameter categories, which is a comma separated list. E.g. categories=energyCapacityAvailable,energyCapacityRated The following categories are available: chargeEfficiency: The one-way efficiency of the virtual asset\u0026#x27;s charging operation as a ratio, e.g. 0.95. dischargeEfficiency: The one-way efficiency of the virtual asset\u0026#x27;s discharging operation as a ratio, e.g. 0.95. energyCapacityRated: The rated energy capacity of the virtual asset in kWh, e.g. 8000.0. energyCapacityAvailable: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. 8000.0. powerCapacityChargeRated: The rated charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityChargeAvailable: The available charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeRated: The rated discharge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeAvailable: The available discharge power capacity of the virtual asset in kW, e.g. 8000.0. maximumDeliverablePower: The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge. minimumDeliverablePower: The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge. The range [minimumDeliverablePower, maximumDeliverablePower] represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range [minimumDeliverablePower, maximumDeliverablePower] updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied. These values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period. stateOfChargeBoundsUpper: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. 0.9 if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsUpper divided by energyCapacityAvailable. stateOfChargeBoundsLower: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. 0.1 if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsLower divided by energyCapacityAvailable. stateOfChargeProjection: The projected state of charge of the virtual asset as a ratio, e.g. 0.50 for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyProjection divided by energyCapacityAvailable. stateOfEnergyProjection: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. 8000.0. stateOfEnergy: The actual state of energy of the virtual asset, in kWh, e.g. 8000.0. stateOfEnergyBoundsUpper: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. 7200.0 if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsUpper multiplied by availableEnergyCapacity. stateOfEnergyBoundsLower: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. 800.0 if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsLower multiplied by availableEnergyCapacity. fcrReserveCharge: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveCharge is 900 kWh, you would expect stateOfEnergyBoundsUpper to be no higher than 9100 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. fcrReserveDischarge: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveDischarge is 900 kWh, you would expect stateOfEnergyBoundsLower to be no lower than 900 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. stateOfCharge: The state of energy of the virtual-asset as a fraction of available energy capacity energyCapacityAvailable as a ratio, e.g. 0.10 for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh. frozenEnergy: The frozen energy of the virtual asset in kWh, e.g. 500.0. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability. frozenEnergyProjection: The projected frozen energy of the virtual asset in kWh, e.g. 500.0. energyCharged: The sum total of charged energy of the virtual asset in kWh, e.g. 100.0. energyDischarged: The sum total of discharged energy of the virtual asset in kWh, e.g. 100.0. cyclesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. 0.1. afrrPosCapacityAvailable: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrPosCapacityAvailableMinusFcr: The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable). This value may be reduced during periods of unavailability. afrrPosCapacityRated: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrNegCapacityAvailable: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrNegCapacityAvailableMinusFcr: The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable). This value may be reduced during periods of unavailability. afrrNegCapacityRated: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrActivation: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. 2000.0. afrrPosActivation: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. 3000.0. afrrNegActivation: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. -1000.0. fcrCapacityAvailable: The maximum available power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. fcrCapacityRated: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. fcrActivation: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. 1000.0. maxTotalAncillaryCapacityChargeAvailable: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityChargeRated: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability. maxTotalAncillaryCapacityDischargeAvailable: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityDischargeRated: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability. fcrCommitment: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrPosCommitment: The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrNegCommitment: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. wholesalePowerCapacityChargeAvailable: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability. wholesalePowerCapacityDischargeAvailable: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability. marketableCapacityAFRRPos: DEPRECATED. Please use the new category name instead: afrrPosCapacityAvailable. marketableCapacityAFRRNeg: DEPRECATED. Please use the new category name instead: afrrNegCapacityAvailable. marketableCapacityFCR: DEPRECATED. Please use the new category name instead: fcrCapacityAvailable. Along with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint. Note that it is required to provide start and end params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of 2025-06-17T00:00:00Z and an end of 2025-06-17T00:30:00Z would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00. An example response would be: json { \u0026quot;data\u0026quot;: { \u0026quot;dischargeEfficiency\u0026quot;: { \u0026quot;metaData\u0026quot;: { \u0026quot;unit\u0026quot;: \u0026quot;ratio\u0026quot; }, \u0026quot;dataPoints\u0026quot;: [ { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:00:00Z\u0026quot;, \u0026quot;value\u0026quot;: 0.95 }, { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:15:00Z\u0026quot;, \u0026quot;values\u0026quot;: 0.95 } ] }, \u0026quot;marketableCapacityAFRRPos\u0026quot;: { \u0026quot;metaData\u0026quot;: { \u0026quot;unit\u0026quot;: \u0026quot;kW\u0026quot; }, \u0026quot;dataPoints\u0026quot;: [ { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:00:00Z\u0026quot;, \u0026quot;value\u0026quot;: 1000 }, { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:15:00Z\u0026quot;, \u0026quot;values\u0026quot;: 1000 } ] }, \u0026quot;marketableCapacityFCR\u0026quot;: { \u0026quot;metaData\u0026quot;: { \u0026quot;unit\u0026quot;: \u0026quot;kW\u0026quot; }, \u0026quot;dataPoints\u0026quot;: [ { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:00:00Z\u0026quot;, \u0026quot;value\u0026quot;: 1000 }, { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:15:00Z\u0026quot;, \u0026quot;values\u0026quot;: 1000 } ] } } }\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"terralayr\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://terralayr-90.mintlify.app/_mintlify/api/og/v2?division=virtual-assets\u0026amp;title=Gets+a+selection+of+operational+data+of+a+virtual-asset+as+a+timeseries.\u0026amp;description=Gets+a+selection+of+operational+data+of+a+virtual-asset+as+a+timeseries.%0A%0AReturns+a+JSON+representation+of+the+selected+operational+data+and+its+metadata+at+15+\u0026amp;theme=6829ac6d8fb6a04cc851f81c\u0026amp;signature=333fcc83884f08be85d484f2811338eee5b2e56215a860d72feb7284e15c4e68\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Gets a selection of operational data of a virtual-asset as a timeseries. - terralayr\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Gets a selection of operational data of a virtual-asset as a timeseries. Returns a JSON representation of the selected operational data and its metadata at 15 minute granularity. The user selects the relevant categories of operational data through the query parameter categories, which is a comma separated list. E.g. categories=energyCapacityAvailable,energyCapacityRated The following categories are available: chargeEfficiency: The one-way efficiency of the virtual asset\u0026#x27;s charging operation as a ratio, e.g. 0.95. dischargeEfficiency: The one-way efficiency of the virtual asset\u0026#x27;s discharging operation as a ratio, e.g. 0.95. energyCapacityRated: The rated energy capacity of the virtual asset in kWh, e.g. 8000.0. energyCapacityAvailable: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. 8000.0. powerCapacityChargeRated: The rated charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityChargeAvailable: The available charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeRated: The rated discharge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeAvailable: The available discharge power capacity of the virtual asset in kW, e.g. 8000.0. maximumDeliverablePower: The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge. minimumDeliverablePower: The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge. The range [minimumDeliverablePower, maximumDeliverablePower] represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range [minimumDeliverablePower, maximumDeliverablePower] updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied. These values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period. stateOfChargeBoundsUpper: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. 0.9 if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsUpper divided by energyCapacityAvailable. stateOfChargeBoundsLower: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. 0.1 if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsLower divided by energyCapacityAvailable. stateOfChargeProjection: The projected state of charge of the virtual asset as a ratio, e.g. 0.50 for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyProjection divided by energyCapacityAvailable. stateOfEnergyProjection: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. 8000.0. stateOfEnergy: The actual state of energy of the virtual asset, in kWh, e.g. 8000.0. stateOfEnergyBoundsUpper: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. 7200.0 if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsUpper multiplied by availableEnergyCapacity. stateOfEnergyBoundsLower: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. 800.0 if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsLower multiplied by availableEnergyCapacity. fcrReserveCharge: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveCharge is 900 kWh, you would expect stateOfEnergyBoundsUpper to be no higher than 9100 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. fcrReserveDischarge: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveDischarge is 900 kWh, you would expect stateOfEnergyBoundsLower to be no lower than 900 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. stateOfCharge: The state of energy of the virtual-asset as a fraction of available energy capacity energyCapacityAvailable as a ratio, e.g. 0.10 for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh. frozenEnergy: The frozen energy of the virtual asset in kWh, e.g. 500.0. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability. frozenEnergyProjection: The projected frozen energy of the virtual asset in kWh, e.g. 500.0. energyCharged: The sum total of charged energy of the virtual asset in kWh, e.g. 100.0. energyDischarged: The sum total of discharged energy of the virtual asset in kWh, e.g. 100.0. cyclesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. 0.1. afrrPosCapacityAvailable: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrPosCapacityAvailableMinusFcr: The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable). This value may be reduced during periods of unavailability. afrrPosCapacityRated: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrNegCapacityAvailable: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrNegCapacityAvailableMinusFcr: The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable). This value may be reduced during periods of unavailability. afrrNegCapacityRated: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrActivation: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. 2000.0. afrrPosActivation: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. 3000.0. afrrNegActivation: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. -1000.0. fcrCapacityAvailable: The maximum available power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. fcrCapacityRated: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. fcrActivation: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. 1000.0. maxTotalAncillaryCapacityChargeAvailable: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityChargeRated: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability. maxTotalAncillaryCapacityDischargeAvailable: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityDischargeRated: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability. fcrCommitment: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrPosCommitment: The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrNegCommitment: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. wholesalePowerCapacityChargeAvailable: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability. wholesalePowerCapacityDischargeAvailable: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability. marketableCapacityAFRRPos: DEPRECATED. Please use the new category name instead: afrrPosCapacityAvailable. marketableCapacityAFRRNeg: DEPRECATED. Please use the new category name instead: afrrNegCapacityAvailable. marketableCapacityFCR: DEPRECATED. Please use the new category name instead: fcrCapacityAvailable. Along with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint. Note that it is required to provide start and end params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of 2025-06-17T00:00:00Z and an end of 2025-06-17T00:30:00Z would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00. An example response would be: json { \u0026quot;data\u0026quot;: { \u0026quot;dischargeEfficiency\u0026quot;: { \u0026quot;metaData\u0026quot;: { \u0026quot;unit\u0026quot;: \u0026quot;ratio\u0026quot; }, \u0026quot;dataPoints\u0026quot;: [ { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:00:00Z\u0026quot;, \u0026quot;value\u0026quot;: 0.95 }, { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:15:00Z\u0026quot;, \u0026quot;values\u0026quot;: 0.95 } ] }, \u0026quot;marketableCapacityAFRRPos\u0026quot;: { \u0026quot;metaData\u0026quot;: { \u0026quot;unit\u0026quot;: \u0026quot;kW\u0026quot; }, \u0026quot;dataPoints\u0026quot;: [ { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:00:00Z\u0026quot;, \u0026quot;value\u0026quot;: 1000 }, { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:15:00Z\u0026quot;, \u0026quot;values\u0026quot;: 1000 } ] }, \u0026quot;marketableCapacityFCR\u0026quot;: { \u0026quot;metaData\u0026quot;: { \u0026quot;unit\u0026quot;: \u0026quot;kW\u0026quot; }, \u0026quot;dataPoints\u0026quot;: [ { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:00:00Z\u0026quot;, \u0026quot;value\u0026quot;: 1000 }, { \u0026quot;timestamp\u0026quot;: \u0026quot;2025-07-11T22:15:00Z\u0026quot;, \u0026quot;values\u0026quot;: 1000 } ] } } }\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://terralayr-90.mintlify.app/_mintlify/api/og/v2?division=virtual-assets\u0026amp;title=Gets+a+selection+of+operational+data+of+a+virtual-asset+as+a+timeseries.\u0026amp;description=Gets+a+selection+of+operational+data+of+a+virtual-asset+as+a+timeseries.%0A%0AReturns+a+JSON+representation+of+the+selected+operational+data+and+its+metadata+at+15+\u0026amp;theme=6829ac6d8fb6a04cc851f81c\u0026amp;signature=333fcc83884f08be85d484f2811338eee5b2e56215a860d72feb7284e15c4e68\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/terralayr-90/QAqKhv9VYa2PiyeN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"terralayr\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#13151A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.trlyr.com/#organization\",\"name\":\"terralayr\",\"url\":\"https://docs.trlyr.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/terralayr-90/i2mowZXsRr_Wp7MC/logo/terralayrDark.svg?fit=max\u0026auto=format\u0026n=i2mowZXsRr_Wp7MC\u0026q=85\u0026s=eb99311be47192737889489eb393e3d4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.trlyr.com#website\",\"name\":\"terralayr\",\"url\":\"https://docs.trlyr.com\",\"publisher\":{\"@id\":\"https://docs.trlyr.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries#webpage\",\"url\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries\",\"name\":\"Gets a selection of operational data of a virtual-asset as a timeseries.\",\"description\":\"Gets a selection of operational data of a virtual-asset as a timeseries. Returns a JSON representation of the selected operational data and its metadata at 15 minute granularity. The user selects the relevant categories of operational data through the query parameter categories, which is a comma separated list. E.g. categories=energyCapacityAvailable,energyCapacityRated The following categories are available: chargeEfficiency: The one-way efficiency of the virtual asset's charging operation as a ratio, e.g. 0.95. dischargeEfficiency: The one-way efficiency of the virtual asset's discharging operation as a ratio, e.g. 0.95. energyCapacityRated: The rated energy capacity of the virtual asset in kWh, e.g. 8000.0. energyCapacityAvailable: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. 8000.0. powerCapacityChargeRated: The rated charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityChargeAvailable: The available charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeRated: The rated discharge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeAvailable: The available discharge power capacity of the virtual asset in kW, e.g. 8000.0. maximumDeliverablePower: The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge. minimumDeliverablePower: The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge. The range [minimumDeliverablePower, maximumDeliverablePower] represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range [minimumDeliverablePower, maximumDeliverablePower] updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied. These values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period. stateOfChargeBoundsUpper: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. 0.9 if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsUpper divided by energyCapacityAvailable. stateOfChargeBoundsLower: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. 0.1 if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsLower divided by energyCapacityAvailable. stateOfChargeProjection: The projected state of charge of the virtual asset as a ratio, e.g. 0.50 for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyProjection divided by energyCapacityAvailable. stateOfEnergyProjection: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. 8000.0. stateOfEnergy: The actual state of energy of the virtual asset, in kWh, e.g. 8000.0. stateOfEnergyBoundsUpper: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. 7200.0 if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsUpper multiplied by availableEnergyCapacity. stateOfEnergyBoundsLower: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. 800.0 if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsLower multiplied by availableEnergyCapacity. fcrReserveCharge: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveCharge is 900 kWh, you would expect stateOfEnergyBoundsUpper to be no higher than 9100 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. fcrReserveDischarge: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveDischarge is 900 kWh, you would expect stateOfEnergyBoundsLower to be no lower than 900 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. stateOfCharge: The state of energy of the virtual-asset as a fraction of available energy capacity energyCapacityAvailable as a ratio, e.g. 0.10 for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh. frozenEnergy: The frozen energy of the virtual asset in kWh, e.g. 500.0. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability. frozenEnergyProjection: The projected frozen energy of the virtual asset in kWh, e.g. 500.0. energyCharged: The sum total of charged energy of the virtual asset in kWh, e.g. 100.0. energyDischarged: The sum total of discharged energy of the virtual asset in kWh, e.g. 100.0. cyclesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. 0.1. afrrPosCapacityAvailable: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrPosCapacityAvailableMinusFcr: The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable). This value may be reduced during periods of unavailability. afrrPosCapacityRated: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrNegCapacityAvailable: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrNegCapacityAvailableMinusFcr: The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable). This value may be reduced during periods of unavailability. afrrNegCapacityRated: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrActivation: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. 2000.0. afrrPosActivation: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. 3000.0. afrrNegActivation: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. -1000.0. fcrCapacityAvailable: The maximum available power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. fcrCapacityRated: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. fcrActivation: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. 1000.0. maxTotalAncillaryCapacityChargeAvailable: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityChargeRated: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability. maxTotalAncillaryCapacityDischargeAvailable: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityDischargeRated: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability. fcrCommitment: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrPosCommitment: The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrNegCommitment: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. wholesalePowerCapacityChargeAvailable: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability. wholesalePowerCapacityDischargeAvailable: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability. marketableCapacityAFRRPos: DEPRECATED. Please use the new category name instead: afrrPosCapacityAvailable. marketableCapacityAFRRNeg: DEPRECATED. Please use the new category name instead: afrrNegCapacityAvailable. marketableCapacityFCR: DEPRECATED. Please use the new category name instead: fcrCapacityAvailable. Along with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint. Note that it is required to provide start and end params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of 2025-06-17T00:00:00Z and an end of 2025-06-17T00:30:00Z would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00. An example response would be: json { \\\"data\\\": { \\\"dischargeEfficiency\\\": { \\\"metaData\\\": { \\\"unit\\\": \\\"ratio\\\" }, \\\"dataPoints\\\": [ { \\\"timestamp\\\": \\\"2025-07-11T22:00:00Z\\\", \\\"value\\\": 0.95 }, { \\\"timestamp\\\": \\\"2025-07-11T22:15:00Z\\\", \\\"values\\\": 0.95 } ] }, \\\"marketableCapacityAFRRPos\\\": { \\\"metaData\\\": { \\\"unit\\\": \\\"kW\\\" }, \\\"dataPoints\\\": [ { \\\"timestamp\\\": \\\"2025-07-11T22:00:00Z\\\", \\\"value\\\": 1000 }, { \\\"timestamp\\\": \\\"2025-07-11T22:15:00Z\\\", \\\"values\\\": 1000 } ] }, \\\"marketableCapacityFCR\\\": { \\\"metaData\\\": { \\\"unit\\\": \\\"kW\\\" }, \\\"dataPoints\\\": [ { \\\"timestamp\\\": \\\"2025-07-11T22:00:00Z\\\", \\\"value\\\": 1000 }, { \\\"timestamp\\\": \\\"2025-07-11T22:15:00Z\\\", \\\"values\\\": 1000 } ] } } }\",\"isPartOf\":{\"@id\":\"https://docs.trlyr.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Virtual Assets API\",\"item\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/get-all-the-virtual-assets-belonging-to-an-organisation\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"virtual-assets\",\"item\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/get-all-the-virtual-assets-belonging-to-an-organisation\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Gets a selection of operational data of a virtual-asset as a timeseries.\",\"item\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries#apireference\",\"headline\":\"Gets a selection of operational data of a virtual-asset as a timeseries.\",\"name\":\"Gets a selection of operational data of a virtual-asset as a timeseries.\",\"description\":\"Gets a selection of operational data of a virtual-asset as a timeseries. Returns a JSON representation of the selected operational data and its metadata at 15 minute granularity. The user selects the relevant categories of operational data through the query parameter categories, which is a comma separated list. E.g. categories=energyCapacityAvailable,energyCapacityRated The following categories are available: chargeEfficiency: The one-way efficiency of the virtual asset's charging operation as a ratio, e.g. 0.95. dischargeEfficiency: The one-way efficiency of the virtual asset's discharging operation as a ratio, e.g. 0.95. energyCapacityRated: The rated energy capacity of the virtual asset in kWh, e.g. 8000.0. energyCapacityAvailable: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. 8000.0. powerCapacityChargeRated: The rated charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityChargeAvailable: The available charge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeRated: The rated discharge power capacity of the virtual asset in kW, e.g. 8000.0. powerCapacityDischargeAvailable: The available discharge power capacity of the virtual asset in kW, e.g. 8000.0. maximumDeliverablePower: The upper bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be negative if the asset is in a state where it must undertake a wholesale charge. minimumDeliverablePower: The lower bound on signed power in kW that the virtual asset may schedule in wholesale for the relevant delivery period, subject to relevant limits e.g. 5000.0. This is a signed power value which can be positive if the asset is in a state where it must undertake a wholesale discharge. The range [minimumDeliverablePower, maximumDeliverablePower] represents the range of values for the wholesale schedule which pass all validations at the time of the query. Note the range [minimumDeliverablePower, maximumDeliverablePower] updates in real time based on live data, such as ancillary activations, and therefore it is not guaranteed that no adjustments will be applied. These values are calculated only for the upcoming wholsesale delivery period. For example, if polled at 15:50 then values with time 16:00 will be returned, representing the most up-to-date limits for the [16:00, 16:15] delivery period. stateOfChargeBoundsUpper: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. 0.9 if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsUpper divided by energyCapacityAvailable. stateOfChargeBoundsLower: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. 0.1 if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyBoundsLower divided by energyCapacityAvailable. stateOfChargeProjection: The projected state of charge of the virtual asset as a ratio, e.g. 0.50 for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal stateOfEnergyProjection divided by energyCapacityAvailable. stateOfEnergyProjection: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. 8000.0. stateOfEnergy: The actual state of energy of the virtual asset, in kWh, e.g. 8000.0. stateOfEnergyBoundsUpper: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. 7200.0 if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsUpper multiplied by availableEnergyCapacity. stateOfEnergyBoundsLower: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. 800.0 if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals stateOfChargeBoundsLower multiplied by availableEnergyCapacity. fcrReserveCharge: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveCharge is 900 kWh, you would expect stateOfEnergyBoundsUpper to be no higher than 9100 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. fcrReserveDischarge: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. 900.0. For example, on a 10000 kWh asset where fcrReserveDischarge is 900 kWh, you would expect stateOfEnergyBoundsLower to be no lower than 900 kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions. stateOfCharge: The state of energy of the virtual-asset as a fraction of available energy capacity energyCapacityAvailable as a ratio, e.g. 0.10 for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh. frozenEnergy: The frozen energy of the virtual asset in kWh, e.g. 500.0. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability. frozenEnergyProjection: The projected frozen energy of the virtual asset in kWh, e.g. 500.0. energyCharged: The sum total of charged energy of the virtual asset in kWh, e.g. 100.0. energyDischarged: The sum total of discharged energy of the virtual asset in kWh, e.g. 100.0. cyclesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the rated energy capacity of the virtual asset, e.g. 0.1. cyclesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the rated energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesWholesale: The sum total of discharged energy of the virtual asset in the wholesale market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesFCR: The sum total of discharged energy of the virtual asset in the FCR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesAFRR: The sum total of discharged energy of the virtual asset in the aFRR market divided by the available energy capacity of the virtual asset, e.g. 0.1. availableEnergyDischargesTotal: The sum total of discharged energy of the virtual asset in all markets divided by the available energy capacity of the virtual asset, e.g. 0.1. afrrPosCapacityAvailable: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrPosCapacityAvailableMinusFcr: The maximum available discharge power which can be bid into positive aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrPosCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityDischargeAvailable - fcrCommitment), afrrPosCapacityAvailable). This value may be reduced during periods of unavailability. afrrPosCapacityRated: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrNegCapacityAvailable: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. afrrNegCapacityAvailableMinusFcr: The maximum available charge power which can be bid into negative aFRR market products in kW, while taking into account FCR commitments and maxTotalCapacity validation, e.g. 1000.0. The value is calculated according to the following formula: afrrNegCapacityAvailableMinusFcr = minimum((maxTotalAncillaryCapacityChargeAvailable - fcrCommitment), afrrNegCapacityAvailable). This value may be reduced during periods of unavailability. afrrNegCapacityRated: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. afrrActivation: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. 2000.0. afrrPosActivation: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR Pos ancillary market in kW, e.g. 3000.0. afrrNegActivation: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR Neg ancillary market in kW, e.g. -1000.0. fcrCapacityAvailable: The maximum available power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value may be reduced during periods of unavailability. fcrCapacityRated: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. 7000.0. This value remains unchanged during periods of unavailability. fcrActivation: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. 1000.0. maxTotalAncillaryCapacityChargeAvailable: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityChargeRated: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability. maxTotalAncillaryCapacityDischargeAvailable: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. 8000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability. maxTotalAncillaryCapacityDischargeRated: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. 10000.0. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability. fcrCommitment: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrPosCommitment: The committed aFRR Pos (discharge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. afrrNegCommitment: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. 5000.0. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability. wholesalePowerCapacityChargeAvailable: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability. wholesalePowerCapacityDischargeAvailable: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. 5000.0. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability. marketableCapacityAFRRPos: DEPRECATED. Please use the new category name instead: afrrPosCapacityAvailable. marketableCapacityAFRRNeg: DEPRECATED. Please use the new category name instead: afrrNegCapacityAvailable. marketableCapacityFCR: DEPRECATED. Please use the new category name instead: fcrCapacityAvailable. Along with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint. Note that it is required to provide start and end params to specify the time interval for which to retrieve values. This range is greedy, in that it will match any timeseries point included in its range, including on the boundaries. e.g., setting a start of 2025-06-17T00:00:00Z and an end of 2025-06-17T00:30:00Z would return the points at 00:00:00, 00:15:00, and 00:30:00 which collectively cover a period from 00:00:00 to 00:45:00. An example response would be: json { \\\"data\\\": { \\\"dischargeEfficiency\\\": { \\\"metaData\\\": { \\\"unit\\\": \\\"ratio\\\" }, \\\"dataPoints\\\": [ { \\\"timestamp\\\": \\\"2025-07-11T22:00:00Z\\\", \\\"value\\\": 0.95 }, { \\\"timestamp\\\": \\\"2025-07-11T22:15:00Z\\\", \\\"values\\\": 0.95 } ] }, \\\"marketableCapacityAFRRPos\\\": { \\\"metaData\\\": { \\\"unit\\\": \\\"kW\\\" }, \\\"dataPoints\\\": [ { \\\"timestamp\\\": \\\"2025-07-11T22:00:00Z\\\", \\\"value\\\": 1000 }, { \\\"timestamp\\\": \\\"2025-07-11T22:15:00Z\\\", \\\"values\\\": 1000 } ] }, \\\"marketableCapacityFCR\\\": { \\\"metaData\\\": { \\\"unit\\\": \\\"kW\\\" }, \\\"dataPoints\\\": [ { \\\"timestamp\\\": \\\"2025-07-11T22:00:00Z\\\", \\\"value\\\": 1000 }, { \\\"timestamp\\\": \\\"2025-07-11T22:15:00Z\\\", \\\"values\\\": 1000 } ] } } }\",\"url\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries\",\"mainEntityOfPage\":{\"@id\":\"https://docs.trlyr.com/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries#webpage\"},\"publisher\":{\"@id\":\"https://docs.trlyr.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.trlyr.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"terralayr\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"terralayr","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Layr User Guide","pages":[{"title":"Layr User Guide","href":"/layrUserGuide/introduction"}]},{"tab":"API Reference","groups":[{"group":"API documentation","pages":[{"title":"terralayr API","href":"/trlyr-API/introduction"}]},{"group":"Auth API","pages":[{"group":"auth","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/auth/docs/doc.json get /auth/healthcheck","href":"/auth-api-reference/auth/health-check"},{"title":"Authenticate with username and password","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/auth/docs/doc.json post /auth/public/authenticate","href":"/auth-api-reference/auth/authenticate-with-username-and-password"}]}]},{"group":"Virtual Assets API","pages":[{"group":"virtual-assets","pages":[{"title":"Get all the virtual assets belonging to an organisation.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets","href":"/virtual-assets-api-reference/virtual-assets/get-all-the-virtual-assets-belonging-to-an-organisation"},{"title":"Get a virtual asset.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}","href":"/virtual-assets-api-reference/virtual-assets/get-a-virtual-asset"},{"title":"Gets schedule adjustments for a virtual asset within a time range.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments","href":"/virtual-assets-api-reference/virtual-assets/gets-schedule-adjustments-for-a-virtual-asset-within-a-time-range"},{"title":"Get the usable energy-capacity of a virtual-asset as a timeseries.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/energy-capacity","href":"/virtual-assets-api-reference/virtual-assets/get-the-usable-energy-capacity-of-a-virtual-asset-as-a-timeseries"},{"title":"Get the most recent usable energy-capacity of a virtual-asset.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/energy-capacity/latest","href":"/virtual-assets-api-reference/virtual-assets/get-the-most-recent-usable-energy-capacity-of-a-virtual-asset"},{"title":"List audit events for a virtual asset","description":null,"deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/events","href":"/virtual-assets-api-reference/virtual-assets/list-audit-events-for-a-virtual-asset"},{"title":"Gets a selection of operational data of a virtual-asset as a timeseries.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/operational","href":"/virtual-assets-api-reference/virtual-assets/gets-a-selection-of-operational-data-of-a-virtual-asset-as-a-timeseries"},{"title":"Gets the most recent operational data values for a virtual-asset.","description":"Gets the most recent operational data values for a virtual-asset.\n\nReturns a JSON representation of the selected operational data and its metadata for the current 15-minute block window.\n\nThe user selects the relevant categories of operational data through the query parameter `categories`, which is a comma separated list. E.g. `categories=energyCapacityAvailable,energyCapacityRated`\nThe following categories are available:\n\n`chargeEfficiency`: The one-way efficiency of the virtual asset's charging operation as a ratio, e.g. `0.95`.\n\n`dischargeEfficiency`: The one-way efficiency of the virtual asset's discharging operation as a ratio, e.g. `0.95`.\n\n`energyCapacityRated`: The rated energy capacity of the virtual asset in kWh, e.g. `8000.0`.\n\n`energyCapacityAvailable`: The available energy capacity of the virtual asset in kWh at the given timestamp, e.g. `8000.0`.\n\n`powerCapacityChargeRated`: The rated charge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityChargeAvailable`: The available charge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityDischargeRated`: The rated discharge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`powerCapacityDischargeAvailable`: The available discharge power capacity of the virtual asset in kW, e.g. `8000.0`.\n\n`maximumDeliverablePower`: The upper bound on signed power in kW that the virtual asset may schedule for the relevant wholesale delivery period, subject to relevant limits e.g. `5000.0`. Note that this value can be negative if the asset is in a state where it must charge, e.g. to respect ancillary market flexibility reserves.\n\n`minimumDeliverablePower`: The lower bound on signed power in kW that the virtual asset may schedule for the relevant wholesale delivery period, subject to relevant limits e.g. `-5000.0`. Note that this value can be positive if the asset is in a state where it must discharge, e.g. to respect ancillary market flexibility reserves.\n\n`stateOfChargeBoundsUpper`: The upper boundary of the state of charge of the virtual asset as a ratio, e.g. `0.9` if the virtual-asset is not allowed to be charged beyond 90%. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyBoundsUpper` divided by `energyCapacityAvailable`.\n\n`stateOfChargeBoundsLower`: The lower boundary of the state of charge of the virtual asset as a ratio, e.g. `0.1` if the virtual-asset is not allowed to be discharged below 10%. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyBoundsLower` divided by `energyCapacityAvailable`.\n\n`stateOfChargeProjection`: The projected state of charge of the virtual asset as a ratio, e.g. `0.50` for an asset projected to be at 50% state-of-charge. This is measured relative to the currently available energy capacity, and thus should always equal `stateOfEnergyProjection` divided by `energyCapacityAvailable`.\n\n`stateOfEnergyProjection`: The projected state of energy of the virtual asset, based on its initial/current state of charge and schedule in kWh, e.g. `8000.0`.\n\n`stateOfEnergy`: The actual state of energy of the virtual asset, in kWh, e.g. `8000.0`.\n\n`stateOfEnergyBoundsUpper`: The allowed upper boundary of the state of energy of the virtual asset in kWh, e.g. `7200.0` if the virtual-asset is not allowed to be charged beyond 7200 kWh. This is inclusive of required charge flexibility reserves for FCR, but may include other constraints on the asset. This value equals `stateOfChargeBoundsUpper` multiplied by `availableEnergyCapacity`.\n\n`stateOfEnergyBoundsLower`: The allowed lower boundary of the state of energy of the virtual asset in kWh, e.g. `800.0` if the virtual-asset is not allowed to discharged below 800 kWh. inclusive of required discharge flexibility reserves for FCR, but may include other constraints on the asset. This value equals `stateOfChargeBoundsLower` multiplied by `availableEnergyCapacity`.\n\n`fcrReserveCharge`: The energy reserved at the upper state of energy boundary in kWh so that the virtual asset can charge to deliver its FCR commitment, e.g. `900.0`. For example, on a `10000` kWh asset where `fcrReserveCharge` is `900` kWh, you would expect `stateOfEnergyBoundsUpper` to be no higher than `9100` kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\n\n`fcrReserveDischarge`: The energy reserved at the lower state of energy boundary in kWh so that the virtual asset can discharge to deliver its FCR commitment, e.g. `900.0`. For example, on a `10000` kWh asset where `fcrReserveDischarge` is `900` kWh, you would expect `stateOfEnergyBoundsLower` to be no lower than `900` kWh. The overall boundary can be inclusive of other constraints, such as hardware restrictions.\n\n`stateOfCharge`: The state of energy of the virtual-asset as a fraction of available energy capacity `energyCapacityAvailable` as a ratio, e.g. `0.10` for a virtual-asset with 1000 kWh of available capacity at a state of energy of 100 kWh.\n\n`frozenEnergy`: The frozen energy of the virtual asset in kWh, e.g. `500.0`. This is energy that is not dispatchable due to an unavailability and is expected to be restored upon the end of that unavailability.\n\n`frozenEnergyProjection`: The projected frozen energy of the virtual asset in kWh, e.g. `500.0`.\n\n`energyCharged`: The sum total of charged energy of the virtual asset in kWh, e.g. `100.0`.\n\n`energyDischarged`: The sum total of discharged energy of the virtual asset in kWh, e.g. `100.0`.\n\n`afrrPosCapacityAvailable`: The maximum available discharge power which can be bid into positive aFRR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`afrrPosCapacityRated`: The maximum rated discharge power which can be bid into positive aFRR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`afrrNegCapacityAvailable`: The maximum available charge power which can be bid into negative aFRR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`afrrNegCapacityRated`: The maximum rated charge power which can be bid into negative aFRR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`afrrActivation`: The sum total of activated positive/discharge and negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. `2000.0`.\n\n`afrrPosActivation`: The sum total of activated positive/discharge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. `3000.0`.\n\n`afrrNegActivation`: The sum total of activated negative/charge power delivered by the virtual asset in the aFRR ancillary market in kW, e.g. `-1000.0`.\n\n`fcrCapacityAvailable`: The maximum available power capacity which can be bid into FCR market products in kW, e.g. `7000.0`. This value may be reduced during periods of unavailability.\n\n`fcrCapacityRated`: The maximum rated power capacity which can be bid into FCR market products in kW, e.g. `7000.0`. This value remains unchanged during periods of unavailability.\n\n`fcrActivation`: The sum total of activated power delivered by the virtual asset in the FCR ancillary market in kW, e.g. `1000.0`.\n\n`maxTotalAncillaryCapacityChargeAvailable`: The maximum total sum of available charge (negative) power capacity that can be bid across markets in kW, e.g. `8000.0`. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value may be reduced during periods of unavailability.\n\n`maxTotalAncillaryCapacityChargeRated`: The maximum total sum of rated charge (negative) power capacity that can be bid across markets in kW, e.g. `10000.0`. This includes all bids with a negative bid direction (FCR and aFRR Neg). This value remains unchanged during periods of unavailability.\n\n`maxTotalAncillaryCapacityDischargeAvailable`: The maximum total sum of available discharge (positive) power capacity that can be bid across markets in kW, e.g. `8000.0`. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value may be reduced during periods of unavailability.\n\n`maxTotalAncillaryCapacityDischargeRated`: The maximum total sum of rated discharge (positive) power capacity that can be bid across markets in kW, e.g. `10000.0`. This includes all bids with a positive bid direction (FCR and aFRR Pos). This value remains unchanged during periods of unavailability.\n\n`fcrCommitment`: The committed FCR capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the FCR auction results are released this reflects the total power capacity bid into FCR; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`afrrPosCommitment`: The committed aFRR Pos discharge capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Pos; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`afrrNegCommitment`: The committed aFRR Neg (charge) capacity of the virtual asset for the latest delivery period in kW, e.g. `5000.0`. Before the aFRR auction results are released this reflects the total power capacity bid into aFRR Neg; once the auction clears it reflects the active commitment that has to be delivered. This value may be reduced during periods of unavailability.\n\n`wholesalePowerCapacityChargeAvailable`: The charge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. `5000.0`. Reduced by pending and accepted FCR and aFRR Neg ancillary commitments. This value may change during periods of unavailability.\n\n`wholesalePowerCapacityDischargeAvailable`: The discharge power capacity of the virtual asset which is available for wholesale trading in kW, e.g. `5000.0`. Reduced by pending and accepted FCR and aFRR Pos ancillary commitments. This value may change during periods of unavailability.\n\n`marketableCapacityAFRRPos`: DEPRECATED. Please use the new category name instead: `afrrPosCapacityAvailable`.\n\n`marketableCapacityAFRRNeg`: DEPRECATED. Please use the new category name instead: `afrrNegCapacityAvailable`.\n\n`marketableCapacityFCR`: DEPRECATED. Please use the new category name instead: `fcrCapacityAvailable`.\n\nAlong with the selected operational data, a metadata object is returned which provides the unit for the selected datapoint.\n\nThis endpoint automatically calculates the current 15-minute block window based on the current time. The block window is determined by truncating the current time to the nearest 15-minute boundary. For example, if the current time is `2025-07-11T22:07:30Z`, the endpoint will return data for the block window starting at `2025-07-11T22:00:00Z` and ending at `2025-07-11T22:15:00Z`.\n\nUnlike the regular operational data endpoint, this endpoint does not require `start` and `end` parameters as it automatically uses the current block window.\n\nAn example response would be:\n\n```json\n{\n \"data\": {\n \"dischargeEfficiency\": {\n \"metaData\": {\n \"unit\": \"ratio\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 0.95\n }\n ]\n },\n \"marketableCapacityAFRRPos\": {\n \"metaData\": {\n \"unit\": \"kW\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 1000\n }\n ]\n },\n \"marketableCapacityFCR\": {\n \"metaData\": {\n \"unit\": \"kW\"\n },\n \"dataPoints\": [\n {\n \"timestamp\": \"2025-07-11T22:00:00Z\",\n \"value\": 1000\n }\n ]\n }\n }\n}\n```\n","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/operational/latest","href":"/virtual-assets-api-reference/virtual-assets/gets-the-most-recent-operational-data-values-for-a-virtual-asset"},{"title":"Get the projected state of charge of a virtual asset.","deprecated":true,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/state-of-charge","href":"/virtual-assets-api-reference/virtual-assets/get-the-projected-state-of-charge-of-a-virtual-asset"},{"title":"Get the latest state of charge of a virtual asset.","deprecated":true,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/state-of-charge/latest","href":"/virtual-assets-api-reference/virtual-assets/get-the-latest-state-of-charge-of-a-virtual-asset"},{"title":"Get the projected state of charge of a virtual asset.","deprecated":true,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/state-of-charge/projected","href":"/virtual-assets-api-reference/virtual-assets/get-the-projected-state-of-charge-of-a-virtual-asset-1"},{"title":"Get the latest state of energy of a virtual asset.","deprecated":true,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/state-of-energy/latest","href":"/virtual-assets-api-reference/virtual-assets/get-the-latest-state-of-energy-of-a-virtual-asset"},{"title":"Get the projected state of energy of a virtual asset.","deprecated":true,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/state-of-energy/projected","href":"/virtual-assets-api-reference/virtual-assets/get-the-projected-state-of-energy-of-a-virtual-asset"}]},{"group":"afrr","pages":[{"title":"Get all aFRR bids for a given virtual asset and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/afrr/bids","href":"/virtual-assets-api-reference/afrr/get-all-afrr-bids-for-a-given-virtual-asset-and-delivery-day"},{"title":"Creates aFRR bids for a given virtual asset.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json post /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/afrr/bids","href":"/virtual-assets-api-reference/afrr/creates-afrr-bids-for-a-given-virtual-asset"},{"title":"Get aFRR bids for a given virtual asset, product and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/afrr/bids/{productDateCode}","href":"/virtual-assets-api-reference/afrr/get-afrr-bids-for-a-given-virtual-asset-product-and-delivery-day"},{"title":"Update aFRR bids for a single product and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json put /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/afrr/bids/{productDateCode}","href":"/virtual-assets-api-reference/afrr/update-afrr-bids-for-a-single-product-and-delivery-day"},{"title":"Get all aFRR results for a given virtual asset and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/afrr/results","href":"/virtual-assets-api-reference/afrr/get-all-afrr-results-for-a-given-virtual-asset-and-delivery-day"},{"title":"Gets aFRR results for a given virtual asset, product and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/afrr/results/{productDateCode}","href":"/virtual-assets-api-reference/afrr/gets-afrr-results-for-a-given-virtual-asset-product-and-delivery-day"}]},{"group":"ancillary","pages":[{"title":"Get all ancillary bids for a given virtual asset and interval.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/bids","href":"/virtual-assets-api-reference/ancillary/get-all-ancillary-bids-for-a-given-virtual-asset-and-interval"},{"title":"Post or update ancillary bids for a given virtual asset.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json post /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/bids","href":"/virtual-assets-api-reference/ancillary/post-or-update-ancillary-bids-for-a-given-virtual-asset"},{"title":"Get all ancillary results for a given virtual asset and interval.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/results","href":"/virtual-assets-api-reference/ancillary/get-all-ancillary-results-for-a-given-virtual-asset-and-interval"}]},{"group":"fcr","pages":[{"title":"Get all FCR bids for a given virtual asset and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/fcr/bids","href":"/virtual-assets-api-reference/fcr/get-all-fcr-bids-for-a-given-virtual-asset-and-delivery-day"},{"title":"Create FCR bids for a given virtual asset.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json post /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/fcr/bids","href":"/virtual-assets-api-reference/fcr/create-fcr-bids-for-a-given-virtual-asset"},{"title":"Get FCR bids for a given virtual asset, product and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/fcr/bids/{productDateCode}","href":"/virtual-assets-api-reference/fcr/get-fcr-bids-for-a-given-virtual-asset-product-and-delivery-day"},{"title":"Update FCR bids for a single product and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json put /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/fcr/bids/{productDateCode}","href":"/virtual-assets-api-reference/fcr/update-fcr-bids-for-a-single-product-and-delivery-day"},{"title":"Get all FCR results for a given virtual asset and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/fcr/results","href":"/virtual-assets-api-reference/fcr/get-all-fcr-results-for-a-given-virtual-asset-and-delivery-day"},{"title":"Gets FCR results for a given virtual asset, product and delivery day.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/ancillary/fcr/results/{productDateCode}","href":"/virtual-assets-api-reference/fcr/gets-fcr-results-for-a-given-virtual-asset-product-and-delivery-day"}]},{"group":"blocks","pages":[{"title":"Get all the blocks belonging to a virtual asset.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/blocks","href":"/virtual-assets-api-reference/blocks/get-all-the-blocks-belonging-to-a-virtual-asset"},{"title":"Get a block.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/blocks/{blockID}","href":"/virtual-assets-api-reference/blocks/get-a-block"},{"title":"Update the schedule of a block","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json put /organisations/{organisationID}/virtual-assets/{virtualAssetID}/blocks/{blockID}","href":"/virtual-assets-api-reference/blocks/update-the-schedule-of-a-block"},{"title":"Gets a selection of operational data of a block as a timeseries.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/blocks/{blockID}/operational","href":"/virtual-assets-api-reference/blocks/gets-a-selection-of-operational-data-of-a-block-as-a-timeseries"},{"title":"Gets the most recent operational data values for a block.","deprecated":null,"version":null,"openapi":"https://api.sandbox.trlyr.com/docs/doc.json get /organisations/{organisationID}/virtual-assets/{virtualAssetID}/blocks/{blockID}/operational/latest","href":"/virtual-assets-api-reference/blocks/gets-the-most-recent-operational-data-values-for-a-block"}]}]},{"group":"Auctions API","pages":[{"group":"auctions","pages":[{"title":"List auctions","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/auctions/docs/doc.json get /auctions","href":"/auctions-api-reference/auctions/list-auctions"},{"title":"Health check","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/auctions/docs/doc.json get /auctions/healthcheck","href":"/auctions-api-reference/auctions/health-check"},{"title":"Get an auction by ID","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/auctions/docs/doc.json get /auctions/{auctionID}","href":"/auctions-api-reference/auctions/get-an-auction-by-id"}]},{"group":"bids","pages":[{"title":"List your organisation's bids","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/auctions/docs/doc.json get /auctions/{auctionID}/bids","href":"/auctions-api-reference/bids/list-your-organisations-bids"},{"title":"Submit a bid","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/auctions/docs/doc.json post /auctions/{auctionID}/bids","href":"/auctions-api-reference/bids/submit-a-bid"}]}]},{"group":"Revenue Reporting API","pages":[{"group":"revenue","pages":[{"title":"Get aggregated revenue data points for a fleet","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/fleets/{fleetID}/datapoints","href":"/revenue-reporting-api-reference/revenue/get-aggregated-revenue-data-points-for-a-fleet"},{"title":"Health check","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/healthcheck","href":"/revenue-reporting-api-reference/revenue/health-check"},{"title":"Get fleet for an organisation","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/organisations/{organisationID}/fleet","href":"/revenue-reporting-api-reference/revenue/get-fleet-for-an-organisation"},{"title":"Get aggregated revenue data points for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/physical-assets/{physicalAssetID}/datapoints","href":"/revenue-reporting-api-reference/revenue/get-aggregated-revenue-data-points-for-a-physical-asset"},{"title":"Get aggregated revenue data points for a portfolio","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/portfolios/{portfolioID}/datapoints","href":"/revenue-reporting-api-reference/revenue/get-aggregated-revenue-data-points-for-a-portfolio"},{"title":"Get aggregated revenue data points for a virtual asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/virtual-assets/{virtualAssetID}/datapoints","href":"/revenue-reporting-api-reference/revenue/get-aggregated-revenue-data-points-for-a-virtual-asset"},{"title":"Get aFRR capacity revenue for a virtual asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/{virtualAssetID}/afrr-capacity","href":"/revenue-reporting-api-reference/revenue/get-afrr-capacity-revenue-for-a-virtual-asset"},{"title":"Get aFRR energy revenue for a virtual asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/{virtualAssetID}/afrr-energy","href":"/revenue-reporting-api-reference/revenue/get-afrr-energy-revenue-for-a-virtual-asset"},{"title":"Get FCR revenue for a virtual asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/{virtualAssetID}/fcr","href":"/revenue-reporting-api-reference/revenue/get-fcr-revenue-for-a-virtual-asset"},{"title":"Get tolling revenue for a virtual asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/{virtualAssetID}/tolling","href":"/revenue-reporting-api-reference/revenue/get-tolling-revenue-for-a-virtual-asset"},{"title":"Get virtual battery auction revenue for a virtual asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/{virtualAssetID}/vba","href":"/revenue-reporting-api-reference/revenue/get-virtual-battery-auction-revenue-for-a-virtual-asset"},{"title":"Get wholesale revenue for a virtual asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/revenue-reporting/docs/doc.json get /revenue-reporting/{virtualAssetID}/wholesale","href":"/revenue-reporting-api-reference/revenue/get-wholesale-revenue-for-a-virtual-asset"}]}]},{"group":"Physical Asset Management API","pages":[{"group":"physical-assets","pages":[{"title":"List physical assets","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets","href":"/physical-assets-api-reference/physical-assets/list-physical-assets"},{"title":"Create a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json post /physical-assets","href":"/physical-assets-api-reference/physical-assets/create-a-physical-asset"},{"title":"Get physical asset by ID","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}","href":"/physical-assets-api-reference/physical-assets/get-physical-asset-by-id"},{"title":"Update a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json patch /physical-assets/{physicalAssetID}","href":"/physical-assets-api-reference/physical-assets/update-a-physical-asset"},{"title":"List audit events for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/events","href":"/physical-assets-api-reference/physical-assets/list-audit-events-for-a-physical-asset"},{"title":"List unavailabilities for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/unavailability","href":"/physical-assets-api-reference/physical-assets/list-unavailabilities-for-a-physical-asset"},{"title":"Create an unavailability","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json post /physical-assets/{physicalAssetID}/unavailability","href":"/physical-assets-api-reference/physical-assets/create-an-unavailability"},{"title":"Get unavailability by ID","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/unavailability/{unavailabilityID}","href":"/physical-assets-api-reference/physical-assets/get-unavailability-by-id"},{"title":"Delete an unavailability","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json delete /physical-assets/{physicalAssetID}/unavailability/{unavailabilityID}","href":"/physical-assets-api-reference/physical-assets/delete-an-unavailability"},{"title":"Update an unavailability","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json patch /physical-assets/{physicalAssetID}/unavailability/{unavailabilityID}","href":"/physical-assets-api-reference/physical-assets/update-an-unavailability"}]},{"group":"health","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/healthcheck","href":"/physical-assets-api-reference/health/health-check"}]},{"group":"ancillary","pages":[{"title":"Get ancillary bids by delivery day","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/ancillary/bids","href":"/physical-assets-api-reference/ancillary/get-ancillary-bids-by-delivery-day"},{"title":"Submit ancillary bids","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json post /physical-assets/{physicalAssetID}/ancillary/bids","href":"/physical-assets-api-reference/ancillary/submit-ancillary-bids"},{"title":"Get ancillary bids without results by product keys","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/ancillary/bids-without-result","href":"/physical-assets-api-reference/ancillary/get-ancillary-bids-without-results-by-product-keys"},{"title":"Get ancillary results by delivery day","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/ancillary/results","href":"/physical-assets-api-reference/ancillary/get-ancillary-results-by-delivery-day"},{"title":"Get ancillary results by bid IDs","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/ancillary/results-by-bid-ids","href":"/physical-assets-api-reference/ancillary/get-ancillary-results-by-bid-ids"}]},{"group":"control","pages":[{"title":"Get calculated setpoints for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/control/setpoints","href":"/physical-assets-api-reference/control/get-calculated-setpoints-for-a-physical-asset"}]},{"group":"eex","pages":[{"title":"Submit an EEX notification","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json post /physical-assets/{physicalAssetID}/eex","href":"/physical-assets-api-reference/eex/submit-an-eex-notification"},{"title":"List EEX notifications for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/eex/notifications","href":"/physical-assets-api-reference/eex/list-eex-notifications-for-a-physical-asset"},{"title":"Get an EEX notification by ID","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/eex/notifications/{eexNotificationID}","href":"/physical-assets-api-reference/eex/get-an-eex-notification-by-id"},{"title":"Delete an EEX notification","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json delete /physical-assets/{physicalAssetID}/eex/notifications/{eexNotificationID}","href":"/physical-assets-api-reference/eex/delete-an-eex-notification"},{"title":"Update an EEX notification","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json patch /physical-assets/{physicalAssetID}/eex/notifications/{eexNotificationID}","href":"/physical-assets-api-reference/eex/update-an-eex-notification"}]},{"group":"logbook","pages":[{"title":"List logbook entries for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/logbook-entries","href":"/physical-assets-api-reference/logbook/list-logbook-entries-for-a-physical-asset"},{"title":"Create a logbook entry","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json post /physical-assets/{physicalAssetID}/logbook-entries","href":"/physical-assets-api-reference/logbook/create-a-logbook-entry"},{"title":"Get a logbook entry by ID","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/logbook-entries/{entryID}","href":"/physical-assets-api-reference/logbook/get-a-logbook-entry-by-id"},{"title":"Delete a logbook entry","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json delete /physical-assets/{physicalAssetID}/logbook-entries/{entryID}","href":"/physical-assets-api-reference/logbook/delete-a-logbook-entry"},{"title":"Update a logbook entry","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json patch /physical-assets/{physicalAssetID}/logbook-entries/{entryID}","href":"/physical-assets-api-reference/logbook/update-a-logbook-entry"}]},{"group":"metadata","pages":[{"title":"List all metadata for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/metadata","href":"/physical-assets-api-reference/metadata/list-all-metadata-for-a-physical-asset"},{"title":"Get metadata for a physical asset category","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/metadata/{category}","href":"/physical-assets-api-reference/metadata/get-metadata-for-a-physical-asset-category"},{"title":"Create metadata for a physical asset category","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json post /physical-assets/{physicalAssetID}/metadata/{category}","href":"/physical-assets-api-reference/metadata/create-metadata-for-a-physical-asset-category"},{"title":"Delete metadata for a physical asset category","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json delete /physical-assets/{physicalAssetID}/metadata/{category}","href":"/physical-assets-api-reference/metadata/delete-metadata-for-a-physical-asset-category"},{"title":"Update metadata for a physical asset category","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json patch /physical-assets/{physicalAssetID}/metadata/{category}","href":"/physical-assets-api-reference/metadata/update-metadata-for-a-physical-asset-category"}]},{"group":"operational","pages":[{"title":"Gets a selection of operational data of a physical asset as a timeseries.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/operational","href":"/physical-assets-api-reference/operational/gets-a-selection-of-operational-data-of-a-physical-asset-as-a-timeseries"},{"title":"Update operational data for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json put /physical-assets/{physicalAssetID}/operational","href":"/physical-assets-api-reference/operational/update-operational-data-for-a-physical-asset"}]},{"group":"schedule","pages":[{"title":"Get schedule for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json get /physical-assets/{physicalAssetID}/schedule","href":"/physical-assets-api-reference/schedule/get-schedule-for-a-physical-asset"},{"title":"Update schedule for a physical asset","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/physical-assets/docs/doc.json put /physical-assets/{physicalAssetID}/schedule","href":"/physical-assets-api-reference/schedule/update-schedule-for-a-physical-asset"}]}]},{"group":"Asset Monitoring API","pages":[{"group":"monitoring","pages":[{"title":"Get raw monitoring data points for a physical asset.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints","href":"/monitoring-api-reference/monitoring/get-raw-monitoring-data-points-for-a-physical-asset"},{"title":"Get monitoring data points aggregated to 15-minute intervals.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints/15min","href":"/monitoring-api-reference/monitoring/get-monitoring-data-points-aggregated-to-15-minute-intervals"},{"title":"Get monitoring data points aggregated to 1-minute intervals.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints/1min","href":"/monitoring-api-reference/monitoring/get-monitoring-data-points-aggregated-to-1-minute-intervals"},{"title":"Get monitoring data points aggregated to 5-minute intervals.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints/5min","href":"/monitoring-api-reference/monitoring/get-monitoring-data-points-aggregated-to-5-minute-intervals"},{"title":"Get monitoring data points aggregated to daily intervals.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints/daily","href":"/monitoring-api-reference/monitoring/get-monitoring-data-points-aggregated-to-daily-intervals"},{"title":"Get monitoring data points aggregated to hourly intervals.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints/hourly","href":"/monitoring-api-reference/monitoring/get-monitoring-data-points-aggregated-to-hourly-intervals"},{"title":"Get monitoring data points with automatic interval selection.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints/interval","href":"/monitoring-api-reference/monitoring/get-monitoring-data-points-with-automatic-interval-selection"},{"title":"Get distinct data point names for a physical asset.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints/names","href":"/monitoring-api-reference/monitoring/get-distinct-data-point-names-for-a-physical-asset"},{"title":"Get detailed summed statistics with calculated energy values.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints/sum/detailed","href":"/monitoring-api-reference/monitoring/get-detailed-summed-statistics-with-calculated-energy-values"},{"title":"Get raw summed statistics for monitoring data points.","deprecated":null,"version":null,"openapi":"https://api.trlyr.com/monitoring/docs/doc.json get /{physicalAssetID}/datapoints/sum/raw","href":"/monitoring-api-reference/monitoring/get-raw-summed-statistics-for-monitoring-data-points"}]}]},{"group":"Admin API","pages":[]}]},{"tab":"Product Updates \u0026 Changelog","pages":[{"title":"Product Updates \u0026 Changelog","href":"/changelog"}]},{"tab":"BESS Academy","pages":[{"title":"BESS Academy","href":"/BESS-academy/introduction"}]},{"tab":"LAYR Academy","pages":[{"title":"LAYR Academy","href":"/LAYR-academy/introduction"}]}]},"basePath":"","title":"Gets a selection of operational data of a virtual-asset as a timeseries. - terralayr","buildId":"dpl_77Hw7ZuAABM8E3WMbYAf2ohQCr3v","deploymentId":"dpl_77Hw7ZuAABM8E3WMbYAf2ohQCr3v","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CVpqyvFO.js","utils-vpweLD0v.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BIOodqb0.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B1LM3qmu.js","snippetPresets-C5xK0GtN.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CCsxLnQl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C2-WKG22.js","shallow-SdoLUC-q.js","getApiPlaygroundDisplay-BnI8L2hB.js","CodeSnippet-D5M8NCHI.js","CodeSnippets-CXRO8Uom.js","Page-CN9QbZiA.js","getPastedJson-CrfHEdRt.js","icon-Cr8AyUnW.js","MethodPill-J_Cs0kNw.js","DuplicateIcon-DrMboxGw.js","createIcon-B4CIWVbU.js","DynamicMarkdown-D9cdbgj9.js","SectionHeading-BO4CouT0.js","axios-vUo_bRtp.js","Markdown-L1m1-PSi.js","clsx-rIpTdK8h.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-ptfS1uB_.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-D31Sm3f9.js"]}