Search court decisions
Full-text search across 1,050,000+ Swiss court decisions. Supports keywords, phrases (in quotes), Boolean operators (AND, OR, NOT), and prefix matching (word*). Each result carries citation_string_{de,fr,it} + canonical_url + rule_statement for copy-ready use in LLM responses. Large pages use compact citation entries. Page with next_offset while has_more is true. Relevance-ranked text searches use a bounded candidate pool: exhausting pages does not prove corpus completeness. When total_is_lower_bound is true, total is not an exact count. Filter-only searches can enumerate their matching records.
Request
- Base URL: https://mcp.opencaselaw.ch/api
- URL: https://mcp.opencaselaw.ch/api/decisions
- Auth: none declared
Query parameters
Search query (FTS5 syntax: keywords, "phrases", AND/OR/NOT). Max 4,000 chars; input over 500 chars is auto-condensed to citations + key terms — send 3-8 precise terms for best results.
Alias for query (the short name used in the public docs / by most clients). query wins if both are given.
Filter by court code (e.g., bger, bvger, zh_obergericht)
Filter by canton (CH, ZH, BE, GE, etc.)
Filter by language: de, fr, it, rm — plus en, which reaches ECtHR judgments only (no Swiss case law is in English)
Start date (YYYY-MM-DD)
End date (YYYY-MM-DD)
Filter by chamber/division (substring match)
If true, return only Federal Supreme Court rulings flagged for the official BGE collection (Neuheiten '*' = 'für die Publikation vorgesehen') — future leading cases, flagged before the BGE number is assigned. Populated for BGer decisions from mid-2026 onward.
Max results to return
Skip results for pagination
Sort: relevance (default), date_desc, date_asc
Detail level: full or compact
Attach a pinpoint Erwägung citation to the top 5 full-fields results. Set false to skip the per-result lookup (typically saves 0.2-2 s; more for long or statute-heavy queries).
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.