UK Case Law Search and Monitor
Pricing
from $0.60 / 1,000 judgments
UK Case Law Search and Monitor
🏷️ From $0.60 / 1K | Search and monitor UK court judgments from Find Case Law. Filter by court, party, judge and date, and export full citations, neutral citations and judgment links.
Pricing
from $0.60 / 1,000 judgments
Rating
0.0
(0)
Developer
丂卩ㄖㄖҜㄚ
Maintained by CommunityActor stats
1
Bookmarked
4
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
Search and monitor UK court judgments and tribunal decisions from the National Archives Find Case Law service: case name, neutral citation, court, judge, dates, links and optional full text. No account needed.
🏛️ Find Case Law has an official API. What does this Actor add?
The official route is good. Find Case Law has a search site and a documented public API that needs no key and no account. What the API returns is Atom feeds for search results and LegalDocML XML for each judgment, capped at 50 results per page, with no CSV export. To get a usable table out of it you parse XML, walk the pagination, join the document metadata to the identifiers, and stay inside the service's limit of 1,000 requests per rolling five minutes.
This Actor does that work in one call: flat rows with the citation, court, dates and links already extracted, full judgment text lifted out of the XML when you ask for it, a content hash per judgment so amendments show up as data, and the rate limit respected with built-in throttling. Run it on a schedule and pipe the rows to a spreadsheet, a webhook or a database without writing a parser.
🔍 What does UK Case Law Search and Monitor do?
It runs a search against Find Case Law and returns every judgment it finds as a clean row of data, ready for a spreadsheet, a database or your own product.
- Searches across all UK courts and tribunals: Supreme Court, Court of Appeal, High Court (all divisions), Upper Tribunals, Employment Appeal Tribunal, First-tier Tribunals
- Returns structured metadata: case name, neutral citation, date, court, party names, links to HTML, PDF and XML versions
- Optionally fetches the full text of each judgment for document analysis, AI processing, or legal research
- Supports change monitoring via content hashes, run on a schedule to detect when judgments are updated or new ones published
- Paginates automatically through large result sets
Data is licensed under the Open Justice Licence, and commercial use is permitted.
📊 What data can I extract from Find Case Law?
One row per judgment:
| Field | Description | |
|---|---|---|
| 🏷️ | title | Case name, for example "Smith v Jones" |
| 🔢 | neutralCitation | Official citation, for example "[2024] EWCA Civ 123" |
| 🔢 | fclIdentifier | Find Case Law internal ID |
| 🔢 | documentUri | Stable machine-readable URI for the judgment document |
| 📅 | dateHandedDown | Date judgment was handed down (YYYY-MM-DD) |
| 📅 | dateUpdated | Date last updated in the Find Case Law system |
| ⚖️ | court | Court or tribunal name |
| 🔐 | contentHash | Hash of judgment text, for change detection |
| 🔗 | urlHtml | Link to the human-readable judgment page |
| 🔗 | urlXml | Link to structured LegalDocML XML |
| 🔗 | urlPdf | Link to the PDF version |
| 🔢 | identifiers | All identifiers, neutral citation plus FCL ID, each with its URL |
| 📄 | fullText | Full judgment text, only when "Include full text" is enabled |
| ✅ | fullTextRequested | Whether the run asked for full judgment text |
| ✅ | fullTextFetched | Whether the full text was actually retrieved, so a failed fetch is visible |
💡 Why scrape UK case law?
Practice area monitoring. An employment solicitor watching for new Employment Appeal Tribunal judgments on unfair dismissal, running the same search every Monday and reading only what changed.
Case tracking. A litigant or journalist waiting for a specific judgment to be handed down, searching by party name daily instead of refreshing the site.
Regulatory tracking. A tax adviser following Upper Tribunal (Tax and Chancery) decisions on a scheme their clients used, filtered by court and date range.
Judicial review watching. A public affairs team pulling every new Administrative Court judgment that names their department or sector.
Academic research. A law researcher building a dataset of every Court of Appeal (Civil) judgment in a year, with citations and dates in columns rather than in PDFs. Note that computational analysis of judgment text needs a separate licence from the National Archives, covered in the FAQ below.
Amendment detection. A knowledge team using the contentHash field to spot when a judgment they have already cited is quietly amended.
🚀 How do I use UK Case Law Search and Monitor?
- Click Try for free.
- Enter a keyword in
query, wrapping phrases in double quotes for an exact match. - Narrow it with
court,party,judgeor adateFromanddateTorange. - Set
maxResultsto cap the run, and turn onincludeFullTextif you need the judgment text. - Click Start, then download the results as JSON, CSV or Excel, or pull them from the API.
⬇️ Input
{"query": "\"unfair dismissal\"","court": "eat","dateFrom": "2024-01-01","maxResults": 50}
| Field | Type | Default | What it does |
|---|---|---|---|
query | string | Full-text keyword search, wrap phrases in double quotes for exact match | |
court | string | all courts | Court code to filter by, see the table below |
party | string | Filter by party name, partial names work | |
judge | string | Filter by judge name, partial names work | |
dateFrom | string | Only judgments handed down on or after this date (YYYY-MM-DD) | |
dateTo | string | Only judgments handed down on or before this date (YYYY-MM-DD) | |
maxResults | integer | 50 | Maximum number of judgments to return, up to 500 |
includeFullText | boolean | false | Fetch the full judgment text for each result, slower |
orderBy | string | -date | Sort order: -date newest first, date oldest first, -updated or updated by last amendment |
⬆️ Output
Table view
Results arrive as a Judgments table you can sort and filter in the Console, with the case name, citation, court and dates lined up for scanning.
JSON
A typical row:
{"title": "MUF, R (on the application of) v The Secretary of State for Defence","court": "High Court (Administrative Court)","neutralCitation": "[2026] EWHC 2108 (Admin)","dateHandedDown": "2026-08-07","dateUpdated": "2026-08-07","fclIdentifier": "xhxv8gx6","documentUri": "d-6a6be1b5-9d65-4629-a11b-b03c021f47cd","contentHash": "b67c28468dfb86b159c7ed69e2b92236a50cf882b0803b1cc691319ead8f10d4","urlHtml": "https://caselaw.nationalarchives.gov.uk/ewhc/admin/2026/2108","urlXml": "https://caselaw.nationalarchives.gov.uk/ewhc/admin/2026/2108/data.xml","urlPdf": "https://assets.caselaw.nationalarchives.gov.uk/d-6a6be1b5-9d65-4629-a11b-b03c021f47cd/d-6a6be1b5-9d65-4629-a11b-b03c021f47cd.pdf","fullText": null}
Download it from the run as JSON, CSV or Excel, or read it straight from the API.
Courts available
| Code | Court |
|---|---|
uksc | UK Supreme Court |
ukpc | Privy Council |
ewca/civ | Court of Appeal (Civil) |
ewca/crim | Court of Appeal (Criminal) |
ewhc/kb | High Court (King's Bench) |
ewhc/ch | High Court (Chancery) |
ewhc/fam | High Court (Family) |
ewhc/comm | High Court (Commercial) |
ewhc/pat | High Court (Patents) |
ewhc/tcc | High Court (Technology and Construction) |
ewhc/admin | High Court (Administrative) |
eat | Employment Appeal Tribunal |
ukut/iac | Upper Tribunal (Immigration and Asylum) |
ukut/tax | Upper Tribunal (Tax and Chancery) |
ukut/lc | Upper Tribunal (Lands Chamber) |
ukftt/tc | First-tier Tribunal (Tax) |
ukftt/grc | First-tier Tribunal (General Regulatory) |
Scheduling and monitoring
This actor works well on a schedule. To monitor for new judgments in a specific area:
- Set a keyword query, for example
"unfair dismissal", and a court, for exampleeat - Set
orderBytoNewest first - Set
maxResultsto 10 to 20 - Schedule it to run daily or weekly via Apify's scheduler
Use the contentHash field to detect when existing judgments are amended.
Rate limits and performance
The National Archives API allows up to 1,000 requests per rolling 5-minute window per IP. This actor automatically respects this limit with built-in throttling and exponential backoff on errors.
Typical run times:
- 50 results, metadata only: around 30 seconds
- 50 results, with full text: 3 to 5 minutes
- 500 results, metadata only: around 5 minutes
⏱️ How long does a run take?
Measured on real runs, so you know what normal looks like and can tell it apart from a run that has stalled.
| Judgments returned | Typical run time |
|---|---|
| 5 | 2 to 3 seconds |
| 50 | 5 to 10 seconds |
| 200 | about 30 seconds |
Two things make a run take longer than the table. Full judgment text is a separate document fetch per judgment, so 25 judgments with includeFullText on took about 27 seconds, roughly what 200 judgments take without it. And the Find Case Law service allows 1,000 requests per rolling five minutes, which this Actor throttles itself to stay inside, so a large run paces itself rather than being refused. The first few seconds of any run are the container starting rather than the work.
A run is never silently stuck. Progress is logged as each page of results is read, and judgments are written to the dataset as they are parsed rather than held back to the end, so a run that hits its time limit still leaves everything it had already collected. A search that matches nothing ends successfully with an empty dataset and the reason in its status message.
Set the run timeout to suit the size of the ask. This Actor's default is 3600 seconds, which is comfortably more than the largest run in the table above (500 judgments takes about 4 minutes). You are charged per delivered result rather than per minute, so a generous timeout costs you nothing and a tight one risks losing the run's work. Lower it only if you want a hard ceiling on how long a scheduled run may sit.
💰 How much does it cost?
$0.001 per judgment returned, plus the standard $0.00005 Apify charges once when a run starts. There is no monthly rental, so you pay only for what a run actually returns.
So a search that returns 50 judgments costs $0.05005. A scheduled monitoring run that picks up 8 new judgments since it last ran costs $0.00805, and a deep pull of 500 judgments costs $0.50005. A run that finds nothing new costs $0.00005.
Paid Apify plans pay less per judgment: $0.00085 on Bronze, $0.0007 on Silver, $0.0006 on Gold, $0.0005 on Platinum and $0.0004 on Diamond, which is 40 percent of the list price. That same 500 judgment pull is $0.20005 on Diamond.
Set maxResults to cap what a run can cost before it starts. Turning on includeFullText makes a run slower but does not change the charge, since you are still charged once per judgment. The Apify listing always shows the current rates.
🔌 Integrations
Send results straight to Google Sheets, Slack, Airtable, Zapier, Make or your own webhook using Apify integrations. You can also trigger a run whenever something happens in another tool.
AI agents can call this Actor directly through the Apify MCP server. An agent connected to mcp.apify.com can discover spookyweb/uk-case-law-search-monitor, pass it a query, court and date range as tool arguments, and read the judgment rows back as structured results. That makes it usable from Claude, custom agents or any MCP client without writing API glue.
🔗 Using UK Case Law Search and Monitor with the Apify API
curl -X POST "https://api.apify.com/v2/acts/spookyweb~uk-case-law-search-monitor/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"query": "\"unfair dismissal\"", "court": "eat", "dateFrom": "2024-01-01", "maxResults": 50}'
Or with the Apify client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('spookyweb/uk-case-law-search-monitor').call({query: '"unfair dismissal"',court: 'eat',dateFrom: '2024-01-01',maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Full detail is in the Apify API reference, and every run is also callable from the Python and JavaScript clients.
❓ FAQ
Is there an official Find Case Law API?
Yes. Find Case Law publishes an API, but it answers in Akoma Ntoso LegalDocML, an XML format you have to parse and flatten before it is any use. This Actor talks to that API for you and hands back flat rows with the citation, court, dates and links already extracted.
How far back does coverage go?
Coverage is exactly whatever Find Case Law publishes. It holds the modern judgment record for the courts and tribunals listed above, and the National Archives keeps adding older material. If a judgment is on Find Case Law this Actor will find it. Use dateFrom and dateTo to bound a search.
Can I monitor for new judgments on a topic?
Yes, that is what the scheduling section above is for. Set a query and a court, sort newest first, keep maxResults low and schedule it daily. The contentHash field also tells you when a judgment you already have has been amended.
What is a neutral citation?
It is the court's own citation for a judgment, independent of any law report, for example [2024] EWCA Civ 123. It identifies the court, the year and the judgment number, and it is the reliable key for joining this data to anything else.
Can I get the full text of a judgment?
Yes, set includeFullText to true and the fullText field is populated for every result. It is slower because each judgment is fetched individually, so leave it off when you only need metadata.
Can I use the data commercially?
Yes, with one carve-out. Find Case Law data is published under the Open Justice Licence, which permits copying, sharing and commercial use, including building the data into your own product, subject to attribution. What the licence does not cover is computational analysis of the judgment text, such as data mining or search indexing, which needs a separate licence from the National Archives. Attribution statement: Contains information licensed under the Open Justice Licence.
⚖️ Is it legal to scrape UK case law?
Judgments are public documents published by the National Archives Find Case Law service. Open justice means court judgments are published deliberately for anyone to read. This reads only that public service, and it never logs in.
Judgments name parties because the court published them that way, so treat any onward use of names under GDPR as your responsibility. Apify's ethical scraping guide covers the wider picture.
👍 Your feedback
Found a bug, or want a field that is not here yet? Open an issue on the Actor's Issues tab. Requests that make the data more useful get built, and problems get fixed quickly.
🔎 You might also like
| Actor | What it does |
|---|---|
| UK Employment Tribunal Decisions | Employment tribunal decisions from GOV.UK, searchable by employer, claim type and date |
| UK Financial Ombudsman Decisions | Final FOS decisions filterable by business, sector and outcome, with PDF links |
| UK FCA Enforcement Notices | FCA final, decision and warning notices with firm names and penalty amounts |