Context layer
Developers & AI tools
overview.legal is built to be read by machines as well as people: 8,000+ documents of EU data protection law — legislation, case law, 3,300+ enforcement decisions with fine metadata, guidance and news — cross-linked by topic and citation, and exposed as context bundles, a REST API and an MCP server. Free to use; get an API key for higher limits.
Context bundles (markdown)
One curated, cited markdown file per topic or per law — drop it into your LLM's context, RAG store or project knowledge:
GET /topics/{slug}/context.md— topic bundle: editorial overview + key law text + case law + enforcement + guidance. Example: /topics/consent/context.md (?lang=nlfor Dutch)GET /laws/{law}/context.md— full text of a law, cited per provision. Example: /laws/gdpr/context.md — law slugs:gdpr,avg,ai-act,dsa,nis2,uavg, …GET /laws/{law}/{article}/context.md— focused per-article bundle: the provision text, related recitals, citing case law, enforcement stats + top fines, guidance and related topics. Example: /laws/gdpr/art-6/context.mdGET /llms.txt— site summary for AI assistants
MCP server
Connect Claude, or any MCP-capable tool, directly to the corpus. Streamable HTTP, stateless, no auth required (optional Authorization: Bearer olk_… for higher limits):
{
"mcpServers": {
"overview-legal": {
"type": "http",
"url": "https://overview.legal/api/mcp"
}
}
} Tools exposed:
search_legal— hybrid search across all content types, results carry the matched passage + topic slugs;modescopes by jurisdiction (eudefault,nl,all),courtnarrows case law tocjeuornationalbuild_overview— CJEU-first, authority-ranked overview of a topic or question (leads with CJEU/EU courts + EDPB, then national case law), with verbatim quotes for the leading judgmentsget_document— one document with topics + citation counts; long judgments/decisions are split into ¶/§ sections — passqueryto get the matching passages (quotable verbatim) instead of a top-of-document sliceget_article— verbatim text of one law article by law + article number (no id guessing)verify_quote— anti-hallucination check: confirm a citation (e.g. aC-…/…reference or ECLI) exists, or that a passage appears verbatimget_citations— citation graph (law articles ↔ cases ↔ decisions)list_topics— find topic slugs by name (EN/NL) to feedget_topic_contextget_topic_context— the full topic context bundle as markdownenforcement_stats— GDPR fine statistics by article, country, authority, year
REST API
| Endpoint | What it does |
|---|---|
GET /api/hybrid-search?q=… | Hybrid full-text + semantic search. Params: types, topics, language, mode (eu|nl jurisdiction scope), limit, offset |
GET /api/similar?id=… | Semantically similar documents (pgvector) |
GET /api/citations/{id} | Citation graph for a document |
POST /api/ask | RAG answer with citations. Single-shot {"q": "…"}, or grounded/conversational {"messages": […], "source_ids": [1,2], "language": "nl"} — source_ids are preferred sources, hybrid search tops up (quota: 5/day anonymous, 25 with account, 100 with API key) |
GET /api/stats | Live corpus counts |
curl "https://overview.legal/api/hybrid-search?q=consent+cookies&types=case-law,enforcement&limit=5" \ -H "Authorization: Bearer olk_YOUR_KEY"
curl -X POST https://overview.legal/api/ask \
-H "Content-Type: application/json" \
-H "Authorization: Bearer olk_YOUR_KEY" \
-d '{"q": "When is consent freely given under the GDPR?"}' API keys & limits
- Anonymous: 60 requests/min per IP on search/citations, 120/min on similar.
- With a free API key: 300 requests/min per key, usage visible in your account.
- Keys are free while the platform grows. Heavy or commercial integrations: mention it via the contact below so we can plan capacity (a paid tier with SLAs will follow demand).
Fair use
- Content is aggregated from official sources (EUR-Lex, curia.europa.eu, rechtspraak.nl, EDPB, national DPAs) and organized by overview.legal; it is legal information, not legal advice.
- Attribute answers and datasets to overview.legal with a link to the canonical URL.
- No bulk scraping of HTML pages — the bundles and API exist so you don't have to.