API and integrations
REST API
JSON over HTTPS, version 1. Any origin may call it (CORS). Answers for a postal code or a point are cached for a day.
GET /api/v1/courts
The canton and every court with jurisdiction. Give one of: address, postalCode, or lat and lon. lang=nl, fr or de picks the language of the names. Courts with certain: false depend on the street.
curl 'https://court-full.vercel.app/api/v1/courts?postalCode=9820'
curl 'https://court-full.vercel.app/api/v1/courts?address=Kerkstraat%2010%2C%202060%20Antwerpen&lang=fr'
curl 'https://court-full.vercel.app/api/v1/courts?lat=51.0543&lon=3.7174'const res = await fetch('https://court-full.vercel.app/api/v1/courts?postalCode=9000&lang=nl')
const { cantons, courts } = await res.json()
// courts: [{ id, type, name, address, phone, email, website, certain, division? }, …]GET /api/v1/court/{id}
One court or division by id (from /courts), with its divisions.
curl 'https://court-full.vercel.app/api/v1/court/court-of-first-instance-oost-vlaanderen?lang=nl'Errors come as JSON {"error": {"code", "message"}}, with status 400 (invalid request), 404 (not found) or 502 (address register unreachable).
The full description in OpenAPI 3.1 /api/v1/openapi.json
Beyond jurisdiction
The same rules the site computes with, as REST and as MCP tools: a municipality by (mistyped) name or postal code (find_place), reading a pasted letter (read_court_letter), the legal-aid income limits with their sources (legal_aid_check), interest on claims with payments (interest) and procedural deadlines (procedural_deadline). Errors share one shape: { "error": { "code", "message" } }.
GET /api/v1/places · /legal-aid · /deadline
curl 'https://court-full.vercel.app/api/v1/places?q=Gnet'
curl 'https://court-full.vercel.app/api/v1/legal-aid?household=partner&dependants=2&income=2400'
curl 'https://court-full.vercel.app/api/v1/deadline?type=appeal&date=2026-06-20'POST /api/v1/interest · /letters/analyze
curl 'https://court-full.vercel.app/api/v1/interest' -H 'Content-Type: application/json' \
-d '{"claims":[{"principal":10000,"from":"2024-07-01"}],"payments":[{"date":"2025-01-01","amount":2000}],"asOf":"2025-07-01"}'
curl 'https://court-full.vercel.app/api/v1/letters/analyze' -H 'Content-Type: application/json' \
-d '{"text":"Vonnis bij verstek … betekend op 10 maart 2026"}'A letter is processed in memory only: never stored or logged. National register numbers are masked before reading and in every excerpt returned. At most 20 kB; larger gives 413.
MCP server
For Claude and other assistants: the Model Context Protocol over Streamable HTTP, with tools such as find_courts, get_court and summons_deadline.
claude mcp add --transport http courtfull https://court-full.vercel.app/api/mcphttps://court-full.vercel.app/api/mcp{
"mcpServers": {
"courtfull": {
"type": "http",
"url": "https://court-full.vercel.app/api/mcp"
}
}
}Try it
Send a real request to this site's API, see the answer and take the code to your own software.
Loading the playground…
Widget for your site
A search box with the competent courts, on your own site. Paste this where it should go: the height adjusts by itself.
<div data-courtfull data-lang="nl"></div>
<script src="https://court-full.vercel.app/embed.js" async></script>data-lang (nl, fr, en) and data-theme (light, dark) are optional. Without the script, an iframe works too:
<iframe src="https://court-full.vercel.app/embed?lang=nl&theme=light" title="CourtFull"
style="width:100%;height:420px;border:0"></iframe>Preview
Browser extension and Outlook
In the extension/ folder of the source: an extension for Chrome and Firefox (right-click a selected address, or a search box in the toolbar) and an Outlook add-in with the widget as its task pane.
From your browser and phone
Use CourtFull from your browser's address bar, share an address from Google Maps or click a bookmark on any website.