Developers — the Delegro public API | Delegro
Delegro's published articles and services as read-only JSON, with an OpenAPI 3.1 specification. No API authentication, no rate limits, no write API.
Delegro publishes its articles and service information as JSON so an agent or an application can use them without parsing a web page. Everything below is read-only, needs no API key, and is regenerated on every deploy, so it always matches the HTML served at the same moment.
The full machine-readable description lives at /openapi.json. It is OpenAPI 3.1, describes exactly two operations, and every path in it is a real file — nothing is advertised that does not exist.
GET /api/posts.json returns every published article, newest first, with its title, canonical URL, publication and update dates, author, and full sanitised HTML body. Articles that have a German translation carry a translations array with the German URL, title and body.
GET /api/services.json returns the services Delegro offers — incorporation, accounting and payroll — each with its page URL and a one-line summary.
There is no API key, because there is nothing here to protect: every endpoint on this page is public, read-only static JSON. There is no write API and no authenticated endpoint. The Delegro app itself has accounts, sign-in and per-user data — this page is about the public API only. If your use case needs a key, write to support@delegro.io rather than probing for an undocumented route: the answer is that it does not exist yet.
None beyond Cloudflare's own edge protection. These are static files rather than a service, so there is no per-key quota to exhaust and no throttling headers to read.
/sitemap.xml lists every indexable URL with hreflang alternates for the German pages. /llms.txt describes what Delegro is for and when an agent should reach for it. /.well-known/security.txt is the RFC 9116 contact for reporting a vulnerability.
Delegro speaks the Model Context Protocol at POST /mcp — JSON-RPC 2.0 over Streamable HTTP, no API key, stateless. Call initialize, then tools/list. Two tools today. estimate_formation_cost returns what it costs to incorporate a UG or GmbH from the statutory GNotKG scale rather than as a quote. start_incorporation begins a formation and returns a link the founder opens to finish and pay — it refuses date of birth, nationality, residence, home address and payment details, because those are collected here rather than in a chat. Because the server holds no state there is no SSE stream to open, and GET /mcp returns 405 by design rather than by omission.
An assistant can collect the company, the share capital, the package and the shareholders, then hand the founder a delegro.io link that opens with those answers already filled in. What it cannot do is finish: German formation requires a notary appointment with verified identity, so identity details and payment happen here, with a person. Nothing is saved until the founder opens the link — the answers travel in the link itself, signed, and are checked before the page renders.
Every article is available as Markdown at its own URL: send Accept: text/markdown and you get the prose instead of the page. Responses carry Vary: Accept, so a cache cannot serve one representation to a caller that asked for the other. The Markdown is generated from the same body the HTML carries, so the two cannot disagree.