About LegalSearch

A unified, human-first search experience for European case law.

LegalSearch turns complex legal data into a fast, explainable workflow. It bridges natural language search and precise rule-building to make high‑signal legal research accessible for practitioners, students, and policy teams.

A product of the BISS Institute, in collaboration with the Maastricht University Law & Tech Lab.

Guiding principle
“Publicity is the very soul of justice.” — Jeremy Bentham
LegalSearch is built to make legal information more visible, searchable, and shareable.
Supported datasets
ECHR (HUDOC)
Judgments, decisions, and metadata with article, respondent state, and language filters.
Rechtspraak
Dutch case law metadata with domains, court instances, document types, and selected laws.

Our mission

LegalSearch exists to lower the cognitive and technical barriers to legal research. It combines natural language input with explicit, auditable rules so every query can be understood, reproduced, and shared.

We aim to make cross‑source legal discovery feel fast and trustworthy while preserving the nuance that legal analysis demands. Our focus is on transparency: users should be able to see exactly why a result appears, change the underlying logic, and share the same view with others.

By unifying disparate sources under one consistent query language, we reduce friction between exploratory searching and rigorous legal verification.

Expose the logic behind every result. Unify ECHR and Rechtspraak in a single query language. Keep results shareable, stable, and explainable.

What it does

Natural language → rules

The search bar parses countries, articles, years, ECLIs, and quoted keywords into structured rules you can verify.

Explainable query preview

Every query has a readable preview string that can be pasted back into the search bar to reproduce the exact same results.

Shareable results

Filters, sorting, and pagination state are encoded in the URL for precise, shareable results.

How it works

  1. 1. Parse & normalize
    Natural language is parsed into structured rules, normalized to ISO‑3 codes and validated formats.
  2. 2. Execute combined search
    A single combined endpoint executes dataset‑specific queries and merges the results.
  3. 3. Paginate with a cursor
    Results stream through an opaque cursor so pagination remains consistent across sources.

Backend API

citations-api (serverless endpoints)

The citations-api powers Case‑Explorer with a set of serverless endpoints for citation networks, ECHR search, statistics, summaries, and legal link extraction. All requests use the /api base path, return JSON with CORS headers, and surface errors as { "error": "..." }.

Primary data sources
Rechtspraak via Elasticsearch + DynamoDB (metadata/edges) and ECHR via PostgreSQL full text.
Pagination rules
Network and ECHR search endpoints use cursor pagination with pageSize (max 1000) and nextCursor; nodes are capped at 1000 per response.
Core endpoints
/api/network, /api/echr, /api/echr/text, /api/statistics, /api/community, /api/summaries, /api/links.

Data sources

ECHR (HUDOC)

European Court of Human Rights judgments, decisions, and related metadata. Supports articles, respondent states, application numbers, languages, and judgment/decision dates.

Coverage through
TBD
Rechtspraak

Dutch case law metadata indexed in Elasticsearch. Supports legal domains, court instances, document types, and selected laws.

Coverage through
TBD

Team

Carlos Aguilera
Carlos Aguilera
Data Engineer
Data engineering, front-end development, back-end development
Chris van der Lans
Chris van der Lans
Frontend Developer
Front-end development, user experience (UX), information architecture, human-centric design
Shashank Chakravarthy
Shashank Chakravarthy
Research Engineer
Data engineering, NLP, machine learning, AI
Sander van Essel
Sander van Essel
Full-stack Developer
Frontend development, backend development, data engineering
David Wicker
David Wicker
Assistant Researcher
Frontend development, backend development, data engineering

Collaborators