{"openapi":"3.1.0","info":{"title":"Canadian Legal Data API","description":"\nSearch and retrieve Canadian **case law** *and* **legislation/regulations**\nby citation, title/name, or full text.\n**Advanced search (English ✦ French):**\n- Boolean operators ( `AND/OR/NOT` or `ET/OU/NON` )\n- Phrases in quotes\n- Grouping with parentheses\n- Wildcards ( `*` suffix )\n- Proximity ( `NEAR/n` or `\"words\"~n` or `/n` )\n- French `EXACT( )` override\nDataset boosting applied (e.g. SCC decisions, statutes),\nunless explicitly sorted by **newest** or **oldest**.\n**Rate limits:** 1,000 requests/hour and 5,000 requests/day per IP.\n**Systematic scraping prohibited:** For bulk access, see https://a2aj.ca/data/\n","contact":{"name":"Access to Algorithmic Justice","email":"a2aj@yorku.ca"},"version":"0.4.0"},"paths":{"/coverage":{"get":{"summary":"Dataset coverage (earliest, latest, count)","description":"Returns, for each dataset (court/tribunal or statute/regulation), the English & French description, earliest document date, latest document date, and total document count.","operationId":"coverage","parameters":[{"name":"doc_type","in":"query","required":false,"schema":{"enum":["cases","laws"],"type":"string","description":"'cases' (default) for case law or 'laws' for statutes & regulations","default":"cases","title":"Doc Type"},"description":"'cases' (default) for case law or 'laws' for statutes & regulations"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoverageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/fetch":{"get":{"summary":"Get full text of case or law by citation","description":"Fetch a case or a law/regulation by citation. For cases, returns full text or a character slice. For laws, returns full text, a slice, or a single section (if provided). The section parameter is ignored for cases.\n\nCiting/cited case lists are excluded by default. For cases, set include_citations=true to receive them, paginated via citations_limit and citations_offset. Each returned list comes with `<field>_total` (full count) and `<field>_truncated` (whether more entries exist beyond this page); request further pages by increasing citations_offset.","operationId":"fetch","parameters":[{"name":"citation","in":"query","required":true,"schema":{"type":"string","description":"Citation in English or French (e.g., '2020 SCC 5' or 'RSC 1985, c C-46')","title":"Citation"},"description":"Citation in English or French (e.g., '2020 SCC 5' or 'RSC 1985, c C-46')","example":"2020 SCC 5"},{"name":"doc_type","in":"query","required":false,"schema":{"enum":["cases","laws"],"type":"string","description":"'cases' (default) for case law or 'laws' for statutes & regulations","default":"cases","title":"Doc Type"},"description":"'cases' (default) for case law or 'laws' for statutes & regulations"},{"name":"output_language","in":"query","required":false,"schema":{"enum":["en","fr","both"],"type":"string","description":"Output language: 'en', 'fr', or 'both' (default is 'en')","default":"en","title":"Output Language"},"description":"Output language: 'en', 'fr', or 'both' (default is 'en')"},{"name":"section","in":"query","required":false,"schema":{"type":"string","description":"Return a specific section (laws only). Leave empty to return full text.","default":"","title":"Section"},"description":"Return a specific section (laws only). Leave empty to return full text.","example":""},{"name":"start_char","in":"query","required":false,"schema":{"type":"integer","description":"Start character index for text chunking (ignored if section is specified)","default":0,"title":"Start Char"},"description":"Start character index for text chunking (ignored if section is specified)","example":0},{"name":"end_char","in":"query","required":false,"schema":{"type":"integer","description":"End character index for text chunking (-1 means end of text, ignored if section is specified)","default":-1,"title":"End Char"},"description":"End character index for text chunking (-1 means end of text, ignored if section is specified)","example":1000},{"name":"include_citations","in":"query","required":false,"schema":{"type":"boolean","description":"Cases only: include lists of citing/cited cases (paginated). Default false.","default":false,"title":"Include Citations"},"description":"Cases only: include lists of citing/cited cases (paginated). Default false."},{"name":"citations_limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Max entries returned per citation list (cases only, default 100, max 1000)","default":100,"title":"Citations Limit"},"description":"Max entries returned per citation list (cases only, default 100, max 1000)"},{"name":"citations_offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Offset into citation lists for pagination (cases only)","default":0,"title":"Citations Offset"},"description":"Offset into citation lists for pagination (cases only)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FetchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/search":{"get":{"summary":"Search cases or laws by full text or document name (English or French)","description":"Search cases or laws/regulations by full text or by title. Use search_type=full_text for content (with highlighted snippets) or search_type=name for titles only. Supports AND/OR/NOT, quotes, parentheses, wildcards (*), and proximity (\"A B\"~n or A NEAR/n B). Results contain metadata and snippets only; use fetch (with include_citations for citation lists) to retrieve a specific document.","operationId":"search","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","description":"Search query. See docs for advanced syntax.","title":"Query"},"description":"Search query. See docs for advanced syntax.","example":"Falun Gong"},{"name":"search_type","in":"query","required":false,"schema":{"enum":["full_text","name"],"type":"string","description":"'full_text' searches document content, 'name' searches document titles only","default":"full_text","title":"Search Type"},"description":"'full_text' searches document content, 'name' searches document titles only"},{"name":"doc_type","in":"query","required":false,"schema":{"enum":["cases","laws"],"type":"string","description":"'cases' (default) for case law or 'laws' for statutes & regulations","default":"cases","title":"Doc Type"},"description":"'cases' (default) for case law or 'laws' for statutes & regulations"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":50,"description":"Number of results to return (max 50)","default":10,"title":"Size"},"description":"Number of results to return (max 50)","example":10},{"name":"search_language","in":"query","required":false,"schema":{"enum":["en","fr"],"type":"string","description":"Search language: 'en' or 'fr' (default 'en')","default":"en","title":"Search Language"},"description":"Search language: 'en' or 'fr' (default 'en')"},{"name":"sort_results","in":"query","required":false,"schema":{"enum":["default","newest_first","oldest_first"],"type":"string","description":"Sort order: 'default' (relevance/boosting), 'newest_first', or 'oldest_first'","default":"default","title":"Sort Results"},"description":"Sort order: 'default' (relevance/boosting), 'newest_first', or 'oldest_first'"},{"name":"dataset","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated list of datasets (e.g., SCC, ONCA for cases or LEGISLATION-FED,REGULATIONS-FED for laws). Leave empty for no filter. See coverage for dataset codes.","default":"","title":"Dataset"},"description":"Comma-separated list of datasets (e.g., SCC, ONCA for cases or LEGISLATION-FED,REGULATIONS-FED for laws). Leave empty for no filter. See coverage for dataset codes.","example":"FC,RAD,RPD"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date filter (YYYY-MM-DD). Leave as None or empty string for no date filter.","title":"Start Date"},"description":"Start date filter (YYYY-MM-DD). Leave as None or empty string for no date filter.","example":"2023-01-01"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End date filter (YYYY-MM-DD). Leave as None or empty string for no date filter.","title":"End Date"},"description":"End date filter (YYYY-MM-DD). Leave as None or empty string for no date filter.","example":"2024-12-31"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CoverageItem":{"properties":{"dataset":{"type":"string","title":"Dataset"},"description_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description En"},"description_fr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Fr"},"earliest_document_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Earliest Document Date"},"latest_document_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Latest Document Date"},"number_of_documents":{"type":"integer","title":"Number Of Documents"}},"type":"object","required":["dataset","description_en","description_fr","earliest_document_date","latest_document_date","number_of_documents"],"title":"CoverageItem"},"CoverageResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/CoverageItem"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"CoverageResponse"},"FetchResponse":{"properties":{"results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"FetchResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SearchResponse":{"properties":{"results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"SearchResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"servers":[{"url":"https://api.a2aj.ca"}]}