producers
Retrieve an unavailability for a producer plant.
Returns a specific availability limitation (unavailability) for the plant tied to the producer contract.
GET
/
v3
/
producers
/
{userID}
/
contracts
/
{contractID}
/
feed_limitations
/
{id}
/
Retrieve an unavailability for a producer plant.
curl --request GET \
--url https://api.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/import requests
url = "https://api.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/', 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.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/"
req, _ := http.NewRequest("GET", url, nil)
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.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"limitation_id": 42,
"start": "2026-01-01T00:00:00Z",
"end": "2026-01-01T12:00:00Z",
"availability_type": "cap",
"value": 5000,
"unit": "W",
"reason_type": "technical",
"reason_description": "maintenance due broken solar panel"
}Path Parameters
Pattern:
^[\w-]+$Pattern:
^[0-9]+$Pattern:
^[\w-]+$Response
200 - application/json
The timestamp when the feed limitation begins
The timestamp when the feed limitation ends
Is the feed capped (cannot feed more than) or scaled (a part of the plant is not available)?
cap- capscale- scale
Available options:
cap, scale value of the feed limitation, for unit % between 0-100, for unit W up to plant capacity
% for scaled feed limitation, W for capped feed limitation
%- %W- W
Available options:
%, W classification on limitation reason
technical- technicaleconomic- economicredispatch- redispatchweather-dependent- weather-dependentother- other
Available options:
technical, economic, redispatch, weather-dependent, other short description to clarify limitation
⌘I
Retrieve an unavailability for a producer plant.
curl --request GET \
--url https://api.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/import requests
url = "https://api.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/', 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.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/"
req, _ := http.NewRequest("GET", url, nil)
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.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumenaza.de/v3/producers/{userID}/contracts/{contractID}/feed_limitations/{id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"limitation_id": 42,
"start": "2026-01-01T00:00:00Z",
"end": "2026-01-01T12:00:00Z",
"availability_type": "cap",
"value": 5000,
"unit": "W",
"reason_type": "technical",
"reason_description": "maintenance due broken solar panel"
}
