# Power & energy limits

> Active and historic power and energy limits for an asset, plus its curtailment data.

API reference

Active and historic power and energy limits for an asset, plus its curtailment data.

11 endpoints

· GET · /v1/assets/{asset\_id}/curtailment

### Get asset curtailment data

asset.read

Retrieve curtailment data for a specific asset.

Returns curtailment intervals overlapping the requested time window. Time filtering uses half-open window semantics: `[start_time, end_time)`.

**Boundary behavior:**

-   A curtailment ending exactly at `start_time` is excluded.
-   A curtailment starting exactly at `end_time` is excluded.
-   Ongoing curtailments with `end_time=null` are included whenever they remain active after `start_time`.

**Query Parameters:**

-   `start_time`: Return intervals whose end\_time is absent or strictly after this timestamp (optional)
-   `end_time`: Return intervals whose start\_time is strictly before this timestamp (optional)
-   `sort_by`: Field to sort by — `start_time` or `end_time` (default: `start_time`)
-   `sort_order`: `asc` or `desc` (default: `asc`)

Power values are in MW. The `start_time` filter can go back up to 30 days.

Path parameters

asset\_id · REQUIRED

string · The ID of the asset

Query parameters

sort\_by

enum · `start_time` · `end_time` · Field to sort the results by

sort\_order

enum · `asc` · `desc` · Order to sort the results by, either 'asc' or 'desc'

start\_time

string<date-time> · Return curtailment intervals whose end\_time is absent or strictly after this timestamp. With end\_time, the API matches intervals overlapping the half-open window \[start\_time, end\_time).

end\_time

string<date-time> · Return curtailment intervals whose start\_time is strictly before this timestamp. With start\_time, the API matches intervals overlapping the half-open window \[start\_time, end\_time).

Example value

cURL:

```bash
curl ·   · "https://api.ebx.energy/v1/assets/DE_BESS_01/curtailment" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN"
```

Python:

```python
import ·  httpx

r = httpx.get(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/curtailment" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
)
print(r.json())
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/curtailment" · , ·   · { · 
   · method · : ·   · "GET" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
   · }, · 
 · } · );
 · const ·  data =  · await ·  res.json();
```

Example response · 200

```json
{ · 
   · "curtailments" · : ·   · [ · 
     · { · 
       · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "end_time" · : ·   · "2025-01-02T18:00:00Z" · , · 
       · "max_curtailment" · : ·   · 100 · , · 
       · "min_curtailment" · : ·   · 0 · 
     · } · 
   · ] · 
 · }
```

Can raise

-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   422 · validation failed
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)

 · GET · /v1/assets/{asset\_id}/energy\_limits

### Get Energy Limits

asset.read

List energy limit intervals for an asset.

Time filtering is overlap-based and uses half-open window semantics. With both `start_time` and `end_time`, the endpoint returns intervals that overlap `[start_time, end_time)`.

Boundary behavior:

-   a limit ending exactly at `start_time` is excluded
-   a limit starting exactly at `end_time` is excluded
-   open-ended limits are included whenever they remain active after `start_time`

Path parameters

asset\_id · REQUIRED

string

Query parameters

sort\_by

enum · `start_time` · `end_time` · Deprecated and ignored; results are always ordered by start\_time.

sort\_order

enum · `asc` · `desc` · Order to sort the results by, either 'asc' or 'desc'

start\_time

string<date-time> · Return energy limit intervals whose end\_time is absent or strictly after this timestamp. With end\_time, the API matches intervals overlapping the half-open window \[start\_time, end\_time).

end\_time

string<date-time> · Return energy limit intervals whose start\_time is strictly before this timestamp. With start\_time, the API matches intervals overlapping the half-open window \[start\_time, end\_time).

Example value

cURL:

```bash
curl ·   · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN"
```

Python:

```python
import ·  httpx

r = httpx.get(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
)
print(r.json())
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits" · , ·   · { · 
   · method · : ·   · "GET" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
   · }, · 
 · } · );
 · const ·  data =  · await ·  res.json();
```

Example response · 200

```json
{ · 
   · "limits" · : ·   · [ · 
     · { · 
       · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "upper_limit_mwh" · : ·   · 0 · , · 
       · "lower_limit_mwh" · : ·   · 0 · , · 
       · "reason" · : ·   · "maintenance" · , · 
       · "reason_description" · : ·   · "<string>" · 
     · } · 
   · ] · 
 · }
```

Can raise

-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   422 · validation failed
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)· POST · /v1/assets/{asset\_id}/energy\_limits

### Set Energy Limits

asset.write · restrictions.write\_direct

Create a new energy limit interval for an asset.

Path parameters

asset\_id · REQUIRED

string

Request body · required

start\_time

string<date-time> · Start time of the energy limit interval in UTC ISO 8601 format

end\_time

string<date-time> · Optional end time of the energy limit interval in UTC ISO 8601 format

upper\_limit\_mwh

number · Upper energy limit in MWh. At least one of upper\_limit\_mwh or lower\_limit\_mwh must be provided. If lower\_limit\_mwh is omitted, zero is used.

lower\_limit\_mwh

number · Lower energy limit in MWh. At least one of upper\_limit\_mwh or lower\_limit\_mwh must be provided. If upper\_limit\_mwh is omitted, the asset's usable energy capacity is used.

reason · REQUIRED

enum · `maintenance` · `fault` · `grid_event` · `commercial` · `other` · Reason a restriction (unavailability, power limit, energy limit) is being requested.

reason\_description

string · Optional free-text description of the energy limit reason

Example value

cURL:

```bash
curl ·   · -X ·  POST  · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN" ·  \
   · -H ·   · "Content-Type: application/json" ·  \
   · -d ·   · '{"start_time":"2026-09-10T13:30:00Z","end_time":"2026-09-10T13:30:00Z","upper_limit_mwh":250,"lower_limit_mwh":25,"reason":"maintenance","reason_description":"<string>"}'
```

Python:

```python
import ·  httpx

r = httpx.post(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
    json= · { · 
         · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
         · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
         · "upper_limit_mwh" · : ·   · 250 · , · 
         · "lower_limit_mwh" · : ·   · 25 · , · 
         · "reason" · : ·   · "maintenance" · , · 
         · "reason_description" · : ·   · "<string>" · , · 
     · }, · 
)
print(r.json())
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits" · , ·   · { · 
   · method · : ·   · "POST" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
     · "Content-Type" · : ·   · "application/json" · , · 
   · }, · 
   · body · : ·  JSON.stringify( · { · "start_time" · : · "2026-09-10T13:30:00Z" · , · "end_time" · : · "2026-09-10T13:30:00Z" · , · "upper_limit_mwh" · : · 250 · , · "lower_limit_mwh" · : · 25 · , · "reason" · : · "maintenance" · , · "reason_description" · : · "<string>" · } · ) · , · 
 · } · );
 · const ·  data =  · await ·  res.json();
```

Example response · 201

```json
{ · 
   · "limits" · : ·   · [ · 
     · { · 
       · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "upper_limit_mwh" · : ·   · 0 · , · 
       · "lower_limit_mwh" · : ·   · 0 · , · 
       · "reason" · : ·   · "maintenance" · , · 
       · "reason_description" · : ·   · "<string>" · 
     · } · 
   · ] · 
 · }
```

Can raise

-   400 · malformed request
-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   409 · state conflict
-   422 · validation failed
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)

· PATCH · /v1/assets/{asset\_id}/energy\_limits

### Shorten Energy Limit

asset.write · restrictions.write\_direct

Shorten or immediately end an existing energy limit interval.

Path parameters

asset\_id · REQUIRED

string

Query parameters

start\_time · REQUIRED

string<date-time> · Exact start\_time of the interval to modify

end\_time

string<date-time> · Deprecated and ignored; intervals are identified by start\_time alone.

Request body · required

new\_end\_time

string<date-time> · Scheduled replacement end\_time in UTC; mutually exclusive with end\_now=true

end\_now

boolean · default false · End a started interval at server time, without the scheduled-shortening lead time. Safe to retry.

Example value

cURL:

```bash
curl ·   · -X ·  PATCH  · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits?start_time=2025-01-03T10:00:00Z" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN" ·  \
   · -H ·   · "Content-Type: application/json" ·  \
   · -d ·   · '{"new_end_time":"2025-01-01T18:15:00Z","end_now":false}'
```

Python:

```python
import ·  httpx

r = httpx.patch(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits?start_time=2025-01-03T10:00:00Z" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
    json= · { · 
         · "new_end_time" · : ·   · "2025-01-01T18:15:00Z" · , · 
         · "end_now" · : ·   · False · , · 
     · }, · 
)
print(r.json())
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits?start_time=2025-01-03T10:00:00Z" · , ·   · { · 
   · method · : ·   · "PATCH" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
     · "Content-Type" · : ·   · "application/json" · , · 
   · }, · 
   · body · : ·  JSON.stringify( · { · "new_end_time" · : · "2025-01-01T18:15:00Z" · , · "end_now" · : · false · } · ) · , · 
 · } · );
 · const ·  data =  · await ·  res.json();
```

Example response · 200

```json
{ · 
   · "limits" · : ·   · [ · 
     · { · 
       · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "upper_limit_mwh" · : ·   · 0 · , · 
       · "lower_limit_mwh" · : ·   · 0 · , · 
       · "reason" · : ·   · "maintenance" · , · 
       · "reason_description" · : ·   · "<string>" · 
     · } · 
   · ] · 
 · }
```

Can raise

-   400 · malformed request
-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   409 · state conflict
-   422 · validation failed
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)

· DELETE · /v1/assets/{asset\_id}/energy\_limits

### Delete Energy Limit

asset.write · restrictions.write\_direct

Delete an exact future energy limit interval.

Path parameters

asset\_id · REQUIRED

string

Query parameters

start\_time · REQUIRED

string<date-time> · Exact start\_time of the interval to modify

end\_time

string<date-time> · Deprecated and ignored; intervals are identified by start\_time alone.

Example value

cURL:

```bash
curl ·   · -X ·  DELETE  · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits?start_time=2025-01-03T10:00:00Z" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN"
```

Python:

```python
import ·  httpx

r = httpx.delete(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits?start_time=2025-01-03T10:00:00Z" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
)
print(r.status_code)
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits?start_time=2025-01-03T10:00:00Z" · , ·   · { · 
   · method · : ·   · "DELETE" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
   · }, · 
 · } · );
```

Returns 204 with no body.

Can raise

-   400 · malformed request
-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   409 · state conflict
-   422 · validation failed
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)

· GET · /v1/assets/{asset\_id}/energy\_limits/active

### Get Active Energy Limits

asset.read

Get the active energy limit interval for an asset.

Path parameters

asset\_id · REQUIRED

string

Example value

cURL:

```bash
curl ·   · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits/active" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN"
```

Python:

```python
import ·  httpx

r = httpx.get(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits/active" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
)
print(r.json())
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/energy_limits/active" · , ·   · { · 
   · method · : ·   · "GET" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
   · }, · 
 · } · );
 · const ·  data =  · await ·  res.json();
```

Example response · 200

```json
{ · 
   · "limits" · : ·   · [ · 
     · { · 
       · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "upper_limit_mwh" · : ·   · 0 · , · 
       · "lower_limit_mwh" · : ·   · 0 · , · 
       · "reason" · : ·   · "maintenance" · , · 
       · "reason_description" · : ·   · "<string>" · 
     · } · 
   · ] · 
 · }
```

Can raise

-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)

· GET · /v1/assets/{asset\_id}/power\_limits

### Get Power Limits

asset.read

List power limit intervals for an asset.

Time filtering is overlap-based and uses half-open window semantics. With both `start_time` and `end_time`, the endpoint returns intervals that overlap `[start_time, end_time)`.

Boundary behavior:

-   a limit ending exactly at `start_time` is excluded
-   a limit starting exactly at `end_time` is excluded
-   open-ended limits are included whenever they remain active after `start_time`

Path parameters

asset\_id · REQUIRED

string

Query parameters

sort\_by

enum · `start_time` · `end_time` · Deprecated and ignored; results are always ordered by start\_time.

sort\_order

enum · `asc` · `desc` · Order to sort the results by, either 'asc' or 'desc'

start\_time

string<date-time> · Return power limit intervals whose end\_time is absent or strictly after this timestamp. With end\_time, the API matches intervals overlapping the half-open window \[start\_time, end\_time).

end\_time

string<date-time> · Return power limit intervals whose start\_time is strictly before this timestamp. With start\_time, the API matches intervals overlapping the half-open window \[start\_time, end\_time).

Example value

cURL:

```bash
curl ·   · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN"
```

Python:

```python
import ·  httpx

r = httpx.get(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
)
print(r.json())
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits" · , ·   · { · 
   · method · : ·   · "GET" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
   · }, · 
 · } · );
 · const ·  data =  · await ·  res.json();
```

Example response · 200

```json
{ · 
   · "limits" · : ·   · [ · 
     · { · 
       · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "upper_limit_mw" · : ·   · 0 · , · 
       · "lower_limit_mw" · : ·   · 0 · , · 
       · "reason" · : ·   · "maintenance" · , · 
       · "reason_description" · : ·   · "<string>" · 
     · } · 
   · ] · 
 · }
```

Can raise

-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   422 · validation failed
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)

· POST · /v1/assets/{asset\_id}/power\_limits

### Set Power Limits

asset.write · restrictions.write\_direct

Create a new power limit interval for an asset.

Path parameters

asset\_id · REQUIRED

string

Request body · required

start\_time

string<date-time> · Start time of the power limit interval in UTC ISO 8601 format

end\_time

string<date-time> · Optional end time of the power limit interval in UTC ISO 8601 format

upper\_limit\_mw

number · Upper power limit in MW. At least one of upper\_limit\_mw or lower\_limit\_mw must be provided. If lower\_limit\_mw is omitted, the asset's negative usable power capacity is used.

lower\_limit\_mw

number · Lower power limit in MW. At least one of upper\_limit\_mw or lower\_limit\_mw must be provided. If upper\_limit\_mw is omitted, the asset's usable power capacity is used.

reason · REQUIRED

enum · `maintenance` · `fault` · `grid_event` · `commercial` · `other` · Reason a restriction (unavailability, power limit, energy limit) is being requested.

reason\_description

string · Optional free-text description of the power limit reason

Example value

cURL:

```bash
curl ·   · -X ·  POST  · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN" ·  \
   · -H ·   · "Content-Type: application/json" ·  \
   · -d ·   · '{"start_time":"2026-09-10T13:30:00Z","end_time":"2026-09-10T13:30:00Z","upper_limit_mw":50.5,"lower_limit_mw":-5.7,"reason":"maintenance","reason_description":"<string>"}'
```

Python:

```python
import ·  httpx

r = httpx.post(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
    json= · { · 
         · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
         · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
         · "upper_limit_mw" · : ·   · 50.5 · , · 
         · "lower_limit_mw" · : ·   · -5.7 · , · 
         · "reason" · : ·   · "maintenance" · , · 
         · "reason_description" · : ·   · "<string>" · , · 
     · }, · 
)
print(r.json())
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits" · , ·   · { · 
   · method · : ·   · "POST" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
     · "Content-Type" · : ·   · "application/json" · , · 
   · }, · 
   · body · : ·  JSON.stringify( · { · "start_time" · : · "2026-09-10T13:30:00Z" · , · "end_time" · : · "2026-09-10T13:30:00Z" · , · "upper_limit_mw" · : · 50.5 · , · "lower_limit_mw" · : · -5.7 · , · "reason" · : · "maintenance" · , · "reason_description" · : · "<string>" · } · ) · , · 
 · } · );
 · const ·  data =  · await ·  res.json();
```

Example response · 201

```json
{ · 
   · "limits" · : ·   · [ · 
     · { · 
       · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "upper_limit_mw" · : ·   · 0 · , · 
       · "lower_limit_mw" · : ·   · 0 · , · 
       · "reason" · : ·   · "maintenance" · , · 
       · "reason_description" · : ·   · "<string>" · 
     · } · 
   · ] · 
 · }
```

Can raise

-   400 · malformed request
-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   409 · state conflict
-   422 · validation failed
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)

· PATCH · /v1/assets/{asset\_id}/power\_limits

### Shorten Power Limit

asset.write · restrictions.write\_direct

Shorten or immediately end an existing power limit interval.

Path parameters

asset\_id · REQUIRED

string

Query parameters

start\_time · REQUIRED

string<date-time> · Exact start\_time of the interval to modify

end\_time

string<date-time> · Deprecated and ignored; intervals are identified by start\_time alone.

Request body · required

new\_end\_time

string<date-time> · Scheduled replacement end\_time in UTC; mutually exclusive with end\_now=true

end\_now

boolean · default false · End a started interval at server time, without the scheduled-shortening lead time. Safe to retry.

Example value

cURL:

```bash
curl ·   · -X ·  PATCH  · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits?start_time=2025-01-03T10:00:00Z" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN" ·  \
   · -H ·   · "Content-Type: application/json" ·  \
   · -d ·   · '{"new_end_time":"2025-01-01T18:15:00Z","end_now":false}'
```

Python:

```python
import ·  httpx

r = httpx.patch(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits?start_time=2025-01-03T10:00:00Z" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
    json= · { · 
         · "new_end_time" · : ·   · "2025-01-01T18:15:00Z" · , · 
         · "end_now" · : ·   · False · , · 
     · }, · 
)
print(r.json())
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits?start_time=2025-01-03T10:00:00Z" · , ·   · { · 
   · method · : ·   · "PATCH" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
     · "Content-Type" · : ·   · "application/json" · , · 
   · }, · 
   · body · : ·  JSON.stringify( · { · "new_end_time" · : · "2025-01-01T18:15:00Z" · , · "end_now" · : · false · } · ) · , · 
 · } · );
 · const ·  data =  · await ·  res.json();
```

Example response · 200

```json
{ · 
   · "limits" · : ·   · [ · 
     · { · 
       · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "upper_limit_mw" · : ·   · 0 · , · 
       · "lower_limit_mw" · : ·   · 0 · , · 
       · "reason" · : ·   · "maintenance" · , · 
       · "reason_description" · : ·   · "<string>" · 
     · } · 
   · ] · 
 · }
```

Can raise

-   400 · malformed request
-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   409 · state conflict
-   422 · validation failed
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)

· DELETE · /v1/assets/{asset\_id}/power\_limits

### Delete Power Limit

asset.write · restrictions.write\_direct

Delete an exact future power limit interval.

Path parameters

asset\_id · REQUIRED

string

Query parameters

start\_time · REQUIRED

string<date-time> · Exact start\_time of the interval to modify

end\_time

string<date-time> · Deprecated and ignored; intervals are identified by start\_time alone.

Example value

cURL:

```bash
curl ·   · -X ·  DELETE  · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits?start_time=2025-01-03T10:00:00Z" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN"
```

Python:

```python
import ·  httpx

r = httpx.delete(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits?start_time=2025-01-03T10:00:00Z" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
)
print(r.status_code)
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits?start_time=2025-01-03T10:00:00Z" · , ·   · { · 
   · method · : ·   · "DELETE" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
   · }, · 
 · } · );
```

Returns 204 with no body.

Can raise

-   400 · malformed request
-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   409 · state conflict
-   422 · validation failed
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)

· GET · /v1/assets/{asset\_id}/power\_limits/active

### Get Active Power Limits

asset.read

Get the active power limit interval for an asset.

Path parameters

asset\_id · REQUIRED

string

Example value

cURL:

```bash
curl ·   · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits/active" ·  \
   · -H ·   · "Authorization: Bearer $EBX_TOKEN"
```

Python:

```python
import ·  httpx

r = httpx.get(
     · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits/active" · , · 
    headers= · { · "Authorization" · : ·  f · "Bearer {token}" · }, · 
)
print(r.json())
```

TypeScript:

```typescript
const ·  res =  · await ·  fetch( · "https://api.ebx.energy/v1/assets/DE_BESS_01/power_limits/active" · , ·   · { · 
   · method · : ·   · "GET" · , · 
   · headers · : ·   · { · 
    Authorization · : ·   · `Bearer ${token}` · , · 
   · }, · 
 · } · );
 · const ·  data =  · await ·  res.json();
```

Example response · 200

```json
{ · 
   · "limits" · : ·   · [ · 
     · { · 
       · "start_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "end_time" · : ·   · "2026-09-10T13:30:00Z" · , · 
       · "upper_limit_mw" · : ·   · 0 · , · 
       · "lower_limit_mw" · : ·   · 0 · , · 
       · "reason" · : ·   · "maintenance" · , · 
       · "reason_description" · : ·   · "<string>" · 
     · } · 
   · ] · 
 · }
```

Can raise

-   401 · no valid token
-   403 · scope missing
-   404 · unknown or not visible
-   429 · rate limited

[ALL CODES →](https://docs.ebx.energy/reference/errors.md)
