Gets schedule adjustments for a virtual asset within a time range.
curl --request GET \
--url https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments"
payload = {}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("GET", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"adjustments": [
{
"acceptedSchedule": 480,
"adjustedSchedule": 380,
"reason": "STATE_OF_ENERGY_BOUNDARIES",
"timestamp": "2023-11-11T14:30:00Z"
}
]
}virtual-assets
Gets schedule adjustments for a virtual asset within a time range.
Gets a list of schedule adjustments for a virtual asset within a specified time range.
Returns a JSON representation of schedule adjustments, including the delivery timestamp, accepted schedule, adjusted schedule value, and the reason for the intervention.
This endpoint provides detailed information about when and why schedule adjustments were made to a virtual asset’s power schedule. Only delivery periods where a schedule was adjusted will return a value, ensuring you only see actual adjustments.
Path Parameters
organisationID(required): The organisation ID owning the virtual assetvirtualAssetID(required): The virtual asset ID for which to retrieve adjustments
Query Parameters
start(required): The start time for the query range in ISO 8601 format, e.g.2025-07-11T22:00:00Zend(required): The end time for the query range in ISO 8601 format, e.g.2025-07-11T23:00:00Z
Response Format
The response contains an array of adjustment points, each with:
timestamp: The delivery start timestampacceptedSchedule: The originally accepted schedule value in kWadjustedSchedule: The adjusted schedule value in kWreason: The reason for the adjustment (e.g., “STATE_OF_ENERGY_BOUNDARIES”, “AVAILABILITY”, etc.)
Example Response
{
"adjustments": [
{
"timestamp": "2025-07-11T22:15:00Z",
"acceptedSchedule": 480.0,
"adjustedSchedule": 380.0,
"reason": "STATE_OF_ENERGY_BOUNDARIES"
},
{
"timestamp": "2025-07-11T22:30:00Z",
"acceptedSchedule": 520.0,
"adjustedSchedule": 420.0,
"reason": "STATE_OF_ENERGY_BOUNDARIES"
}
]
}
Related Endpoints
- Virtual Asset Operational Data - Get general operational data including accepted and adjusted schedules
- Latest Virtual Asset Operational Data - Get the most recent operational data values
GET
/
organisations
/
{organisationID}
/
virtual-assets
/
{virtualAssetID}
/
adjustments
Gets schedule adjustments for a virtual asset within a time range.
curl --request GET \
--url https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments"
payload = {}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("GET", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}/adjustments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"adjustments": [
{
"acceptedSchedule": 480,
"adjustedSchedule": 380,
"reason": "STATE_OF_ENERGY_BOUNDARIES",
"timestamp": "2023-11-11T14:30:00Z"
}
]
}Headers
Access token
Path Parameters
Organisation ID
Virtual Asset ID
Body
application/json
The body is of type object.
Response
OK