Caselaw Access Project Scraper
parseforge/caselaw-access-scraper
AINews & mediaOther
Scrapes US court opinions from the Caselaw Access Project by reporter slug and search term. Returns each case as a flat row with full opinion text and metadata.
- Total users
- 1
- Monthly active
- 0
- Total runs
- 96
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 12 days ago
Overview
Caselaw Access Project Scraper
Scrape US case law from the Caselaw Access Project by reporter, search term, or volume, up to a million cases per run. Every case returns its full text, court, date, citations, and metadata. No API key required. Export to CSV, JSON, Excel, or XML.
The Caselaw Access Project API requires registration and a key, and rate-limits your requests. This Actor reads the public case data directly from static.case.law, filtering by reporter slug and a case-insensitive search term, and returns each match in one fixed schema. It covers all official US reporters, from the United States Reports to state and federal appellate series.
| Who uses it | What they scrape Caselaw Access Project for |
|---|---|
| Legal researchers | Build a corpus of opinions on a specific doctrine across multiple courts. |
| Data journalists | Analyze citation networks and judicial language trends over decades. |
| Law firms | Gather precedent from a particular reporter for litigation support. |
| Academic researchers | Study the evolution of legal reasoning in state and federal courts. |
What it does
This Actor collects US court opinions from the Caselaw Access Project by reporter and search query, and returns each case as a flat row with full text and metadata.
- ๐ Reporter-driven collection: Target any official reporter by its slug, such as 'us' for SCOTUS, 'f3d' for Federal Reporter 3d, or 'cal' for California.
- ๐ Full-text search filter: Supply a case-insensitive substring that is matched against case metadata as each opinion is read, so only relevant cases reach your dataset.
- ๐ Complete opinion output: Each row includes the full body text of the opinion, plus court name, decision date, docket number, citations, and judges.
- โ๏ธ All US jurisdictions: Access federal and state reporters from the full Caselaw Access Project collection, covering hundreds of volumes.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Caselaw Access Project data
๐ Build a doctrinal research corpus.
A legal researcher collects all SCOTUS opinions mentioning 'First Amendment' from the 'us' reporter to map doctrinal shifts over time.
๐ฐ Investigate judicial citation patterns.
A data journalist scrapes the Federal Reporter 3d for a term and analyzes which precedents are cited most frequently.
๐๏ธ Gather state-level precedent.
A law firm pulls every California Supreme Court opinion from the 'cal' reporter that references a specific statute for a litigation memo.
๐ Train a legal language model.
An academic researcher collects a large sample of opinions across multiple reporters to fine-tune a model on historical legal text.
Why choose this scraper
| What you get | |
|---|---|
| No API key or registration | Reads public case data directly, no sign-up required. |
| Full opinion text | Returns the complete body of each opinion, not a snippet. |
| Fixed flat schema | Every case arrives in the same predictable format for analysis. |
| Bulk collection | Collect up to a million cases in a single run on a paid plan. |
How it compares
This Actor reads the Caselaw Access Project directly, while the competitors below use the CourtListener API. Here is how they compare on key capabilities.
| Feature | ParseForge | Case Law Scraper | US Court Records Scraper: Case Law & Dockets |
|---|---|---|---|
| Full opinion text | Yes | Not listed | Not listed |
| No API key required | Yes | Not listed | Not listed |
| Filter by reporter series | Yes | Not listed | Not listed |
| Date range filter | Not listed | Yes | Not listed |
| PACER docket access | Not listed | Not listed | Yes |
Configure the run
Drive the Actor from a reporter slug and an optional search term, and the search filter runs as each case is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"reporter": "us",
"query": "first amendment",
"maxItems": 10
}
A larger pull:
{
"reporter": "us",
"query": "first amendment",
"maxItems": 200
}
Pricing
Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Caselaw Access Project Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Caselaw Access Project through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/caselaw-access-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that your reporter slug is valid by visiting static.case.law. Also, try a broader search term or leave it empty to confirm the reporter itself returns cases.
The run stopped after 10 items.
Free Apify accounts are limited to 10 items as a preview. Upgrade to a paid plan to increase the maximum cases limit.
My search term is not finding cases I know exist.
The search filter matches against case metadata fields like the case name, not the full opinion body. Try a term that appears in the title or docket number.
The Actor is running slowly.
Large reporters contain millions of cases. Reduce the maximum cases limit or use a more specific search term to narrow the scan.
FAQ
| Question | Answer |
|---|---|
| What is the Caselaw Access Project? | It is a free, public archive of all official US case law, digitized by the Harvard Law School Library Innovation Lab. It spans the entire history of the United States Reports, federal appellate reporters, and state reporters. |
| Do I need an API key to use this Actor? | No. This Actor reads the public bulk data files directly from static.case.law, so no registration or API key is required. |
| What is a reporter slug? | A reporter slug is a short code that identifies a specific law reporter series, such as 'us' for United States Reports or 'f3d' for Federal Reporter 3d. You can find the full list at static.case.law. |
| Can I search for a specific legal topic? | Yes. The search term field accepts a case-insensitive substring and filters cases as they are read. It matches against the case metadata, not the full opinion text. |
| Does this Actor return the full text of opinions? | Yes. Each row in the output includes the complete body text of the judicial opinion, along with structured metadata. |
| Which courts are covered? | All official US reporters in the Caselaw Access Project are available, including the US Supreme Court, federal appellate courts, and state supreme and appellate courts. |
| How many cases can I collect in one run? | Free users are limited to 10 cases as a preview. Paid users can collect up to 1,000,000 cases per run. |
| What output formats are supported? | You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform. |
| Can I filter by date range? | The Actor does not have a dedicated date filter. You can use the search term to narrow results, and the output includes the decision date for downstream filtering. |
| Is this the same as the CourtListener API? | No. This Actor scrapes the Caselaw Access Project directly. CourtListener is a separate free legal database that also provides case law, but this Actor does not use it. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Harvard Law School Library Innovation Lab. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| reporter | string | Reporter slug from static.case.law (e.g. us = United States Reports / SCOTUS, cal = California, ny = New York, f3d = Federal Reporter 3d). See https://static.case.law/ for the full list of reporter slugs. | us |
| query | string | Case-insensitive substring filter applied to each case's metadata. Leave empty to collect all cases in the reporter sequentially. | first amendment |
| maxItems | integer | Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 | 10 |
Pricing
from $19.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.019 to $0.021 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~caselaw-access-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
