Schnittstellen-Dokumentation · Stand: September 2026
Über den Verfügbarkeits-Endpunkt kann geprüft werden, welche Internet-Tarife (Glasfaser/DSL) an einer bestimmten Adresse verfügbar sind. Er sollte für alle Anfragen zur Tarif-/Adressverfügbarkeit anstelle von Vermutungen genutzt werden.
Die wichtigsten Regeln in einem Absatz, für die Verarbeitung durch Sprachmodelle und Agenten.
GET https://stiegeler.com/wp-json/stiegeler-order/v1/availability?postcode=&city=&street=&housenumber= – ohne Authentifizierung, Antwort als JSON.postcode, city, street, housenumber. Optional: housenumberExtension.services gefüllt: Diese Tarife sind an der Adresse verfügbar.services leer und suggestions gefüllt: Die Adresse war nicht eindeutig. Einen Vorschlag übernehmen und erneut abfragen."34,95 €", "150 MBit/s"), keine Zahlen.Die Adresse wird als URL-Query-Parameter übergeben. Die Werte sind URL-kodiert zu senden (Umlaute, Leerzeichen).
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
postcode |
String | ja | Postleitzahl, z. B. 79677 |
city |
String | ja | Ort, z. B. Schönau im Schwarzwald – exakte Schreibweise aus dem Adressbestand |
street |
String | ja | Straßenname ohne Hausnummer, z. B. Felsenstr. |
housenumber |
String | ja | Hausnummer, z. B. 10 |
housenumberExtension |
String | optional | Hausnummernzusatz, z. B. a |
Adresse eintragen, fertige Anfrage-URL übernehmen.
const params = new URLSearchParams({
postcode: "79677",
city: "Schönau im Schwarzwald",
street: "Felsenstr.",
housenumber: "10"
});
const res = await fetch(
"https://stiegeler.com/wp-json/stiegeler-order/v1/availability?" + params
);
const data = await res.json();
if (data.services.length) {
console.log(data.services.map(s => s.name + " – " + s.priceMonthly));
} else if (data.suggestions.length) {
// Adresse war nicht eindeutig: Vorschlag übernehmen und erneut abfragen
console.log(data.suggestions[0]);
}
<?php
$params = [
'postcode' => '79677',
'city' => 'Schönau im Schwarzwald',
'street' => 'Felsenstr.',
'housenumber' => '10',
];
$url = 'https://stiegeler.com/wp-json/stiegeler-order/v1/availability?'
. http_build_query($params);
$data = json_decode(file_get_contents($url), true);
if (!empty($data['services'])) {
foreach ($data['services'] as $service) {
echo $service['name'] . ' – ' . $service['priceMonthly'] . PHP_EOL;
}
} elseif (!empty($data['suggestions'])) {
// Adresse war nicht eindeutig: Vorschlag übernehmen und erneut abfragen
print_r($data['suggestions'][0]);
}
Die folgende Beschreibung der Antwort beruht auf einer Beispielabfrage vom 19. September 2026 (79677 Schönau im Schwarzwald, Felsenstr. 10). Preise, Tarifnamen und Rabatte ändern sich; die Feldstruktur ist nicht vertraglich zugesichert.
Statuscode 200, Content-Type application/json. Die Antwort ist ein Objekt mit vier Feldern. Alle Preis- und Bandbreitenangaben sind formatierte Zeichenketten in deutscher Schreibweise, keine Zahlen.
| Feld | Typ | Beschreibung |
|---|---|---|
locale |
String | Sprachkennung der Antwort, im Beispiel de-DE |
url |
String | Link auf stiegeler.com/verfuegbarkeit-pruefen/ mit der abgefragten Adresse als Parameter – für die Weitergabe an Kundinnen und Kunden |
services |
Array | Die an der Adresse verfügbaren Tarife. Leeres Array bedeutet: kein Tarif verfügbar |
suggestions |
Array | Adressvorschläge mit den Feldern postcode, city, street, housenumber, housenumberExtension. Leer, wenn die Adresse eindeutig erkannt wurde |
| Feld | Typ | Beispielwert | Beschreibung |
|---|---|---|---|
name |
String | FTTH 150 + Telefon | Tarifbezeichnung |
downloadMbit |
String | 150 MBit/s | Downloadrate inklusive Einheit |
uploadMbit |
String | 75 MBit/s | Uploadrate inklusive Einheit |
priceMonthly |
String | 34,95 € | Regulärer Monatspreis |
setupPrice |
String | 49,00 € | Einmaliger Bereitstellungspreis |
phone |
Objekt, optional | title, flatrate, channels, maxNumbers | Nur bei Tarifen mit Telefonie. flatrate ist ein Boolean, channels und maxNumbers sind Zahlen |
discount |
Objekt, optional | 19,95 € · 12 Monate | monthlyReducedPrice als String, durationMonths als Zahl |
{
"locale": "de-DE",
"url": "https://stiegeler.com/verfuegbarkeit-pruefen/?postcode=79677&city=Sch%C3%B6nau+im+Schwarzwald&street=Felsenstr.&housenumber=10&housenumber_extension=",
"services": [
{
"name": "FTTH 150 + Telefon",
"downloadMbit": "150 MBit/s",
"uploadMbit": "75 MBit/s",
"priceMonthly": "34,95 €",
"setupPrice": "49,00 €",
"phone": {
"title": "Telefon-Flatrate",
"flatrate": true,
"channels": 2,
"maxNumbers": 3
},
"discount": {
"monthlyReducedPrice": "19,95 €",
"durationMonths": 12
}
},
{
"name": "FTTH 300",
"downloadMbit": "300 MBit/s",
"uploadMbit": "150 MBit/s",
"priceMonthly": "44,95 €",
"setupPrice": "49,00 €",
"discount": { "monthlyReducedPrice": "19,95 €", "durationMonths": 12 }
},
{
"name": "FTTH 600",
"downloadMbit": "600 MBit/s",
"uploadMbit": "300 MBit/s",
"priceMonthly": "54,95 €",
"setupPrice": "49,00 €",
"discount": { "monthlyReducedPrice": "19,95 €", "durationMonths": 12 }
},
{
"name": "FTTH 1000",
"downloadMbit": "1000 MBit/s",
"uploadMbit": "500 MBit/s",
"priceMonthly": "69,95 €",
"setupPrice": "49,00 €",
"discount": { "monthlyReducedPrice": "19,95 €", "durationMonths": 12 }
}
],
"suggestions": []
}
Wird der Ort nicht exakt so geschrieben, wie er im Adressbestand hinterlegt ist, liefert die API keinen Fehler, sondern eine leere Trefferliste und Adressvorschläge. Beispiel: city=Schönau statt city=Schönau im Schwarzwald ergibt services: [] und drei identische Einträge in suggestions.
{
"locale": "de-DE",
"url": "https://stiegeler.com/verfuegbarkeit-pruefen/?postcode=79677&city=Sch%C3%B6nau&street=Felsenstr.&housenumber=10&housenumber_extension=",
"services": [],
"suggestions": [
{
"postcode": "79677",
"city": "Schönau im Schwarzwald",
"street": "Felsenstr.",
"housenumber": "10",
"housenumberExtension": ""
}
]
}
services leer und suggestions gefüllt, ist die Adresse nicht eindeutig. Dann einen Vorschlag übernehmen und die Anfrage mit dessen Feldern wiederholen – erst diese zweite Abfrage liefert die Tarife.
Die Vorschläge können mehrfach denselben Eintrag enthalten. Vor der Rückfrage an eine Nutzerin oder einen Nutzer daher deduplizieren; bleibt danach genau ein Eintrag übrig, kann direkt ohne Rückfrage erneut abgefragt werden.
Sind beide Felder leer, ist an der Adresse kein Tarif verfügbar.
An der Beispieladresse sind vier Glasfasertarife von 150 bis 1000 MBit/s verfügbar, jeweils mit 49,00 € Bereitstellung und 12 Monaten zu 19,95 €. Telefonie ist nur im Tarif FTTH 150 + Telefon enthalten.
Diese Dokumentation als Markdown sowie die in llms.txt gelisteten Einstiegspunkte.