API

Developer API

Obolus stellt eine schlanke öffentliche API für Payroll- und Tax-Compare-Workflows bereit. MCP und OpenAPI beschreiben denselben freigegebenen Tool-Scope.

Status

Die Developer API ist bewusst schlank gehalten und deckt derzeit Payroll- und Tax-Compare-Workflows ab. Der Scope wird kontrolliert erweitert und befindet sich aktuell im Early Public Status.

MCP

Für allgemeine MCP-Clients steht /api/mcp/public bereit; /api/mcp/claude bleibt als kompatibler Alias. Die ChatGPT-App verwendet /api/mcp. Die JSON-Beschreibung des Tool-Scopes liegt unter /api/mcp-discovery.

OpenAPI

OpenAPI ist die REST-orientierte Spezifikation derselben öffentlichen Tools. Verwende /api/openapi für Swagger-kompatible Dokumentation, Client-Generierung und formale Request/Response-Schemas.

Was ist öffentlich?

Der aktuelle Public Scope umfasst Discovery über MCP und OpenAPI sowie die beiden Tools berechne und taxcompare. Cockpit-, Budget- und Invest-Interaktionen bleiben bewusst Produkt-Flow und werden nicht als Public API veröffentlicht.

Agent discovery

Obolus publishes a Model Context Protocol (MCP) server for tax calculation, a Claude-compatible MCP endpoint, and an OpenAPI specification so AI agents, developer tools, and LLM crawlers can discover the public payroll and tax comparison API surface.

OpenAPI specification

Swagger-compatible OpenAPI specification for the Obolus REST API, including payroll and tax comparison schemas.

MCP discovery descriptor

Machine-readable descriptor for the public Obolus Model Context Protocol tool scope.

MCP Server for Tax Calculation

Remote Model Context Protocol (MCP) server for tax calculation, net salary workflows, and country tax comparison agents.

Public MCP Server for Tax Calculation

Agent-neutral read-only Model Context Protocol endpoint for Obolus payroll and tax comparison tools.

Claude MCP Server for Tax Calculation

Claude-compatible tool-only Model Context Protocol endpoint for Obolus payroll and tax comparison tools.

llms.txt

AI-system orientation file listing canonical Obolus pages and machine-readable API resources.

ChatGPT App

Die Obolus ChatGPT App nutzt dieselbe öffentliche MCP- und API-Oberfläche für globale Netto- und Gehaltsvergleiche. Sie ist eine technische Integration des Obolus-Rechenkerns, kein separater Consumer-Flow.

Welche Schnittstelle ist für was gedacht?

Für die meisten öffentlichen Integrationen ist REST über OpenAPI plus direkter Tool-Call die richtige Wahl. MCP ist die bessere Schicht für Agenten, Tool-Runtime-Systeme und Clients, die Discovery und Invocation über einen Gateway-Ansatz brauchen.

REST + OpenAPI

Empfohlen für klassische Integrationen, Dashboards, Backend-Services, SDK-Generierung und konventionelle API-Clients.

MCP

Empfohlen für AI-Agents, Tool-Runner und Systeme, die Tool-Discovery und Invocation über eine kompakte, maschinenlesbare Beschreibung verwenden wollen.

Authentifizierung

Die öffentlichen, nur lesenden Rechentools sind ohne Anmeldung und API-Key nutzbar. Ein API-Key ist für Integrationen optional; einzelne Deployments können ihn für bestimmte Endpunkte voraussetzen. Bevorzugter Header ist x-public-api-key.

  • Bevorzugter Header: x-public-api-key: <key>
  • Alternativ unterstützt: x-api-key oder Authorization: Bearer <API-Key> (Kompatibilitätsalias, kein OAuth-Token)
  • OpenAPI, MCP-Discovery und der MCP-Transport können offen oder key-geschützt sein, abhängig vom jeweiligen Deployment.
  • Ein Browser-Login ist für die öffentlichen MCP-Rechentools nicht erforderlich.
  • API-Keys können aktuell nicht selbst erstellt werden; bei Bedarf hilft das Kontaktformular.

Versionierung

Die API nutzt Contract-Versionen statt /v1-URLs. API-Contract: 2.1.0; MCP-Tool-Contract: 1.0.1. Unterstützte MCP-Protokollgenerationen umfassen 2025-11-25, 2026-07-28. Contract- und Protokollversion sind unterschiedliche Angaben.

Locale und URL-Struktur

Die API selbst ist sprachneutral und lebt unter /api/..., nicht unter einem Locale-Präfix. Die /de-, /en- und /tr-Pfade gelten für die Dokumentation, nicht für die API-Endpunkte.

Rate Limits und Website-Traffic

REST-Limits: taxcompare 20 requests / 5 minutes; berechne 60 requests / 5 minutes für Cache-Misses. MCP-Transport: POST 200 requests / 5 minutes, GET 100 requests / 5 minutes; beide MCP-Endpunkte haben getrennte Kontingente. Zusätzliche Limits je MCP-Tool oder verifiziertem API-Key werden nur bei entsprechender Serverkonfiguration aktiviert. Cache-Hits bei berechne können vor der REST-Limit-Prüfung beantwortet werden.

Wichtige Parameter

  • Unterstützte Ländercodes: DE, AT, US, CH, CA, AU, UK, IE
  • taxcompare im Modus shared_gross: salary_ct (Ganzzahl in Cent), tax_year, countries, currency und gross_mode
  • taxcompare im Modus local_median_gross: tax_year, countries, currency und gross_mode; kein Gehaltswert erforderlich
  • taxcompare currency akzeptiert ISO-Codes in Groß- oder Kleinschreibung, etwa EUR oder eur; im Ergebnis stehen sie klein geschrieben
  • taxcompare gross_mode unterstützt shared_gross und local_median_gross
  • tax_year wird derzeit als String oder Integer akzeptiert, typischerweise 2026
  • berechne für DE: bevorzugt country, tax_year und gross_salary mit amount, currency und period; location, tax und social_security beschreiben das Profil. gross_salary.amount ist ein Betrag in Euro bzw. der gewählten Währung, z. B. 60000 bei 60.000 € Jahresbrutto
  • berechne Legacy-Felder wie Personen[].Gehalt_ct bleiben für bestehende Integrationen erhalten und verwenden Minor Units, z. B. 6000000 Cent bei 60.000 € Jahresbrutto; detaillierte Fälle anderer Länder nutzen derzeit diese Legacy-Felder

Input- und Output-Parameter

Für Suchmaschinen und die erste Orientierung reicht die Kurzfassung: dieselben Tool-Verträge decken alle unterstützten Länder ab, aber die Bedeutung einzelner Payroll-Felder unterscheidet sich je nach Steuersystem.

  • Input-Felder beschreiben denselben Request-Surface über mehrere Länder hinweg.
  • Output-Felder bleiben im Contract stabil, auch wenn ihr fachlicher Kontext je Land variiert.
  • Die vollständige Länder-Matrix bleibt interaktiv und lädt danach clientseitig nach.

Wichtige Endpunkte

/api/openapi

OpenAPI-Spezifikation (Swagger-kompatibel)

/api/mcp-discovery

JSON-Discovery für Tool-Scope, Metadaten und Docs

/api/mcp

Streamable HTTP MCP-Transport für ChatGPT und andere MCP-Clients

/api/mcp/public

Öffentliche MCP-Rechentools für alle Clients

/api/mcp/claude

Bisheriger MCP-Pfad ohne ChatGPT-UI-Metadaten

/api/berechne

Direkter Payroll- und Tax-Call

/api/taxcompare

Direkter Salary-Compare-Call

Quickstart

  1. Öffentlichen Beispiel-Request ohne Anmeldung senden; bei Bedarf einen API-Key anfragen
  2. Einen Beispiel-Request unten direkt kopieren und senden
  3. Die Response prüfen und mit deinem Use Case abgleichen
  4. Details und erweiterte Felder bei Bedarf im OpenAPI-Contract unter /api/openapi nachsehen

Responses und Fehler

REST-Erfolgsantworten liefern tool-spezifische Strukturen ohne globales ok/data-Envelope. MCP-Antworten enthalten zusätzlich eine Zusammenfassung mit Beträgen in Haupteinheiten sowie, soweit vorhanden, Berechnungszeit, Daten- und Methodenstand, Annahmen, Warnungen und die vom Backend gelieferte engine_revision. Ergebnisse können sich bei geändertem Steuerdatenstand oder Wechselkurs trotz gleicher Eingaben ändern. REST-Fehler enthalten error sowie gegebenenfalls details oder restricted_fields.

Beispielantwort (taxcompare, gekürzt):

{
  "results": [
    {
      "country": "DE",
      "net": 39750,
      "tax": 13000,
      "social_contributions": 7250,
      "effective_rate": 33.75,
      "input_annual_gross": 60000,
      "input_currency": "eur",
      "comparison_basis": "shared_gross"
    }
  ]
}

Fehler

Typische Fehlercodes:

  • 400 validation error
  • 401 missing or invalid key
  • 403 restricted field access
  • 429 rate limiting
  • 500 internal server error
{
  "error": "Invalid taxcompare payload.",
  "details": [
    "body.countries must contain at least 1 items."
  ]
}

Beispiele

curl -s https://www.obolusfinanz.de/api/openapi
curl -s https://www.obolusfinanz.de/api/mcp-discovery
curl -N -H "Accept: text/event-stream" https://www.obolusfinanz.de/api/mcp
curl -X POST https://www.obolusfinanz.de/api/taxcompare \
  -H "Content-Type: application/json" \
  -d '{
    "salary_ct": 6000000,
    "tax_year": "2026",
    "countries": ["DE", "AT", "AU"],
    "currency": "eur",
    "gross_mode": "shared_gross"
  }'
curl -X POST https://www.obolusfinanz.de/api/taxcompare \
  -H "Content-Type: application/json" \
  -d '{
    "tax_year": "2026",
    "countries": ["DE", "CH", "UK"],
    "currency": "eur",
    "gross_mode": "local_median_gross"
  }'
curl -X POST https://www.obolusfinanz.de/api/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "taxcompare",
      "arguments": {
        "salary_ct": 6000000,
        "tax_year": "2026",
        "countries": ["DE", "AT", "AU"],
        "currency": "eur",
        "gross_mode": "shared_gross"
      }
    }
  }'

Hinweis

MCP und OpenAPI werden aus derselben Vertragsquelle erzeugt. Diese Contract-Quelle ist die verbindliche Grundlage der öffentlichen API. Änderungen am Backend sollten immer gemeinsam mit dem öffentlichen Contract ausgeliefert werden.

API-Nutzung & Richtlinien

Die Obolus API ist bewusst einfach, offen und für reale Finanz-Tools gedacht.

Du kannst sie verwenden für:

  • persönliche Projekte
  • Prototypen und Experimente
  • interne Tools
  • öffentliche Anwendungen

Bitte beachte dabei:

  • Vermeide exzessiven automatisierten Traffic oder Missbrauch
  • Verkaufe rohe API-Outputs nicht als eigenständiges Produkt weiter
  • Nutze die API als Teil einer größeren Anwendung oder eines Workflows

Attribution

Wenn du die API in einem öffentlich sichtbaren Produkt nutzt, freuen wir uns über einen kleinen Hinweis:

Powered by Obolus

Stabilität

Die API entwickelt sich aktiv weiter. Kern-Endpunkte bleiben stabil, während Response-Strukturen sich im Detail verbessern können. Für produktive Integrationen empfehlen wir, Responses defensiv zu verarbeiten.

Support

Bei Fragen zur öffentlichen API, für API-Key-Anfragen, manuelle Freischaltung oder für höheren Durchsatz nutze bitte das Kontakt- oder Feedback-Formular auf der Website, um API-Keys zu erhalten oder Limits anzupassen.