Antragio

Für Entwickler

Die öffentliche API

Lesezugriff auf die Programmdatenbank und auf das Matching. Kein Schlüssel, keine Anmeldung, kein Vertrag. JSON über HTTPS, CORS ist offen, damit du direkt aus dem Browser abfragen kannst. Es werden keine personenbezogenen Daten ausgeliefert.

Basis-URL

https://antragio.com/api/v1

Ratenbegrenzung

300 Aufrufe pro Stunde und IP

Format

JSON, UTF-8, CORS offen

Endpunkte

GET/api/v1/programs

Liste der Förderprogramme, gefiltert und geblättert.

ParameterTypBedeutung
qstringVolltextsuche über Name, Fördergeber und Kurzbeschreibung.
categorystringKategorie-Slug, zum Beispiel heizung oder fenster-türen.
levelstringbund, land, eu, kommune oder sonstige.
fundingTypestringzuschuss, kredit, bürgschaft, beteiligung, steuervorteil, beratung, prämie, sonstiges.
targetGroupstringprivat, unternehmen, gründer, verein, kommune und weitere.
regionstringKürzel des Bundeslandes, zum Beispiel BY. Bundesweite Programme sind immer enthalten.
statusstringaktiv, ausgelaufen oder geplant.
limitnumberAnzahl pro Seite, Standard 25, Maximum 100.
offsetnumberVersatz für die Blätterung, Standard 0.

Aufruf

curl "https://antragio.com/api/v1/programs?category=heizung&region=BY&limit=2"

Antwort, gekürzt

{
  "total": 37,
  "limit": 2,
  "offset": 0,
  "count": 2,
  "filters": { "q": null, "category": "heizung", "level": null, "region": "BY" },
  "programs": [
    {
      "slug": "beispiel-programm",
      "name": "...",
      "provider": "...",
      "level": "bund",
      "regions": ["DE"],
      "targetGroups": ["privat"],
      "categories": ["heizung"],
      "fundingType": "zuschuss",
      "amountMin": null,
      "amountMax": null,
      "ratePercent": null,
      "shortDescription": "...",
      "requirements": ["..."],
      "deadline": null,
      "applicationUrl": "...",
      "sourceUrl": "...",
      "status": "aktiv",
      "confidence": "hoch",
      "lastVerified": "2026-01-01T00:00:00.000Z",
      "url": "https://antragio.com/programm/beispiel-programm"
    }
  ],
  "disclaimer": "...",
  "license": "..."
}
GET/api/v1/programs/{slug}

Ein einzelnes Programm über seinen Slug.

ParameterTypBedeutung
slugPfadDer Slug aus der Liste, identisch mit dem Slug der Programmseite.

Aufruf

curl "https://antragio.com/api/v1/programs/beispiel-programm"

Antwort, gekürzt

{
  "program": { "slug": "beispiel-programm", "name": "...", "...": "..." },
  "disclaimer": "...",
  "license": "..."
}
GET/api/v1/categories

Alle Kategorien mit Anzahl der Programme, dazu Ebenen, Förderarten und Zielgruppen als gültige Filterwerte.

Aufruf

curl "https://antragio.com/api/v1/categories"

Antwort, gekürzt

{
  "total": 24,
  "countsAvailable": true,
  "categories": [
    { "key": "heizung", "label": "Heizung", "slug": "heizung", "programCount": 37,
      "url": "https://antragio.com/förderung/heizung" }
  ],
  "levels": [{ "key": "bund", "label": "Bund" }],
  "fundingTypes": [{ "key": "zuschuss", "label": "Zuschuss" }],
  "targetGroups": [{ "key": "privat", "label": "Privatpersonen" }],
  "disclaimer": "...",
  "license": "..."
}
POST/api/v1/match

Berechnet Treffer zu einer Situation. Nichts wird gespeichert, kein Konto, kein Cookie. Unbekannte Felder werden verworfen.

ParameterTypBedeutung
answersobjectDie Angaben zur Situation, siehe Felder unten.
limitnumberAnzahl der zurückgegebenen Treffer, Standard 25, Maximum 100.
offsetnumberVersatz für die Blätterung.

Aufruf

curl -X POST "https://antragio.com/api/v1/match" \
  -H "content-type: application/json" \
  -d '{"answers":{"persona":"privat","bundesland":"BY","vorhaben":["heizung"],
       "eigentum":"eigentuemer","heizungAlt":"öl","budget":"20_100k"},"limit":5}'

Antwort, gekürzt

{
  "total": 12,
  "limit": 5,
  "offset": 0,
  "count": 5,
  "totalConsidered": 940,
  "estimatedPotential": 24000,
  "answersUsed": { "persona": "privat", "bundesland": "BY" },
  "matches": [
    {
      "score": 88,
      "estimatedAmount": 12000,
      "reasons": ["..."],
      "warnings": ["..."],
      "checklist": ["..."],
      "program": { "slug": "beispiel-programm", "...": "..." }
    }
  ],
  "disclaimer": "...",
  "license": "..."
}

Felder für den Match-Aufruf

Alle Felder sind freiwillig. Je mehr du mitgibst, desto genauer wird die Bewertung. Felder, die nicht in dieser Liste stehen, werden serverseitig entfernt.

FeldTypWerte
personastringprivat, unternehmen, selbständig, gründer, verein, kommune, landwirt, student, arbeitnehmer, vermieter.
bundeslandstringZweibuchstabiges Kürzel, zum Beispiel BW, BY, NW.
ortstringOrt für kommunale Programme.
vorhabenstring[]Kategorien wie heizung, photovoltaik, gründung, digitalisierung.
gebaeudeBaujahrstringvor1979, 1979_2001, nach2002 oder neubau.
eigentumstringeigentümer, mieter oder kaufabsicht.
heizungAltstringöl, gas, nachtspeicher, holz, wärmepumpe, fernwärme, keine.
antriebstringelektro, hybrid oder verbrenner, relevant für die THG-Quote.
gruendungsStatusstringidee, in_gründung, gegründet oder etabliert.
mitarbeiterstring0, 1_9, 10_49, 50_249 oder 250plus.
budgetstringunter5k, 5_20k, 20_100k, 100k_500k, über500k oder unklar.
zeithorizontstringsofort, 3_monate, 12_monate oder später.
freitextstringFreie Beschreibung des Vorhabens, maximal 2000 Zeichen.

Die vollständige Liste der akzeptierten Felder ist dieselbe, die auch der Check im Browser benutzt. Unbekannte Werte werden still verworfen, der Aufruf schlägt deswegen nicht fehl.

Ratenbegrenzung

300 Aufrufe pro Stunde und IP-Adresse, gleitendes Fenster über alle v1-Endpunkte zusammen. Jede Antwort trägt die aktuellen Werte im Kopf.

  • X-RateLimit-Limit Anzahl im Fenster
  • X-RateLimit-Remaining noch offen
  • X-RateLimit-Reset Zeitpunkt in Sekunden seit 1970
  • Retry-After nur bei Status 429, Wartezeit in Sekunden

Brauchst du mehr, schreib uns kurz. Ein voller Abzug der Datenbank in einem Rutsch ist über limit und offset ohnehin möglich.

Statuscodes

  • 200 Antwort mit Daten
  • 400 Parameter oder Body sind ungültig, die Meldung steht im Feld error
  • 404 Slug existiert nicht
  • 429 Ratenbegrenzung erreicht, siehe Retry-After
  • 503 Datenbank gerade nicht erreichbar, später erneut versuchen

Fehlerantworten haben immer dieselbe Form: ein Feld error mit deutschem Klartext, dazu disclaimer und license.

Lizenz und Haftung

Die Daten dürfen frei genutzt werden, auch kommerziell, solange die Quelle genannt wird: Antragio, mit Link auf https://antragio.com. Nenne bitte auch den Zeitpunkt des Abrufs, weil sich Förderprogramme laufend ändern.

Jede Antwort enthält die Felder disclaimer und license. Gib den Hinweis aus dem Feld disclaimer in deiner Oberfläche sichtbar weiter: Die Angaben sind ohne Gewähr, verbindlich ist allein die jeweils gültige Richtlinie des Fördergebers. Die Daten sind keine Förder-, Rechts- oder Steuerberatung.

Beträge, Fördersätze und Fristen kommen genau so aus der Datenbank, wie sie recherchiert wurden. Felder, die wir nicht belegen können, sind null und werden nicht geschätzt.

Für KI-Assistenten

MCP-Server

Wenn du einen KI-Assistenten anbindest, brauchst du diese REST-Endpunkte nicht selbst zu verdrahten. Unter https://antragio.com/mcp liegt ein MCP-Server, der dieselben Daten als Werkzeuge anbietet: Programme suchen, ein Programm nachschlagen, Treffer berechnen.

Zum MCP-Server

Wenn du etwas baust, das die Daten benutzt: Schreib dazu, wann du sie geholt hast. Nichts ist ärgerlicher als eine Frist, die letztes Jahr galt.