curl --request GET \
--url https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}"
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}', 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}",
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}"
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}")
.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}")
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{
"annualCycleLimit": 730,
"availableEnergyCapacity": 800,
"blockIDs": [
"<string>"
],
"blockMetadata": [
{
"end": "2023-11-12T00:00:00Z",
"id": "11111111-1111-1111-1111-111111111111",
"market": "WHOLESALE",
"start": "2023-11-11T00:00:00Z"
}
],
"chargeEfficiency": 0.943,
"contractType": "merchant",
"createdAt": "2023-11-11T00:00:00Z",
"dailyCycleLimit": 2,
"deliveryZone": "50Hertz",
"dischargeEfficiency": 0.943,
"dispatchGateClosureSeconds": 480,
"eicCode": "EIC1234567890",
"end": "2023-11-12T00:00:00Z",
"endStateOfChargePercentage": 75,
"energyCapacity": 1000,
"feedback": "This block is projected to be over-charged by 250 kilowatt hours. Consider adding more discharging to the schedule, or reducing the amount of charging",
"finalSoCTolerance": 0.01,
"id": "11111111-1111-1111-1111-111111111111",
"imbalanceCharge": 0,
"imbalanceDischarge": 250,
"portfolioID": "11111111-1111-1111-1111-111111111111",
"protectedDurationSeconds": 3600,
"rampRate": 66,
"ratedChargePower": 1000,
"ratedDischargePower": 1000,
"start": "2023-11-11T00:00:00Z",
"totalAllowedCycles": 123,
"unitsEnergy": "kWh",
"unitsPower": "kW"
}Get a virtual asset.
Get a virtual asset.
Returns a JSON representation of a specific virtual asset. This includes the static parameters of the asset, such as its maximum power capability, energy capacity, and efficiency, as well as the IDs of any blocks belonging to it.
energyCapacity refers to the rated (or “nameplate”) storage capacity of the virtual-asset, regardless of any unavailability that may reduce the usable storage.
availableEnergyCapacity refers to the total usable storage currently available, and may thus be smaller than energyCapacity during periods of unavailability.
curl --request GET \
--url https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.trlyr.com/organisations/{organisationID}/virtual-assets/{virtualAssetID}"
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}', 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}",
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}"
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}")
.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}")
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{
"annualCycleLimit": 730,
"availableEnergyCapacity": 800,
"blockIDs": [
"<string>"
],
"blockMetadata": [
{
"end": "2023-11-12T00:00:00Z",
"id": "11111111-1111-1111-1111-111111111111",
"market": "WHOLESALE",
"start": "2023-11-11T00:00:00Z"
}
],
"chargeEfficiency": 0.943,
"contractType": "merchant",
"createdAt": "2023-11-11T00:00:00Z",
"dailyCycleLimit": 2,
"deliveryZone": "50Hertz",
"dischargeEfficiency": 0.943,
"dispatchGateClosureSeconds": 480,
"eicCode": "EIC1234567890",
"end": "2023-11-12T00:00:00Z",
"endStateOfChargePercentage": 75,
"energyCapacity": 1000,
"feedback": "This block is projected to be over-charged by 250 kilowatt hours. Consider adding more discharging to the schedule, or reducing the amount of charging",
"finalSoCTolerance": 0.01,
"id": "11111111-1111-1111-1111-111111111111",
"imbalanceCharge": 0,
"imbalanceDischarge": 250,
"portfolioID": "11111111-1111-1111-1111-111111111111",
"protectedDurationSeconds": 3600,
"rampRate": 66,
"ratedChargePower": 1000,
"ratedDischargePower": 1000,
"start": "2023-11-11T00:00:00Z",
"totalAllowedCycles": 123,
"unitsEnergy": "kWh",
"unitsPower": "kW"
}Headers
Access token
Path Parameters
Organisation ID
Virtual Asset ID
Body
The body is of type object.
Response
OK
730
800
0.943
"merchant"
"2023-11-11T00:00:00Z"
2
"50Hertz"
0.943
480
"EIC1234567890"
"2023-11-12T00:00:00Z"
75
1000
"This block is projected to be over-charged by 250 kilowatt hours. Consider adding more discharging to the schedule, or reducing the amount of charging"
0.01
"11111111-1111-1111-1111-111111111111"
0
250
"11111111-1111-1111-1111-111111111111"
3600
66
1000
1000
"2023-11-11T00:00:00Z"
"kWh"
"kW"