Zum Inhalt springen

API Documentation

rechner-hub-api — Version 2026.30 · Changelog

← Deutsche Version

Getting Started

100 endpoints — 80 POST, 20 GET. You send input values, the API does the math, you get the result. Every response uses the same envelope:

{
  "success": true,
  "data": { ... },
  "input_echo": { ... },
  "meta": {
    "tax_year": 2026,
    "disclaimer": "..."
  }
}

input_echo shows you what the API actually used — including defaults you didn’t send. Saves you time when debugging.

Money values are strings, not floats — "2372.83" instead of 2372.83. No IEEE 754 rounding issues when you’re dealing with tax amounts.

New endpoints in 2026.30

3 new municipal data feeds — all keyed by the 8-digit official municipality key (AGS), ETag/304-cacheable. Details below and in the changelog.

  • GET /v1/mietstufe/{ags} — housing-benefit rent tier I–VII (WoGV annex, valid from 2023-01-01); prefills the rent-tier field of the Wohngeld calculator
  • GET /v1/einkommen/{ags} — total income per taxpayer (§ 2(3) EStG) as a time series — not average salary, 3–4 year data lag
  • GET /v1/schulden/{ags} — municipal debt at district level (core budget, Dec 31) incl. debt per capita

New endpoints in 2026.29

14 new endpoints — 7 calculators and 7 batches. Details and response schemas in the changelog and the OpenAPI spec.

  • POST /v1/verpflegungsmehraufwand — per-diem meal allowances (§ 9(4a) EStG)
  • POST /v1/kuendigungsfrist — statutory notice periods (§ 622 BGB)
  • POST /v1/teilzeit — net salary comparison full-time vs. part-time
  • POST /v1/vl — employee savings bonus for capital-forming payments (§ 13 5. VermBG)
  • POST /v1/rentenpunkte — pension points (§§ 63 ff. SGB VI)
  • POST /v1/rentenluecke — pension gap calculation
  • POST /v1/krankenkassenbeitrag — health and long-term care insurance contribution with employee/employer split
  • POST /v1/einkommensteuer/batch, /v1/netto-brutto/batch, /v1/gewerbesteuer/batch, /v1/grunderwerbsteuer/batch, /v1/kapitalertragsteuer/batch, /v1/kindesunterhalt/batch, /v1/firmenwagen/batch — batch variants with per-item error isolation; cap 200 items for netto-brutto and firmenwagen, cap 1,000 for all others

Errors

When input doesn’t validate, the response looks like this:

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Request validation failed.",
    "details": [
      {
        "field": "bruttolohn",
        "message": "Input should be greater than or equal to 0",
        "type": "greater_than_equal"
      }
    ]
  }
}
StatusMeaning
400Bad input. details tells you which field and why.
403Auth problem. Shouldn’t happen through RapidAPI.
422Malformed JSON or wrong content type.
500Bug on our end. Shouldn’t happen.

POST /v1/brutto-netto

Monthly gross salary in, full payslip breakdown out. Income tax, social security, employer costs — all itemized.

Request Fields

FieldTypeRequiredDefaultDescription
bruttolohnnumberyesMonthly gross salary in EUR (0–1,000,000)
steuerklasseintyesTax class (1–6)
bundeslandstringnoNRWGerman state — matters for church tax rate
kirchensteuerboolnofalseChurch tax member?
kinderintno0Number of children (nursing care insurance)
geburtsjahrintno1985Birth year (childless surcharge if born after 1967)
kv_zusatzbeitragnumberno2.9Health insurance additional rate in % (2026 avg: 2.9%)
tax_yearintno2026Tax year (2024–2026)

Minimal Example

{"bruttolohn": 3500, "steuerklasse": 1}

Response Fields

Employee: brutto_monat/jahr, netto_monat/jahr, abzuege_gesamt_monat. Taxes: lohnsteuer_monat, soli_monat, kirchensteuer_monat. Social security: kv_an, pv_an, rv_an, av_an, sv_gesamt (all _monat).

Employer: ag_kv, ag_pv, ag_rv, ag_av, ag_umlage, ag_gesamt, ag_kosten_gesamt (total cost to employ).

Rates: kv_satz, pv_satz, rv_satz, av_satz — the actual percentages applied.

Scenarios: 5 what-if calculations — what changes at ±500, ±1,000 and +5,000 EUR gross.

Show full example

Request

POST /v1/brutto-netto

{"bruttolohn": 3500, "steuerklasse": 1}

Response (shortened)

{
  "success": true,
  "data": {
    "netto_monat": "2351.83",
    "lohnsteuer_monat": "386.92",
    "soli_monat": "0.0",
    "sv_gesamt_monat": "761.25",
    "ag_kosten_gesamt": "4296.25"
  }
}

POST /v1/grunderwerbsteuer

Property transfer tax, notary fees, land registry, and broker commission — all closing costs at a glance.

Request Fields

FieldTypeRequiredDefaultDescription
kaufpreisnumberyesPurchase price in EUR (1,000–100,000,000)
bundeslandstringyesGerman state where the property is located
mit_maklerboolnofalseInclude broker commission?
makler_prozentnumberno3.57Broker commission in % incl. VAT

Minimal Example

{"kaufpreis": 300000, "bundesland": "Bayern"}

Response Fields

kaufpreis, bundesland, steuersatz, grunderwerbsteuer (the tax itself). notarkosten, notar_prozent, grundbuchkosten, grundbuch_prozent (notary + land registry). maklerkosten, makler_prozent (0 if no broker). nebenkosten_gesamt, nebenkosten_prozent, kaufpreis_gesamt (totals).

bundeslaender_vergleich — all 16 states side by side: tax rate and transfer tax for your purchase price. Sorted by rate.

Show full example

Request

POST /v1/grunderwerbsteuer

{"kaufpreis": 300000, "bundesland": "Bayern"}

Response (shortened)

{
  "success": true,
  "data": {
    "grunderwerbsteuer": "10500.0",
    "notarkosten": "4500.0",
    "nebenkosten_gesamt": "16500.0",
    "kaufpreis_gesamt": "316500.0",
    "bundeslaender_vergleich": [...]
  }
}

POST /v1/minijob

Auto-detects Minijob (≤556 €), Midijob (556–2,000 €), or regular employment and calculates social security for both employee and employer.

Request Fields

FieldTypeRequiredDefaultDescription
bruttogehaltnumberyesMonthly gross income in EUR (0–10,000)
kinderlos_ueber_23boolnofalseChildless and over 23? (extra nursing insurance surcharge)
bundeslandstringnoBerlinOnly matters for Saxony (different nursing insurance split)

Examples

{"bruttogehalt": 550}

{"bruttogehalt": 1200, "kinderlos_ueber_23": true, "bundesland": "Sachsen"}

Response Fields

status (“minijob”, “midijob”, or “volle_sv”). brutto, netto, sv_abzuege. Individual contributions: kv_beitrag, pv_beitrag, rv_beitrag, av_beitrag. stunden_mindestlohn — how many hours per month at 13.90 €/h minimum wage.

vergleich_plus_100, vergleich_minus_100 — net impact of ±100 € gross. hinweis — human-readable explanation of the employment status (in German).

Show full example

Request

POST /v1/minijob

{"bruttogehalt": 550}

Response (shortened)

{
  "success": true,
  "data": {
    "status": "minijob",
    "brutto": "550.0",
    "netto": "550.0",
    "sv_abzuege": "0.0",
    "stunden_mindestlohn": "39.6"
  }
}

POST /v1/abfindung

Severance tax with and without the “fifth rule” (§34 EStG). Shows the exact savings in euros.

Request Fields

FieldTypeRequiredDefaultDescription
abfindungnumberyesSeverance amount in EUR (0–10,000,000)
jahresbruttonumberyesRegular annual gross salary (without severance) in EUR
steuerklasseintno1Tax class (1–6)
bundeslandstringnoNRWGerman state (for church tax rate)
kirchenmitgliedboolnofalseChurch tax member?
kindernumberno0Child tax allowances (0, 0.5, 1, ...)

Minimal Example

{"abfindung": 50000, "jahresbrutto": 60000}

Response Fields

fuenftelregel: est, soli, kirchensteuer, steuer_gesamt, netto, effektiv_prozent — with reduced taxation for extraordinary income.

normal: Same fields — regular taxation, no fifth rule applied.

ersparnis — how much you save by applying the fifth rule, in EUR.

Show full example

Request

POST /v1/abfindung

{"abfindung": 50000, "jahresbrutto": 60000}

Response (shortened)

{
  "success": true,
  "data": {
    "fuenftelregel": {
      "steuer_gesamt": "18279.36",
      "netto": "31720.64"
    },
    "normal": {
      "steuer_gesamt": "20930.27",
      "netto": "29069.73"
    },
    "ersparnis": "2650.91"
  }
}

POST /v1/erbschaftsteuer

Inheritance or gift — allowance, tax class, and tax liability under ErbStG. Compares all 12 relationship types in one response.

Request Fields

FieldTypeRequiredDefaultDescription
wertnumberyesValue of inheritance/gift in EUR (0–1,000,000,000)
verwandtschaftstringyesRelationship, e.g. “Kind”, “Ehegatte / Lebenspartner”, “Geschwister”
modusstringnoerbschaft“erbschaft” (inheritance) or “schenkung” (gift)
alter_kindintnonullChild’s age (0–27, for care allowance in inheritance)

Minimal Example

{"wert": 500000, "verwandtschaft": "Kind"}

Response Fields

steuerklasse (I/II/III), freibetrag, versorgungsfreibetrag, freibetrag_gesamt, steuerpflichtiger_erwerb. steuersatz, steuer, effektiv_prozent, netto, modus_label — the bottom line.

vergleich — same calculation for all 12 relationship types, so you can compare in one request.

Show full example

Request

POST /v1/erbschaftsteuer

{"wert": 500000, "verwandtschaft": "Kind"}

Response (shortened)

{
  "success": true,
  "data": {
    "steuerklasse": "I",
    "freibetrag": "400000",
    "steuersatz": 11,
    "steuer": "11000.0",
    "netto": "489000.0",
    "vergleich": [...]
  }
}

POST /v1/weihnachtsgeld

How much of your bonus actually lands in your account? Income tax, soli, church tax and social security on a special payment — taxed as other remuneration (§39b Abs. 3 EStG).

Request Fields

FieldTypeRequiredDefaultDescription
monatslohnnumberyesRegular monthly gross salary in EUR
sonderzahlungnumberyesGross bonus payment in EUR
steuerklasseintno1Tax class (1–6)
kindernumberno0Child tax allowances
kirchensteuerboolnofalseChurch tax member?
bundeslandstringnoNRWGerman state

Minimal Example

{"monatslohn": 4000, "sonderzahlung": 4000}

Response Fields

brutto_sonderzahlung — the gross bonus amount.

lohnsteuer, soli, kirchensteuer, sv_abzuege — the individual deductions on the bonus (other remuneration, §39b Abs. 3 EStG). netto — what's left after all deductions.

Show full example

Request

POST /v1/weihnachtsgeld

{"monatslohn": 4000, "sonderzahlung": 4000}

Response (shortened)

{
  "success": true,
  "data": {
    "brutto_sonderzahlung": "4000.0",
    "lohnsteuer": "991.0",
    "soli": "0.0",
    "kirchensteuer": "0.0",
    "sv_abzuege": "615.22",
    "netto": "2393.78"
  }
}

POST /v1/steuerklassen

III/V or IV/IV — which combo gives more take-home pay? Runs both variants for married couples.

Request Fields

FieldTypeRequiredDefaultDescription
brutto_partner_1numberyesMonthly gross partner 1 in EUR
brutto_partner_2numberyesMonthly gross partner 2 in EUR
bundeslandstringnoNRWGerman state
kinderintno0Number of children
kirchensteuerboolnofalseChurch tax member?

Minimal Example

{"brutto_partner_1": 5000, "brutto_partner_2": 3000}

Response Fields

variante_3_5: Each partner gets steuerklasse, brutto, netto, lohnsteuer, soli, kirchensteuer, sv_gesamt. Plus haushalt_netto for the household.

variante_4_4: Same structure, different tax classes.

differenz_monat, differenz_jahr — the gap between both options. empfehlung — plain-text recommendation (German). warnungen — edge-case warnings.

Show full example

Request

POST /v1/steuerklassen

{"brutto_partner_1": 5000, "brutto_partner_2": 3000}

Response (shortened)

{
  "success": true,
  "data": {
    "differenz_monat": "361.17",
    "differenz_jahr": "4334.04",
    "empfehlung": "SK III/V bringt ...",
    "variante_3_5": {...},
    "variante_4_4": {...}
  }
}

POST /v1/einkommensteuer

Pure §32a income tax tariff. Taxable income in, tax + marginal rate + bracket info out. Splitting, solidarity surcharge, and church tax built in.

Request Fields

FieldTypeRequiredDefaultDescription
zvenumberyesTaxable income in EUR (0–10,000,000)
zusammenveranlagungboolnofalseTrue for spousal splitting (§32a para. 5)
kirchensteuerboolnofalseChurch tax member?
bundeslandstringnoNRWGerman state (for church tax rate 8%/9%)
tax_yearintno2026Tax year (2024–2026)

Minimal Example

{"zve": 50000}

Response Fields

einkommensteuer, solidaritaetszuschlag, kirchensteuer, steuer_gesamt — all in EUR. grenzsteuersatz — what the next euro costs you in tax. durchschnittssteuersatz — income tax divided by taxable income. belastungsquote — total burden (ESt + Soli + KiSt) as a percentage of income.

tarifzone — which of the 5 brackets you’re in, with name and rate range.

grundfreibetrag — the tax-free allowance (doubled when splitting applies).

Show full example

Request

POST /v1/einkommensteuer

{"zve": 50000}

Response (shortened)

{
  "success": true,
  "data": {
    "einkommensteuer": "10548.0",
    "grenzsteuersatz": "35.0",
    "durchschnittssteuersatz": "21.1",
    "tarifzone": {
      "zone": 3,
      "name": "Obere Progressionszone",
      "satz": "24–42 %"
    }
  }
}

POST /v1/sparplan

Compound interest with yearly tax settlement. 25% capital gains tax + solidarity surcharge, optionally church tax. Includes saver’s allowance and annual rate increases.

Request Fields

FieldTypeRequiredDefaultDescription
startkapitalnumberno0Lump sum investment at start in EUR
monatliche_sparratenumberno0Monthly savings amount in EUR
laufzeit_jahreintno10Investment period in years (1–100)
rendite_panumberno7Expected annual return in percent
sparerpauschbetragnumberno1000Annual tax-free allowance (1,000 single / 2,000 joint)
kirchensteuer_satznumberno00 (none), 0.08 (BY/BW), 0.09 (other states)
dynamik_panumberno0Annual increase of savings rate in percent

Minimal Example

{"monatliche_sparrate": 500, "laufzeit_jahre": 20}

Response Fields

endkapital_brutto, endkapital_netto — what you end up with, before and after tax. einzahlungen_gesamt — how much you put in total. ertraege_brutto, ertraege_netto — pure profit, before and after tax. steuer_gesamt — total capital gains tax deducted over the entire period. steuersatz_effektiv — effective rate including Soli and church tax.

jahresverlauf — year-by-year breakdown: cumulative contributions, returns, tax paid, gross/net capital, and monthly savings rate for that year.

Show full example

Request

POST /v1/sparplan

{"monatliche_sparrate": 500, "laufzeit_jahre": 20}

Response (shortened)

{
  "success": true,
  "data": {
    "einzahlungen_gesamt": "120000.0",
    "endkapital_brutto": "242719.78",
    "endkapital_netto": "215333.62",
    "steuer_gesamt": "27386.16",
    "jahresverlauf": [...]
  }
}

POST /v1/netto-brutto

Reverse calculation: enter your target net salary, get the required gross. Same tax and social security logic as brutto-netto.

Minimal example

{"nettolohn": 2500, "steuerklasse": 1}

Same optional fields as brutto-netto (bundesland, kirchensteuer, etc.)

POST /v1/lohnkosten-netto

How much net salary from a given employer cost budget? Reverse calc: budget in, gross and net out.

Minimal example

{"lohnkosten_ziel": 5000, "steuerklasse": 1}

POST /v1/arbeitgeber-kosten

Total employer cost breakdown: health, pension, unemployment, long-term care, U1/U2 levies, insolvency insurance.

Minimal example

{"brutto_monat": 4000}

POST /v1/pfaendung

Wage garnishment limits per §850c ZPO. Shows attachable and protected amounts, adjusted for dependents.

Minimal example

{"nettoeinkommen": 2500}

POST /v1/progressionsvorbehalt

Extra tax burden from wage replacement benefits (unemployment, parental, sick pay) per §32b EStG.

Minimal example

{"einkommen": 40000, "lohnersatzleistung": 10000}

POST /v1/gewerbesteuer

Trade tax for sole proprietors, partnerships and corporations. Includes exemption, 3.5% base rate, §35 credit and rate comparison across 7 assessment rates.

Minimal example

{"gewinn": 100000, "rechtsform": "kapitalgesellschaft", "hebesatz": 490}

Instead of hebesatz, you can pass ags (8-digit municipal code) or gemeinde (name search).

GET /v1/hebesaetze

Search 10,754 German municipalities by name. Returns trade tax assessment rate, AGS code and state.

Example

GET /v1/hebesaetze?q=M%C3%BCnchen&limit=5

GET /v1/hebesaetze/{ags}

Single lookup by 8-digit AGS, e.g. GET /v1/hebesaetze/09162000

POST /v1/koerperschaftsteuer

GmbH total tax burden: 15% corporate tax + solidarity surcharge + trade tax. Adds capital gains tax on distributions. Includes sole proprietor comparison.

Minimal example

{"gewinn": 100000, "hebesatz": 490}

Optional: ausschuettung_prozent (0–100, default 100), kirchenmitglied, bundesland

POST /v1/firmenwagen

Company car benefit: 1% rule for combustion, 0.5% for plug-in hybrids, 0.25% for pure EVs (up to €70k list price). Calculates the taxable benefit and net salary with vs. without the car.

Minimal example

{"listenpreis": 40000, "entfernung_km": 25, "antriebsart": "verbrenner", "bruttogehalt": 4000}

POST /v1/elterngeld

Parental allowance (Basiselterngeld + ElterngeldPlus). Replacement rate 65–67%, sibling bonus, multiple birth bonus, part-time option.

Minimal example

{"nettoeinkommen_monat": 2500}

POST /v1/alg1

Unemployment benefit (ALG I): assessment basis, flat-rate deductions, 60/67% benefit rate and entitlement period per §147 SGB III.

Minimal example

{"bruttogehalt_monat": 4000}

POST /v1/krankengeld

Sick pay: 70% of gross, capped at 90% of net. Deducts long-term care, pension and unemployment insurance (not health insurance). Shows income loss.

Minimal example

{"bruttogehalt_monat": 4000}

POST /v1/pendlerpauschale

German commuter allowance per §9 EStG. 0.38 EUR per one-way kilometer from km 1. The 4,500 EUR annual cap applies to public transport, bicycle and carpooling — not to driving your own car.

Minimal example

{"entfernung_km": 25, "grenzsteuersatz": 35}

POST /v1/schenkungsteuer

German gift tax (ErbStG). Tax classes I–III, personal allowances (20k–500k EUR), progressive rates (7–50%). Unlike inheritance, the care allowances per §17 do not apply to lifetime gifts.

Minimal example

{"wert": 450000, "verwandtschaft": "kind"}

POST /v1/grundsteuer

Property tax valid from 2025. Federal model for eleven states, plus five state-specific variants: Baden-Württemberg (land value), Bayern (area), Hamburg (residential zone), Hessen (area–factor), Niedersachsen (area–location). The required fields depend on the model — missing ones are surfaced in the error response.

Example (Bayern area model)

{"bundesland": "Bayern", "hebesatz_prozent": 535, "grundstuecksflaeche_m2": 500, "gebaeudeflaeche_m2": 140}

POST /v1/kurzarbeitergeld

Short-time work benefit per §§95–109 SGB III. 60% without children, 67% with. Applied to the flat-rate net difference per §106. Since 2026 a 21% SSC flat rate applies (was 20%).

Minimal example

{"brutto_regulaer": 3200, "ausfallstunden_prozent": 50, "hat_kinder": true}

POST /v1/buergergeld

German basic income support (SGB II). Standard needs, additional needs per §21, housing costs, and income offsetting with §11b allowances. The response includes a breakdown of how the deduction chain ran.

Minimal example

{"erwachsene": 2, "kinder_alter": [8, 12], "kaltmiete": 700, "heizkosten": 120, "nettoeinkommen": 1180}

POST /v1/bafoeg

German federal student aid (BAföG). Basic needs per §13, housing allowance, health insurance supplement per §13a, parental income with allowances per §25, own income per §23. Asset limits handled automatically.

Minimal example

{"ausbildungstyp": "hochschule", "bei_eltern": false, "alter": 22, "elterneinkommen_netto": 3200}

POST /v1/hebesaetze/bulk

Bulk lookup for up to 1,000 AGS codes per request. Unknown AGS are returned in nicht_gefunden instead of failing the whole request.

Minimal example

{"ags_liste": ["05315000", "09162000", "11000000"]}

Scenario Bundles

Four endpoints that combine multiple calculators in a single call. Built for applications that mirror real life situations — job change, starting a family, buying property, going freelance. Input is deliberately lean; the response carries all sub-results.

POST /v1/szenario/jobwechsel

Job-change bundle: old vs. new net salary, severance with fifth-rule tax treatment, unemployment benefit I, and progression-reserve impact. Four calls reduced to one.

Example

{"altes_brutto_monat": 4500, "neues_brutto_monat": 5200, "abfindung": 25000, "arbeitslos_monate": 3}

POST /v1/szenario/familie

Family planning bundle: basic parental allowance, ElterngeldPlus, child benefit simulation, and a tax-class (III/V vs. IV/IV) recommendation. Useful before the baby arrives.

Example

{"nettoeinkommen_monat": 2500, "brutto_monat": 3800, "partner_brutto_monat": 5500, "geschwisterbonus": true}

POST /v1/szenario/immobilie

Property purchase bundle: transfer tax, annual property tax (computed using whichever state model applies), and closing costs (notary, land registry, optional broker).

Example

{"kaufpreis": 450000, "bundesland": "Bayern", "grundstuecksflaeche_m2": 500, "wohnflaeche_m2": 140, "hebesatz_grundsteuer_prozent": 535}

POST /v1/szenario/freelance-start

Freelance start bundle: total burden as a sole proprietor (income tax + solidarity + church + trade tax with §35 credit) vs. a GmbH (corporate tax + solidarity + trade + capital gains on distribution). Response names the net winner.

Example

{"gewinn_jahr": 120000, "hebesatz_gewerbesteuer": 475, "bundesland": "Nordrhein-Westfalen"}

POST /v1/verlustverrechnung

3-pot loss offsetting under §20 (6) EStG (stocks pot, other pot) and §23 EStG (crypto/private sales pot). Applies the saver allowance (1,000/2,000 EUR), the §23 exemption threshold (1,000 EUR), prior-year loss carry-overs and the pending Federal Constitutional Court ruling 2 BvL 3/21 on the stocks-pot restriction. Returns the estimated tax savings vs. a naive calculation without losses.

Request fields

FieldTypeRequiredDescription
aktien_gewinne_ytd, aktien_verluste_ytd, aktien_verlustvortragDecimalnoStocks pot YTD and prior-year carry-over in EUR (losses entered as positive). Default 0.
sonstige_gewinne_ytd, sonstige_verluste_ytd, sonstige_verlustvortragDecimalnoOther pot (ETFs, bonds, interest, derivatives). Default 0.
krypto_gewinne_ytd, krypto_verluste_ytd, krypto_verlustvortragDecimalno§23 pot (crypto, gold, NFTs). Default 0.
veranlagungszeitraumintno2018–2030. Default 2026.
sparer_pauschbetrag_verfuegbarDecimalno0–2000 EUR. Default 1000 (single).

Example

{"aktien_verluste_ytd": "3000", "sonstige_gewinne_ytd": "5000",
 "sonstige_verluste_ytd": "2000",
 "krypto_verluste_ytd": "1500", "krypto_gewinne_ytd": "800"}

Response fields (excerpt)

FieldDescription
aktien_topf_saldo, aktien_topf_vortrag_neu, aktien_in_sonstige_geflossenStocks pot balance. Negative balances stay locked as carry-over and do NOT spill into the other pot (BVerfG watch).
sonstiger_topf_saldo, sonstiger_topf_vortrag_neuOther pot balance after absorbing positive stocks-pot balances.
krypto_topf_saldo, krypto_topf_vortrag_neu, krypto_freigrenze_greift§23 pot, separate. krypto_freigrenze_greift is true when the balance is < 1000 EUR.
sparer_pauschbetrag_verbraucht, sparer_pauschbetrag_restSaver allowance applied to the other pot if positive.
steuerpflichtige_kapitalertraege, steuerpflichtige_kryptoTaxable amount after offsetting and allowance.
bverfg_hinweisString with the §165 AO provisional-assessment notice (or null) if a stocks-pot loss carry-over arises.
ersparnis_vs_naiveTax savings vs. naive calc (KapESt 25 % + 5.5 % solidarity, no church tax).

POST /v1/vorabpauschale

Advance lump-sum (Vorabpauschale) for accumulating ETF/funds under §18 InvStG for a full calendar year. Base yield = fund value start-of-year × base interest rate × 0.70, minus distributions, capped at the year's appreciation. Partial exemption under §20 InvStG by fund type. Base interest rate series 2018–2026 included (BMF circular each January). Special cases (negative base rate, loss year, distributions covering base yield) are flagged via keine_vap_grund.

Request fields

FieldTypeRequiredDescription
fondswert_jahresanfangDecimalyesRedemption price on the first valuation day (Jan 2) in EUR.
fondswert_jahresendeDecimalyesRedemption price on the last valuation day (Dec 31) in EUR.
fondstypenumyesaktien_51 (TFQ 30 %), misch_25 (15 %), sonstige (0 %), immo_inland (60 %), immo_ausland (80 %).
ausschuettungenDecimalnoDistributions paid during the year in EUR. Default 0 (accumulating).
jahrintno2018–2026 (base rate available). Default 2026.

Example

{"fondswert_jahresanfang": "10000", "fondswert_jahresende": "11000",
 "fondstyp": "aktien_51", "jahr": 2026}

Response fields (excerpt)

FieldDescription
basiszins_prozentApplicable base interest rate (2026 = 3.20 %).
basisertrag, wertsteigerung§16 InvStG base yield and the year's appreciation.
vorabpauschale_bruttoVAP capped to appreciation, before partial exemption.
teilfreistellung_quote, vorabpauschale_steuerpflichtigPartial exemption rate and final taxable amount for KapESt.
keine_vap_grundnegativer_basiszins | kein_wertzuwachs | ausschuettungen_decken_basisertrag | null.

POST /v1/kapitalertragsteuer

Calculates the withholding capital gains tax on an already CLEANED tax base (after saver allowance and loss offsetting): KapESt 25 % per §43a EStG, solidarity surcharge 5.5 % on KapESt (no phase-out for withholding, §4 SolzG), church tax 8 % (BY/BW) or 9 % (other states). When church tax applies, the §51a (2c) EStG closed-form formula KapESt = e / (4 + k) is used — many marketplace competitors ignore this and return the nominal 25 % instead of the correct ~24.51 % (BY/BW) or ~24.45 % (rest).

Request fields

FieldTypeRequiredDescription
bemessungsgrundlageDecimalyesTaxable capital income in EUR (after saver allowance and loss offsetting). 0 ≤ value ≤ 100,000,000.
bundeslandenumyesFull state name (e.g. "Bayern") or ISO code ("BY").
kirchensteuerpflichtigboolnoDefault false. When true, the §51a closed-form formula applies.

Example

{"bemessungsgrundlage": "10000", "bundesland": "Bayern",
 "kirchensteuerpflichtig": true}

POST /v1/szenario/aktien-etf

Bundle endpoint: aggregates pre-tax (Vorabpauschale, §18 InvStG) + 3-pot loss offsetting (§20 (6) EStG + §23 EStG) + actual capital gains tax with state-specific church tax (§51a (2c) EStG closed-form formula) in a single call. Returns the real tax burden instead of the rough 26.375 % flat rate that most online calculators apply. Effective rate including church tax: 27.82 % (BY/BW, 8 % church) or 27.99 % (other states, 9 % church).

Request fields (all optional, default 0 or constant)

FieldTypeDescription
fondswert_jahresanfang/-ende, ausschuettungen, fondstypDecimal/enumVorabpauschale inputs (see /v1/vorabpauschale). When fondswert_jahresanfang = 0: no Vorabpauschale share.
aktien_*, sonstige_*, krypto_*DecimalLoss-offsetting inputs (gains/losses/carry-over per pot, all YTD in EUR, losses entered positive).
sparer_pauschbetrag_verfuegbarDecimal1,000 single, 2,000 joint. Default 1,000.
bundeslandenumFor church-tax rate: 8 % in BY/BW, 9 % in the other 14 states.
kirchenmitglied, veranlagungszeitraumbool/intDefault false, 2026.

Example

{"aktien_gewinne_ytd": "5000", "aktien_verluste_ytd": "1500",
 "sonstige_gewinne_ytd": "2000",
 "bundesland": "Bayern", "kirchenmitglied": true}

Response fields (excerpt)

FieldDescription
aktien_topf_*, sonstiger_topf_*, krypto_topf_*3-pot balance incl. carry-over for next year.
vorabpauschale_brutto, vorabpauschale_steuerpflichtigVorabpauschale gross and after partial exemption. Flows into the other pot.
steuerpflichtige_bemessungsgrundlageOther-pot balance + Vorabpauschale, minus saver allowance.
kapest, soli, kirchensteuer, steuer_summeActual KapESt with state-specific church tax via §51a closed-form e/(4+k).
effektivsatz_prozent, netto_kapitalertraegeReal effective rate including church tax (27.82 % / 27.99 %) and net.
krypto_steuerpflichtig§23 crypto balance — not 25 % KapESt; taxed at the personal income tax rate §32a EStG.
pauschal_steuer_naiv, differenz_zu_naivComparison vs. flat 26.375 % rate: positive difference = you pay more than the flat rate suggests due to church tax.

Bundesland Values

Must match exactly, including capitalization and hyphens:

Baden-WürttembergBayernBerlinBrandenburgBremenHamburgHessenMecklenburg-VorpommernNiedersachsenNordrhein-WestfalenRheinland-PfalzSaarlandSachsenSachsen-AnhaltSchleswig-HolsteinThüringen

POST /v1/brutto-netto/batch

Up to 1,000 employee gross-net calculations in a single call — built for payroll/HR SaaS generating monthly slips. Per-item error isolation; one invalid row does not fail the request. Performance-verified <3 s for 1,000 items.

Request

{"items": [
  {"bruttolohn": 3500, "steuerklasse": 1},
  {"bruttolohn": 5200, "steuerklasse": 3, "kinder": 2}]}

POST /v1/lohnkosten-netto/batch

Employer-budget → net (reverse calculation via bisection) for up to 1,000 employees in one call. Items with an unreachable target are isolated as per-row errors. Required: items (array).

POST /v1/arbeitgeber-kosten/batch

Total employer cost (KV/PV/RV/AV + U1/U2/insolvency levy + accident insurance) for up to 1,000 employees, with per-item configurable levy rates. Required: items (array).

POST /v1/minijob/batch

Minijob/Midijob status for up to 1,000 employees in one call, same per-item error isolation as /v1/brutto-netto/batch. For care/gastronomy/cleaning SaaS.

POST /v1/midijob/batch

Midijob transition-zone calculation (EUR 603.01–2,000, §20(2a) SGB IV factor-F formula) for up to 1,000 employees, per-item error isolation. Required: items (array).

POST /v1/midijob

Strict transition zone EUR 603.01–2,000 (§20(2a) SGB IV). Reduced social-security contributions via the factor-F formula — verified against TK advisory sheet 305008. Also returns the comparison to full SI plus the saving. Required: brutto_monat; optional: steuerklasse, bundesland, kinderlos_ueber_23, kinder, kirchensteuer, geburtsjahr.

Request

{"brutto_monat": 1200, "steuerklasse": 1, "bundesland": "Sachsen"}

POST /v1/stundenlohn

Hourly wage ↔ monthly salary plus net (BMF PAP 2026). Modes: stundenlohn_zu_gehalt or gehalt_zu_stundenlohn. Returns gross+net hourly wage, monthly deductions and total employer cost. Required: modus; optional: stundenlohn_brutto/monatsgehalt_brutto, wochenstunden, steuerklasse, bundesland, kirchensteuer, kinder, geburtsjahr, kv_zusatzbeitrag.

Request

{"modus": "stundenlohn_zu_gehalt", "stundenlohn_brutto": 25, "wochenstunden": 40}

POST /v1/aktivrente

Aktivrente allowance (Aktivrentegesetz 2026): up to EUR 2,000/month = EUR 24,000/year tax-free extra income for working pensioners, without progression. Compares income tax + solidarity surcharge + church tax old vs new law and returns the monthly/annual saving. Required: brutto_rente_monat, zusatzeinkommen_monat; optional: kirchensteuer, bundesland, besteuerungsanteil.

Request

{"brutto_rente_monat": 1800, "zusatzeinkommen_monat": 1500}

POST /v1/homeoffice

Home-office flat rate §4(5) No. 6c EStG (EUR 6/day, max 210 days) vs commuter allowance §9(1) No. 4 EStG (EUR 0.38/km from 2026) optimization. Break-even at ~15.8 km. Optional: arbeitstage_gesamt, homeoffice_tage, entfernung_km, grenzsteuersatz.

POST /v1/afa

Depreciation (AfA) — linear vs declining-balance 2025–2027 (§7 EStG, Wachstumsbooster), with automatic switch declining→linear (§7(3) EStG) and pro-rata by purchase month. Required: anschaffungskosten; optional: nutzungsdauer, steuersatz_prozent, monat_anschaffung.

Request

{"anschaffungskosten": "50000", "nutzungsdauer": 8, "steuersatz_prozent": "42"}

POST /v1/iab

Investment deduction (IAB) + special depreciation §7g EStG. Up to 50 % of cost (max EUR 200,000) deducted off-balance before purchase + 40 % special depreciation. Eligibility: prior-year profit ≤ EUR 200,000. Required: anschaffungskosten, gewinn_vorjahr.

POST /v1/gwg

Low-value assets §6(2)/(2a) EStG. Compares immediate write-off (≤ EUR 800), pool depreciation (EUR 250.01–1,000 over 5 years) and linear AfA with a tax-effect balance. Required: anschaffungskosten.

POST /v1/haushaltsnah

Household-related services §35a EStG: 20 % on the labour portion across 3 categories (caps EUR 510 / 4,000 / 1,200). Optional inputs for the three expense types.

POST /v1/kleinunternehmer

Small-business status §19 UStG — EUR 25,000 / 100,000 thresholds (JStG 2024). Traffic-light + year projection + warning month. Required: bisheriger_umsatz, aktueller_monat, vorjahresumsatz.

Request

{"bisheriger_umsatz": 40000, "aktueller_monat": 6, "vorjahresumsatz": 18000}

POST /v1/photovoltaik

PV tax exemption: §12(3) UStG zero VAT rate up to 30 kWp + §3 No. 72 EStG income exemption (30 kWp single-family / 15 kWp per unit MFH, max 100 kWp). VAT saving on purchase + income-tax saving over lifetime. Required: anlagenleistung_kwp.

POST /v1/sanierung

Energy renovation §35c EStG: 20 % over 3 years (7/7/6 %), max EUR 40,000 per property. Required: sanierungskosten.

POST /v1/waermepumpe

Heat-pump subsidy KfW 458 (BEG EM): 4 bonus components + 70 % cap, with a §35c alternative comparison. Required: investition_eur.

POST /v1/freelancer

Freelancer hourly-rate calculator §18 EStG (liberal profession) / §15 EStG (trade). Fixed-point iteration of the minimum cost-covering hourly rate from desired net + operating costs + income tax + solidarity surcharge + optional church tax + voluntary KV/PV + pension reserve + trade tax if applicable. Includes a market comparison. Required: wunsch_netto.

Request

{"wunsch_netto": 3500, "bundesland": "Berlin"}

POST /v1/kirchensteuer-austritt

Church-tax exit calculator: annual saving (8 % BY/BW, 9 % other states) minus the special-expense effect §10(1) No. 4 EStG, plus exit fee per state, break-even days and a 10/20/30-year projection. Input is taxable income (zvE) directly. Required: zve, bundesland.

Request

{"zve": 45000, "bundesland": "Bayern"}

POST /v1/gez

Broadcasting-fee exemption §4 RBStV via a 7-step decision tree (secondary residence, care home, catalogue social benefit, deaf-blind mark, RF mark reduction, hardship case, otherwise liable). Fee 2026: EUR 18.36/month. Required: wohnart.

POST /v1/krypto

German crypto tax — §23 EStG spot (holding-period check, EUR 1,000 exemption limit from 2024, progressive income tax via the difference method + solidarity surcharge + church tax) and §32d KapESt futures (flat 25 % + soli + church tax, no holding period, loss offset capped at EUR 20,000/year). Required: kaufdatum, verkaufsdatum, kaufpreis, verkaufspreis, transaktionsart.

Request

{"kaufdatum": "2023-01-10", "verkaufsdatum": "2024-03-15",
 "kaufpreis": 5000, "verkaufspreis": 9000, "transaktionsart": "spot"}

POST /v1/at-krypto

Austrian crypto KESt §27b EStG (AT): flat 27.5 % regardless of holding period and income, ACB (moving-average cost) valuation mandatory since 2023, old-holdings check (bought before 2021-03-01 and held >1 year = tax-free). Required: asset, transaktionen, verkaufte_menge, verkauf_erloese_eur, verkauf_datum.

POST /v1/altersvorsorgedepot

Pension depot (Riester successor, Altersvorsorgereformgesetz, Federal Law Gazette I 2026 No. 156, start 2027): tiered allowances incl. one-time EUR 200 under-25 bonus, child allowance, minimum own contribution EUR 120/year, §10a EStG special-expense deduction of own contributions up to EUR 1,800/year plus allowances, more-favourable check vs Riester, projection to retirement with compound interest. Required: jahresbrutto, eigenanteil_monat, anzahl_kinder.

POST /v1/fruehstartrente

Frühstart pension (child depot, effective 2026): state contribution EUR 10/month per child aged 6–18 + optional parent top-up + child own contribution from 18 to retirement. Returns capital projection at 18 and at retirement, monthly payout for a 25-year annuity, and the growth factor. Required: alter_kind.

Request

{"alter_kind": 7, "eigenbeitrag_eltern_monat": 50}

POST /v1/rente

Statutory pension calculator §§63–68 SGB VI. Pension formula: pension points × access factor × pension value × pension-type factor. Pension value 2026: EUR 42.52 (projection). Returns 4 retirement-age scenarios (63/65/67/70) + pension gap + ETF savings-plan suggestion. Required: geburtsjahr, bisherige_beitragsjahre, aktuelles_brutto_monat, geplanter_renteneintritt.

POST /v1/wohngeld

Housing benefit per §19 WoGG (Wohngeld-Plus 2023+). Formula W = M − (a+b·M+c·Y)·Y with coefficients from Annex 2 WoGG by household size, rent caps by level 1–7, heating + climate components, asset limit EUR 60k + 30k per further person. Required: haushaltsgroesse, mietstufe, bruttoeinkommen, kaltmiete, wohnflaeche.

POST /v1/kindesunterhalt

Child support per the Düsseldorfer Tabelle 2026 (valid from 2026-01-01): 15 income brackets × 4 age groups, 5 % work-cost adjustment, half child-benefit offset for the caring parent, hardship check against the self-retention amount. Required: nettoeinkommen, kinder, kindergeld_empfaenger.

POST /v1/vorfaelligkeitsentschaedigung

Prepayment penalty (VFE) via the BGH active-passive method (BGH XI ZR 27/00). Refinancing loss = remaining debt after special repayment × rate differential × remaining term, less saved admin and risk costs. §502 BGB cap for consumer loans, §489 BGB special termination right after 120 months. Required: restschuld_eur.

POST /v1/vorabpauschale/portfolio

Multi-fund advance lump-sum (Vorabpauschale) §18 InvStG for one investor, up to 1,000 funds in a single call. Optimised for robo-advisor use cases (n clients × m funds, yearly in January). Per-item error isolation; returns the aggregated taxable sum across successful items.

Request

{"steuerjahr": 2026, "fonds": [
  {"isin": "IE00B4L5Y983", "fondswert_jahresanfang": 10000,
   "fondswert_jahresende": 11200, "fondstyp": "aktien"}]}

GET /v1/werte/current

Aggregates all German payroll and tax values as a 1-call JSON snapshot for today: social security (BBG, employee+employer rates), income-tax tariff, lohnsteuer PAP helper values, garnishment limits §850c ZPO, company-car 1 % rule incl. BEV thresholds, all 16 states with church-tax + transfer-tax rates, Vorabpauschale base-rate series, benefit-in-kind values (SvEV) and per-diems §9(4a) EStG. Unlike all other endpoints, this one is cacheable: Cache-Control: public, max-age=86400 + ETag/304.

Example

curl -H "X-RapidAPI-Proxy-Secret: $SECRET" \
     https://api.rechner-hub.de/v1/werte/current

GET /v1/werte/{stichtag}

Like /v1/werte/current but for a chosen date (YYYY-MM-DD, supported years 2024–2026). The garnishment notice is resolved per date; all other values come from the date's year. Useful for recalculations and audits.

Example

curl -H "X-RapidAPI-Proxy-Secret: $SECRET" \
     https://api.rechner-hub.de/v1/werte/2024-09-01

GET /v1/basiszins/current

Current base interest rate §247 BGB. Set half-yearly (1 Jan / 1 Jul) by Bundesbank announcement; the basis for default-interest calculations (§288 BGB) and many contract clauses. 2026-01-01: 1.27 %. Cache-Control: public, max-age=86400.

Response (excerpt)

{"data": {"stichtag": "2026-01-01", "satz_prozent": "1.27",
  "rechtsgrundlage": "§247 Abs. 1 Satz 1 BGB"}}

GET /v1/basiszins/series

Complete series of all base interest rates since 2002-01-01 (49+ half-yearly entries, sorted old→new). Handy for Excel/CSV export or audit trails of default-interest calculations over long periods. Cache-Control: public, max-age=86400.

GET /v1/basiszins/{stichtag}

Base interest rate valid on a given date (latest entry on or before the date), date format YYYY-MM-DD, min 2002-01-01. The validity start is resolved automatically (e.g. 2025-08-15 → valid from 2025-07-01).

Example

curl -H "X-RapidAPI-Proxy-Secret: $SECRET" \
     https://api.rechner-hub.de/v1/basiszins/2025-08-15

POST /v1/verzugszins

Default interest §288 BGB on an overdue claim. Default starts the day after the due date (§286(1) BGB), end = payment date (counts). actual/365 per BGH. On a half-year base-rate change the interest is computed per half-year window with the rate valid there — no mixed rates. Surcharge: +5 pts (B2C) or +9 pts (B2B). Optional EUR 40 lump sum §288(5) BGB (B2B-only, shown separately). Required: forderung_eur, faelligkeit.

Request

{"forderung_eur": "10000", "faelligkeit": "2024-12-15",
 "geschaeftsverkehr": "b2b", "pauschale_anwenden": true}

POST /v1/aktivrente/batch

Aktivrente allowance (Aktivrentegesetz 2026, EUR 24,000/year) for up to 1,000 pensioners in one call. Same logic as /v1/aktivrente per item, with per-item error isolation: a single invalid row is flagged success:false at its index while the rest compute normally.

Response (excerpt)

{"data": {"items": [
  {"index": 0, "success": true, "result": {"netto_ohne_monat": "2804.25",
    "netto_mit_monat": "3209.25", "freibetrag_jahr": "18000.0", ...}}],
  "count_total": 2, "count_ok": 2}}

GET /v1/hebesaetze-historie

Trade-tax / property-tax rate time series for a single municipality across several reporting years (incl. population). Required query ags (8-digit municipality key). Source: Destatis 71231-03-01-5. Cache-Control: public, max-age=86400.

{"data": {"ags": "05315000", "eintraege": [
  {"stand": 2022, "hebesatz_gewerbesteuer": 475, "hebesatz_grundst_b": 515,
   "einwohner": 1081167, "quelle": "destatis_stat_bericht"}, ...]}}

GET /v1/hebesaetze-aggregat

Weighted average trade-tax rate per federal state as a 10-year series (2016–2025, municipalities with 20,000+ inhabitants). Optional filters bundesland, jahr. Source: VdF/DIHK. Cache-Control: public, max-age=86400.

{"data": {"eintraege": [
  {"jahr": 2025, "bundesland": "Nordrhein-Westfalen", "hebesatz_gewerbesteuer_avg": 474}],
  "quelle": "VdF Daten und Fakten Realsteuer-Hebesaetze (Stand 01.09.2025)"}}

GET /v1/gkv-zusatzbeitrag

Current statutory-health-insurance additional contribution rate (%) for a fund. Look up via ik (9-digit IK or slug) or name (fuzzy substring). Optional stichtag for historical snapshots. Source: GKV-Spitzenverband. Cache-Control: public, max-age=86400.

{"data": {"ik_nummer": "techniker-krankenkasse", "name": "Techniker Krankenkasse",
  "zusatzbeitrag_prozent": "2.69", "snapshot_datum": "2026-05-25"}}

Related: /durchschnitt (annual mean), /historie (per-fund time series).

GET /v1/gkv-zusatzbeitrag/durchschnitt

Mean additional contribution across all collected fund snapshots for a reporting year (coverage 2021–2026). Required query jahr. Note: this is the collected snapshot mean, not the official statutory average rate per §242a SGB V.

{"data": {"jahr": 2026, "durchschnitt_prozent": "3.4311", "snapshot_count": 225}}

GET /v1/gkv-zusatzbeitrag/historie

Full time series of additional-contribution snapshots for a fund (Wayback CDX snapshots + current value). Required query ik.

{"data": {"ik_nummer": "techniker-krankenkasse", "eintraege": [
  {"snapshot_datum": "2023-01-07", "zusatzbeitrag_prozent": "1.2"}, ...]}}

GET /v1/gkv-kassen

Directory of all 92 active statutory health-insurance funds with IK/slug, name, fund type (AOK, Ersatzkasse, BKK, IKK…) and scope (nationwide yes/no). No parameters.

{"data": {"kassen": [
  {"ik_nummer": "aok-baden-wuerttemberg", "name": "AOK Baden-Württemberg",
   "kassen_typ": "AOK", "bundesweit": false, "aktiv": true}, ...]}}

GET /v1/gkv-ik-verzeichnis

Official IK-number registry (~1,083 entries) from the ITSG/BAS cost-bearer files — a fund can have several regional IK numbers. Look up via ik (exact, 9-digit) or name (fuzzy).

{"data": {"eintraege": [
  {"ik_nummer": "100177504", "name": "TECHNIKER KRANKENKASSE",
   "kassen_typ_code": "Ersatzkasse"}, ...]}}

GET /v1/eeg-verguetung

Feed-in tariff (anzulegender Wert) for a rooftop solar PV system under the EEG. Required query inbetriebnahme (commissioning date), anlagentyp, kwp. Optional einspeisung (teil|voll), stichtag. Source: Bundesnetzagentur. Cache-Control: public, max-age=86400.

{"data": {"verguetung_ct_per_kwh": "8.514", "novelle": "EEG 2023",
  "verguetungsdauer_jahre": 20, "gueltig_bis": "2044-12-31", "restlaufzeit_monate": 223}}

Related: /historie, /v1/eeg-novellen.

GET /v1/eeg-verguetung/historie

Full tariff time series for a kWp class + feed-in type across all EEG amendments. Required query kwp. Optional anlagentyp, einspeisung.

{"data": {"anlagentyp": "pv_dach_wohngebaeude", "eintraege": [
  {"novelle": "EEG 2012", "inbetriebnahme_von": "2012-04-01",
   "verguetung_ct_per_kwh": "19.5"}, ...]}}

GET /v1/eeg-novellen

List of all EEG amendments (EEG 2009 to date) with validity period and BGBl reference. No parameters — useful to map a commissioning date to the correct amendment.

{"data": {"novellen": [
  {"id": 1, "name": "EEG 2009", "gueltig_ab": "2009-01-01",
   "bgbl_referenz": "BGBl. I 2008 S. 2074"}, ...]}}

GET /v1/mietstufe/{ags}

Housing-benefit rent tier I–VII (1–7) of a municipality per the annex to the Wohngeldverordnung (valid from 2023-01-01). Path parameter ags (8 digits). Municipalities not listed individually inherit their district's tier; otherwise 404. Handy to prefill the rent-tier field of the Wohngeld calculator.

Response

{"data": {"ags": "09162000", "mietstufe": 7, "mietstufe_roman": "VII"},
 "meta": {"tax_year": 2026}}

GET /v1/einkommen/{ags}

Time series of total income per taxpayer (§ 2(3) EStG) of a municipality from the wage and income tax statistics (Destatis 73111). Important: this is not gross/average salary, and the statistic has a 3–4 year data lag. Path parameter ags (8 digits).

Response (excerpt)

{"data": {"ags": "09162000", "eintraege": [
  {"jahr": 2021, "steuerpflichtige": 820100,
   "gesamtbetrag_einkuenfte_tsd": 46000000,
   "je_steuerpflichtigem_eur": 56090, "quelle": "destatis_73111_01_01"}, ...]}}

GET /v1/schulden/{ags}

Time series of core-budget municipal debt (Destatis 71327, as of Dec 31) at district level incl. debt per capita. The district is derived from the first 5 digits of the municipality AGS, because the source records municipal debt almost only via associations. Eight district-free cities without a report return 404.

Response (excerpt)

{"data": {"ags": "09162000", "kreis_ags": "09162", "kreis_einwohner": 1512491,
  "eintraege": [
    {"jahr": 2024, "schulden_insgesamt_eur": 3200000000,
     "schulden_je_einwohner_eur": 2116, "quelle": "destatis_71327_z01"}]}}