API reference
Pools (beta)
Organisation pools and pool state. These endpoints are in beta.
GET/v1/pools
[Beta] List organization pools
pool.read
> Beta: this endpoint is under active development. Request/response shapes and behaviour may change without notice.
Query parameters
- organization_id
- stringFilter by organization (ebx admins only; defaults to caller's organisation)
curl "https://api.ebx.energy/v1/pools" \
-H "Authorization: Bearer $EBX_TOKEN"import httpx
r = httpx.get(
"https://api.ebx.energy/v1/pools",
headers={"Authorization": f"Bearer {token}"},
)
print(r.json())const res = await fetch("https://api.ebx.energy/v1/pools", {
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await res.json();{
"pools": [
{
"organization_id": "<string>",
"pool_id": "<string>",
"list_asset_ids": [
"<string>"
],
"allow_internal_collateralisation": false
}
]
}POST/v1/pools
[Beta] Create organization pool
pool.write
> Beta: this endpoint is under active development. Request/response shapes and behaviour may change without notice.
Query parameters
- organization_id
- stringTarget organization (ebx admins only; defaults to caller's organisation)
Request body · required
- list_asset_ids
- array[string]List of asset IDs assigned to the pool
- pool_idREQUIRED
- stringCustomer-defined pool identifier
- allow_internal_collateralisation
- booleandefault falseAllow assets within this pool to collateralise internally
curl -X POST "https://api.ebx.energy/v1/pools" \
-H "Authorization: Bearer $EBX_TOKEN" \
-H "Content-Type: application/json" \
-d '{"list_asset_ids":["<string>"],"pool_id":"<string>","allow_internal_collateralisation":false}'import httpx
r = httpx.post(
"https://api.ebx.energy/v1/pools",
headers={"Authorization": f"Bearer {token}"},
json={
"list_asset_ids": [
"<string>",
],
"pool_id": "<string>",
"allow_internal_collateralisation": False,
},
)
print(r.json())const res = await fetch("https://api.ebx.energy/v1/pools", {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
body: JSON.stringify({"list_asset_ids":["<string>"],"pool_id":"<string>","allow_internal_collateralisation":false}),
});
const data = await res.json();{
"organization_id": "<string>",
"pool_id": "<string>",
"list_asset_ids": [
"<string>"
],
"allow_internal_collateralisation": false
}- 400malformed request
- 401no valid token
- 403scope missing
- 409state conflict
- 422validation failed
- 429rate limited
GET/v1/pools/{pool_id}
[Beta] Get organization pool
pool.read
> Beta: this endpoint is under active development. Request/response shapes and behaviour may change without notice.
Path parameters
- pool_idREQUIRED
- string
Query parameters
- organization_id
- stringTarget organization (ebx admins only; defaults to caller's organisation)
curl "https://api.ebx.energy/v1/pools/DE_FCR_POOL_01" \
-H "Authorization: Bearer $EBX_TOKEN"import httpx
r = httpx.get(
"https://api.ebx.energy/v1/pools/DE_FCR_POOL_01",
headers={"Authorization": f"Bearer {token}"},
)
print(r.json())const res = await fetch("https://api.ebx.energy/v1/pools/DE_FCR_POOL_01", {
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await res.json();{
"organization_id": "<string>",
"pool_id": "<string>",
"list_asset_ids": [
"<string>"
],
"allow_internal_collateralisation": false
}- 401no valid token
- 403scope missing
- 404unknown or not visible
- 422validation failed
- 429rate limited
PUT/v1/pools/{pool_id}
[Beta] Update organization pool
pool.write
> Beta: this endpoint is under active development. Request/response shapes and behaviour may change without notice.
Path parameters
- pool_idREQUIRED
- string
Query parameters
- organization_id
- stringTarget organization (ebx admins only; defaults to caller's organisation)
Request body · required
- list_asset_idsREQUIRED
- array[string]List of asset IDs assigned to the pool
- allow_internal_collateralisationREQUIRED
- booleanAllow assets within this pool to collateralise internally
curl -X PUT "https://api.ebx.energy/v1/pools/DE_FCR_POOL_01" \
-H "Authorization: Bearer $EBX_TOKEN" \
-H "Content-Type: application/json" \
-d '{"list_asset_ids":["<string>"],"allow_internal_collateralisation":false}'import httpx
r = httpx.put(
"https://api.ebx.energy/v1/pools/DE_FCR_POOL_01",
headers={"Authorization": f"Bearer {token}"},
json={
"list_asset_ids": [
"<string>",
],
"allow_internal_collateralisation": False,
},
)
print(r.json())const res = await fetch("https://api.ebx.energy/v1/pools/DE_FCR_POOL_01", {
method: "PUT",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
body: JSON.stringify({"list_asset_ids":["<string>"],"allow_internal_collateralisation":false}),
});
const data = await res.json();{
"organization_id": "<string>",
"pool_id": "<string>",
"list_asset_ids": [
"<string>"
],
"allow_internal_collateralisation": false
}- 400malformed request
- 401no valid token
- 403scope missing
- 404unknown or not visible
- 409state conflict
- 422validation failed
- 429rate limited
DELETE/v1/pools/{pool_id}
[Beta] Delete organization pool
pool.write
> Beta: this endpoint is under active development. Request/response shapes and behaviour may change without notice.
Path parameters
- pool_idREQUIRED
- string
Query parameters
- organization_id
- stringTarget organization (ebx admins only; defaults to caller's organisation)
curl -X DELETE "https://api.ebx.energy/v1/pools/DE_FCR_POOL_01" \
-H "Authorization: Bearer $EBX_TOKEN"import httpx
r = httpx.delete(
"https://api.ebx.energy/v1/pools/DE_FCR_POOL_01",
headers={"Authorization": f"Bearer {token}"},
)
print(r.status_code)const res = await fetch("https://api.ebx.energy/v1/pools/DE_FCR_POOL_01", {
method: "DELETE",
headers: {
Authorization: `Bearer ${token}`,
},
});Returns 204 with no body.
- 400malformed request
- 401no valid token
- 403scope missing
- 404unknown or not visible
- 409state conflict
- 422validation failed
- 429rate limited
GET/v1/pools/{pool_id}/state
[Beta] Get organization pool state
pool.read
> Beta: this endpoint is under active development. Request/response shapes and behaviour may change without notice.
Path parameters
- pool_idREQUIRED
- string
Query parameters
- organization_id
- stringTarget organization (ebx admins only; defaults to caller's organisation)
curl "https://api.ebx.energy/v1/pools/DE_FCR_POOL_01/state" \
-H "Authorization: Bearer $EBX_TOKEN"import httpx
r = httpx.get(
"https://api.ebx.energy/v1/pools/DE_FCR_POOL_01/state",
headers={"Authorization": f"Bearer {token}"},
)
print(r.json())const res = await fetch("https://api.ebx.energy/v1/pools/DE_FCR_POOL_01/state", {
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await res.json();{
"pool_id": "<string>",
"pool_status": false,
"fcr_pool_status": false,
"afrr_pool_status": false,
"power_actual_ac": 0,
"operating_point": 0,
"fcr_power_actual": 0,
"fcr_current_reservation_pos": 0,
"fcr_current_reservation_neg": 0,
"afrr_setpoint": 0,
"afrr_power_actual": 0,
"afrr_current_reservation_pos": 0,
"afrr_current_reservation_neg": 0
}- 401no valid token
- 403scope missing
- 404unknown or not visible
- 422validation failed
- 429rate limited