curl --request GET \
--url https://api.engrate.io/market-access/v1alpha1/timeseries/allocations \
--header 'Authorization: <api-key>'import requests
url = "https://api.engrate.io/market-access/v1alpha1/timeseries/allocations"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.engrate.io/market-access/v1alpha1/timeseries/allocations', 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.engrate.io/market-access/v1alpha1/timeseries/allocations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.engrate.io/market-access/v1alpha1/timeseries/allocations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
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.engrate.io/market-access/v1alpha1/timeseries/allocations")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engrate.io/market-access/v1alpha1/timeseries/allocations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"values": [
{
"accounting_point_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"flow_direction": "consumption",
"isp_resolution_minutes": 123,
"isp_time": "2023-11-07T05:31:56Z",
"known_at": "2023-11-07T05:31:56Z",
"quality": "measured",
"volume_wh": 123
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Timeseries: Allocations
List the volumes allocated to the requested accounting points.
Note that the markets often send multiple values per Imbalance Settlement Period (ISP) for each accounting point, starting with lower quality levels and then moving to higher quality levels. This endpoint returns all values received, including the timestamp when the value was known.
The reason for this is twofold: It makes fitting models to the data easier, and it allows you to consider the data quality when you do controlling and analysis.
For fitting models, you’ll want to use the “known_at” attribute to filter out values that would not be known to the model when it’s expected to run. For instance, if you’re fitting a model to estimate imbalance at 10AM every day, you’d exclude values known only after 10AM, as otherwise the model ends up trained on “data from the future”.
For controlling and analysis, seeing all available quality levels lets you make decisions on your level of trust in the data - you may be happy for an analysis to be based on early estimated or provisional values, while controlling pipelines may rather wait. The API leaves the decision of which value to use up to you.
curl --request GET \
--url https://api.engrate.io/market-access/v1alpha1/timeseries/allocations \
--header 'Authorization: <api-key>'import requests
url = "https://api.engrate.io/market-access/v1alpha1/timeseries/allocations"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.engrate.io/market-access/v1alpha1/timeseries/allocations', 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.engrate.io/market-access/v1alpha1/timeseries/allocations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.engrate.io/market-access/v1alpha1/timeseries/allocations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
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.engrate.io/market-access/v1alpha1/timeseries/allocations")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engrate.io/market-access/v1alpha1/timeseries/allocations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"values": [
{
"accounting_point_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"flow_direction": "consumption",
"isp_resolution_minutes": 123,
"isp_time": "2023-11-07T05:31:56Z",
"known_at": "2023-11-07T05:31:56Z",
"quality": "measured",
"volume_wh": 123
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Authorizations
Query Parameters
Inclusive lower bound on the settlement period start (RFC 3339).
Exclusive upper bound on the settlement period start (RFC 3339).
Accounting points to read, repeated per point.
1 - 500 elementsFlow directions to read. Omit to read both.
consumption, production Response
Successful Response
Show child attributes
Show child attributes
Was this page helpful?