curl --request GET \
--url https://api.engrate.io/market-access/v1alpha1/timeseries/series/imbalance \
--header 'Authorization: <api-key>'import requests
url = "https://api.engrate.io/market-access/v1alpha1/timeseries/series/imbalance"
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/series/imbalance', 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/series/imbalance",
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/series/imbalance"
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/series/imbalance")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engrate.io/market-access/v1alpha1/timeseries/series/imbalance")
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{
"items": [
{
"balance_group": "11XBILANZKREIS-X",
"component_kind": "total",
"component_value": "ALL",
"external_id": "<string>",
"market_dimensions": {},
"scheduling_area": "10YDE-RWENET---I"
}
],
"limit": 123,
"offset": 123,
"total": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}List Imbalance Series
List the imbalance series that agree with the filters.
Each imbalance series holds the imbalance of one balance group in one scheduling area, or one adjustment that the market included in it. Use its external_id to read its volumes in List Imbalances.
The list shows the imbalance series in the sequence of external_id. To read the full list, use offset and limit to get one page at a time. total is the number of imbalance series that agree with the filters, on all pages.
The API gives the status code 422 in these conditions:
-
A
market_dimensionfilter is not in the formatkey:value. -
A
market_dimensionfilter has one key two times. -
A
component_kindorcomponent_valuefilter has an unknown value. -
An
external_id,scheduling_area,balance_groupormarket_dimensionfilter exceeds its maximum number of values. -
offsetis less than 0 or more than its maximum, orlimitis less than 1 or more than its maximum.
curl --request GET \
--url https://api.engrate.io/market-access/v1alpha1/timeseries/series/imbalance \
--header 'Authorization: <api-key>'import requests
url = "https://api.engrate.io/market-access/v1alpha1/timeseries/series/imbalance"
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/series/imbalance', 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/series/imbalance",
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/series/imbalance"
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/series/imbalance")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engrate.io/market-access/v1alpha1/timeseries/series/imbalance")
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{
"items": [
{
"balance_group": "11XBILANZKREIS-X",
"component_kind": "total",
"component_value": "ALL",
"external_id": "<string>",
"market_dimensions": {},
"scheduling_area": "10YDE-RWENET---I"
}
],
"limit": 123,
"offset": 123,
"total": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Authorizations
Query Parameters
External ids of the imbalance series to read.
500EIC codes of the scheduling areas to read, for example 10YDE-EON------1. Omit to read every area.
500Balance groups to read. Omit to read every group.
500Component kinds to read. Omit to read both.
The level of an imbalance series. The total contains the adjustments, thus do not add a total and its adjustments together.
Available imbalance component kinds
-
total — The imbalance of the balance group, with all adjustments included.
-
adjustment — An adjustment that the market included in the imbalance, with the sign it has in the imbalance.
total, adjustment Component values to read. Omit to read every value.
The adjustment class of an imbalance series and its suffix: _up or _down for the regulation direction, _net for one signed series. ALL contains the classes, and each _net contains its _up and _down, thus never add across these levels.
Available imbalance component values
-
ALL — On a total, the imbalance. On an adjustment, the net of all the adjustments that the market sends.
-
afrr_up — Automatic frequency restoration reserve (aFRR), upward regulation.
-
afrr_down — aFRR, downward regulation.
-
afrr_net — aFRR, both directions in one signed series.
-
mfrr_up — Manual frequency restoration reserve (mFRR), upward regulation.
-
mfrr_down — mFRR, downward regulation.
-
mfrr_net — mFRR, both directions in one signed series.
-
redispatch_up — Redispatch, upward regulation.
-
redispatch_down — Redispatch, downward regulation.
-
redispatch_net — Redispatch, both directions in one signed series.
-
other_up — A different adjustment class, upward. The market's own code for the class is in the market dimensions.
-
other_down — A different adjustment class, downward. The market's own code for the class is in the market dimensions.
-
other_net — A different adjustment class, both directions in one signed series. The market's own code for the class is in the market dimensions.
ALL, afrr_up, afrr_down, afrr_net, mfrr_up, mfrr_down, mfrr_net, redispatch_up, redispatch_down, redispatch_net, other_up, other_down, other_net Market dimensions to filter by, as key:value. A market dimension is the market's own key and code for an imbalance series, for example the code of an adjustment class. A series matches when it has every pair.
500The position of the first imbalance series of the page in the list. The first imbalance series in the list has the position 0.
0 <= x <= 9223372036854776000The maximum number of imbalance series on the page.
1 <= x <= 1000Was this page helpful?