Antragio collects the public funding programmes of the German federal government, the sixteen states, municipalities and the EU in one place, each with its source, target group, amount, deadline and conditions. This page shows every way an agent can reach that data: over MCP, over a REST API and over a Markdown version of every public page. None of it needs an account or a key.
A single endpoint speaking JSON-RPC 2.0 over POST. There is no session, no stream and no subscription: one message in, one message out. Supported are initialize, tools/list, tools/call, ping and the notification notifications/initialized.
Older protocol revisions are accepted and echoed back unchanged. Every tool parameter is documented with type and meaning at https://antragio.com/mcp
MCP over stdio, with the CLI
If your client only speaks stdio, a small command line tool sits in between. It talks stdio to your client on one side and to the same HTTP endpoint as above on the other. It stores nothing and needs no key.
Terminal
npx -y @antragio/cli mcp
@antragio/cli is built outside this website and loaded through npx. It is a bridge onto the same public endpoint, so tools, answers and rate limits are identical.
REST API under /api/v1
For everything that does not speak MCP. JSON, no sign in, CORS open, and every answer additionally carries the fields disclaimer and license. If you do not know which filter values are allowed, call /api/v1/categories first.
GET
/api/v1/programs
The list of programmes. Filters for full text (q), category, level, funding type, target group, region and status, plus limit and offset. Filters combine with AND, and an unknown value returns 400 rather than a silently empty list. Nationwide programmes are always included when a region filter is set.
The complete taxonomy: categories with counts, plus levels, funding types and target groups. The right first call, because afterwards the allowed values of every other endpoint are known.
Example
curl -sS "https://antragio.com/api/v1/categories"
POST
/api/v1/match
Scores a described situation and returns matches with a score, reasons, warnings and a checklist. Stateless: no account, no cookie and no stored case is created. Unknown keys inside answers are dropped.
The description of this API as OpenAPI 3.1. Its enumerated values come from the same registries the endpoints validate against, so the two cannot drift apart.
Every public page also exists without navigation and without markup. Append the path of the HTML page to /api/md. Compared to fetching the HTML page this saves most of the tokens and carries the same information.
There are Markdown versions for programme pages, directory pages, topic pages and state pages. Whatever robots.txt blocks does not exist here either, otherwise this route would be a way around our own robots.txt. A trailing .md is swallowed, so both spellings work.
Discovery documents
Anyone who has never heard of Antragio can find the interfaces through these files, without having read any documentation first.
What this domain is about, how many programmes there are and where the machine readable versions live. Every number in it is read from the database at request time.
The limits apply per IP address and are enforced by the very module these numbers are read from. They are deliberately wide enough for an agent in a conversation and too narrow for a full dump of the database.
MCP calls
120 / 5 min
REST calls
300 / 60 min
Results per page
25 … 100
Above the limit the REST API answers with HTTP 429 and a retry-after header, the MCP server additionally with the JSON-RPC error -32000. The headers x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-reset sit on every REST answer, so a client can slow itself down before it hits the wall.
Licence
Free to use with attribution: Antragio. The data comes from public funding guidelines and is edited by hand. Binding is always the funding body's original source, which travels with every record as sourceUrl.
Please pass on the retrieval time
Funding programmes change constantly: rates get cut, budgets run dry, deadlines move. A statement without a timestamp cannot be checked a few weeks later. Always give your users the retrieval time and the link to the original source.
Pattern for an attribution
Antragio, <programme name>, https://antragio.com/programm/<slug>
retrieved at <ISO 8601 timestamp>, funding body's original source: <sourceUrl>
What Antragio does not do
These boundaries are not politeness, they are section 2 (1) RDG and section 5 StBerG, the German rules on legal and tax services. They live in the code in exactly one place, and they are enforced by the fact that there is no tool at all that files, declares or approves. Pass them on in your system prompt. The binding wording is the German one on /agenten.
We prepare, we check and we accompany. We do not file anything in your name and we do not promise approval.
Do not file anything. Tell the user which step they have to take themselves in the funding body's own portal.
Do not make any declaration on their behalf, neither a de minimis declaration nor a power of attorney nor an appeal. Name the declaration that is required and who has to sign it.
Do not promise approval. The approving authority of the programme decides on its own.
Do not state a funding amount as a fixed number. Report the range from the data and say in the same sentence which bonuses and caps are not contained in it.
For programmes of the type steuervorteil, tax relief, do not calculate any amount at all. That would be tax advice under section 5 StBerG.
The user files the application. Antragio prepares it.
The most common reason for a rejection in Germany is not a missing entitlement but the order of events: ordered first, applied for second. For grants and loans the application has to be filed before the contract is signed. Mention this point first for every programme.
I am slow but thorough. When your agent passes the data on, please always include the source and the retrieval time, and say that the numbers need to be checked against the funding body.