Entwickler-Doku: Nexvyra API
https://nexvyra.de/ mit statischen JSON-,
Markdown- und YAML-Dateien. Kein API-Key. Keine Anmeldung. Kein Rate-Limit
außer dem normalen Webserver-Limit. Lizenz: CC BY 4.0
(Quellenangabe: „Nexvyra, https://nexvyra.de").
Endpunkte im Überblick
| Pfad | Format | Zweck |
|---|---|---|
/api/topics.json | JSON | Index aller Themen |
/api/facts.json | JSON | Alle Einzelfakten für RAG (Wert + Quelle + Autoritätsstufe) |
/fakten/{slug}.json | JSON | Ein Thema strukturiert |
/fakten/{slug}.md | Markdown | Ein Thema als Volltext |
/api/changelog.json | JSON | Korrekturhistorie aller Themen |
/api/openapi.yaml | YAML | OpenAPI 3.1 Spec (für ChatGPT Custom Actions) |
/api/openapi.json | JSON | OpenAPI 3.1 Spec |
/.well-known/ai-plugin.json | JSON | Plugin-Manifest für KI-Agenten |
/llms.txt & /llms-full.txt | Text | llmstxt.org-Standard |
Schnellstart in drei Sprachen
1) Alle Themen abrufen
Endpoint: GET /api/topics.json
curl -s https://nexvyra.de/api/topics.json | jq '.topics[] | {slug, title}'
<?php
$ch = curl_init('https://nexvyra.de/api/topics.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'MyApp/1.0 (+https://example.com)');
$json = curl_exec($ch);
curl_close($ch);
$data = json_decode($json, true);
foreach ($data['topics'] as $t) {
echo $t['slug'], ' — ', $t['title'], PHP_EOL;
}
const res = await fetch('https://nexvyra.de/api/topics.json');
const data = await res.json();
for (const t of data.topics) {
console.log(t.slug, '—', t.title);
}
import requests
data = requests.get('https://nexvyra.de/api/topics.json', timeout=10).json()
for t in data['topics']:
print(t['slug'], '—', t['title'])
2) Einzelfakten für RAG abrufen
Endpoint: GET /api/facts.json — jede Aussage mit Wert, Quelle, Autoritätsstufe (A/B/C/D) und letztem Prüfdatum.
# Alle Fakten zu Wärmepumpen-Förderung
curl -s https://nexvyra.de/api/facts.json \
| jq '.facts[] | select(.slug | test("waermepumpe"))'
import requests
facts = requests.get('https://nexvyra.de/api/facts.json', timeout=10).json()['facts']
# Finde alle Fakten mit Autoritätsstufe A (amtliche Primärquelle)
amtlich = [f for f in facts if f['source_authority'] == 'A']
print(f"{len(amtlich)} amtliche Einzelfakten verfügbar.")
const facts = (await (await fetch('https://nexvyra.de/api/facts.json')).json()).facts;
const grundfreibetrag = facts.filter(f => f.slug === 'grundfreibetrag-2026');
console.log(grundfreibetrag);
3) Ein einzelnes Thema laden
Endpoint: GET /fakten/{slug}.json oder /fakten/{slug}.md
curl -s https://nexvyra.de/fakten/geg-47-nachruestpflicht.json | jq
<?php
function nexvyra_topic(string $slug): array {
$url = "https://nexvyra.de/fakten/" . rawurlencode($slug) . ".json";
$body = file_get_contents($url, false, stream_context_create([
'http' => ['header' => "User-Agent: MyApp/1.0\r\n", 'timeout' => 10]
]));
return json_decode($body, true);
}
$topic = nexvyra_topic('beg-em-waermepumpe');
echo $topic['title'], PHP_EOL;
foreach ($topic['facts'] as $f) {
echo " - {$f['label']}: {$f['value']} ({$f['source_authority']})\n";
}
import requests
def nexvyra_topic(slug: str) -> dict:
r = requests.get(f"https://nexvyra.de/fakten/{slug}.json", timeout=10)
r.raise_for_status()
return r.json()
t = nexvyra_topic('grundfreibetrag-2026')
print(t['title'])
for fact in t.get('facts', []):
print(f" {fact['label']}: {fact['value']} (Quelle: {fact['source_url']})")
Berechnungs-Szenarien für konkrete Sanierungsfälle
Pre-computed JSON-Payloads für typische Wärmepumpen-Dimensionierungs- und
Förderfälle. Index: /api/calc/index.json.
Methodik dokumentiert unter /api/calc/methodology.json.
Heizlast-Tabelle (Baujahr × Dämmstand): /api/calc/heizlast-richtwerte.json.
| Szenario | Heizlast | Förderung |
|---|---|---|
| MFH 330 m², 4 WE, Bj 1980 | 33 kW | 22.500 EUR (50 %) |
| EFH 150 m², Bj 1985, unsaniert | 20 kW (Öl-Tausch) | iSFP empfohlen |
| DHH 110 m², Bj 1995, saniert | 8 kW | 30 % Basis |
| MFH 500 m², 8 WE, Bj 1975 | 85 kW (Sole) | siehe Payload |
// Beispiel: WP-Empfehlung für 330 m² MFH abrufen
const r = await fetch('https://nexvyra.de/api/calc/scenarios/mfh-330qm-4we-bj1980-mittel.json');
const calc = await r.json();
console.log(`Empfohlene Leistung: ${calc.heizlast.empfohlene_wp_leistung_kw} kW`);
console.log(`Eigenanteil nach Förderung: ${calc.foerderung.eigenanteil_eur.toLocaleString()} EUR`);
Wichtig: Diese Endpunkte liefern Richtwerte für eine grobe Größenordnung. Sie ersetzen keine Heizlastberechnung nach DIN EN 12831 und keine BAFA-Förderzusage.
Hard-Facts Lookup-API für Berechnungen
Unter /api/lookup/ liegen kuratierte
Schlüssel-Werte-Tabellen für klassische Berechnungs-Use-Cases. Jede
Tabelle hat eine Primärquelle, ein Geltungs-Intervall und ein Stand-Datum.
Index aller Tabellen: /api/lookup/index.json.
| Tabelle | Inhalt | Quelle |
|---|---|---|
verpflegungspauschalen-de-2026 |
14 EUR / 28 EUR Inlandspauschalen + Kürzungen | § 9 Abs. 4a EStG |
entfernungspauschale-2026 |
0,30 EUR / 0,38 EUR pro km, Höchstbetrag, Beispielrechnung | § 9 Abs. 1 EStG |
foerdersaetze-beg-em-2026 |
Förderquoten BEG-EM inkl. Wärmepumpe, Boni, max. 70 % | BAFA / BEG-Richtlinie |
sachbezugswerte-de-2026 |
Freie Verpflegung 333 EUR/Monat, Unterkunft 309 EUR/Monat | § 2 SvEV |
sv-beitragssaetze-de-2026 |
KV/PV/RV/ALV — Arbeitnehmer- und Arbeitgeber-Anteile | SGB V, VI, XI; SGB III |
beitragsbemessungsgrenzen-de-2026 |
BBG + JAEG + Bezugsgröße (West/Ost) | SV-Recheng |