API
Obolus exposes a slim public API for payroll and tax-comparison workflows. MCP and OpenAPI describe the same published tool scope.
The Developer API is intentionally slim and currently focused on payroll and tax-compare workflows. The scope is expanded carefully and is currently in early public status.
MCP describes tools, discovery, and invocation in an agent-friendly format. Use /api/mcp when a client first needs resources, tools, and invocation schemas.
OpenAPI is the REST-oriented specification of the same public tools. Use /api/openapi for Swagger-compatible docs, client generation, and formal request/response schemas.
The current public scope includes MCP and OpenAPI discovery plus the two tools berechne, taxcompare. Cockpit, Budget, and Invest stay product-flow features and are intentionally not published as public API endpoints.
For most public integrations, REST through OpenAPI plus direct tool calls is the right default. MCP is the better layer for agents, tool runtimes, and clients that want discovery and invocation through a single gateway-style interface.
Recommended for standard integrations, dashboards, backend services, SDK generation, and conventional API clients.
Recommended for AI agents, tool runners, and systems that want tool discovery and invocation through one compact, machine-readable surface.
API keys are intended for production usage and should be used in all requests, even if some endpoints may currently be reachable without auth. For public integrations, x-public-api-key is the preferred header.
The public API currently uses contract versioning rather than /v1 path versioning. API version: 2.1.0. MCP version: 1.0.1. Breaking changes ship with a new contract version; additive changes can happen within the same version.
The API itself is locale-neutral and lives under /api/... without a locale prefix. The /de, /en, and /tr paths are for documentation only, not for API execution.
Rate limits currently apply at route level and are enforced the same way when website traffic and external API usage hit the same endpoint. taxcompare is currently limited to 20 requests per 5 minutes per route; berechne is more generous at 1000 requests per 5 minutes for cache misses. berechne cache hits can return before the actual rate-limit check.
OpenAPI specification (Swagger-compatible)
MCP discovery and gateway
Direct payroll and tax call
Direct salary compare call
Successful responses do not use a global ok/data envelope and instead return tool-specific response structures directly. Responses are deterministic for identical inputs within the same contract version. Response structures remain stable within the same contract version. Error responses are intentionally slim and return error plus optional details or restricted_fields depending on the failure type.
Example response (taxcompare, shortened):
{
"results": [
{
"country": "DE",
"net": 39750,
"tax": 13000,
"social_contributions": 7250,
"effective_rate": 0.3375,
"input_annual_gross": 60000,
"input_currency": "eur",
"comparison_basis": "shared_gross"
}
]
}Typical error codes:
{
"error": "Invalid taxcompare payload.",
"details": [
"body.countries must contain at least 1 items."
]
}curl -s https://www.obolusfinanz.de/api/openapicurl -s https://www.obolusfinanz.de/api/mcpcurl -X POST https://www.obolusfinanz.de/api/taxcompare \
-H "Content-Type: application/json" \
-H "x-public-api-key: YOUR_API_KEY" \
-d '{
"annual_gross": 60000,
"tax_year": "2026",
"countries": ["DE", "AT", "AU"],
"currency": "eur"
}'curl -X POST https://www.obolusfinanz.de/api/mcp \
-H "Content-Type: application/json" \
-H "x-public-api-key: YOUR_API_KEY" \
-d '{
"tool": "taxcompare",
"arguments": {
"annual_gross": 60000,
"tax_year": "2026",
"countries": ["DE", "AT", "AU"],
"currency": "eur"
}
}'MCP and OpenAPI are generated from the same contract source. That contract source is the authoritative basis of the public API. Backend changes should always ship together with the public contract.
For public API questions, API key requests, manual access, or higher throughput, use the contact or feedback flow on the website to get API keys or adjust limits.