Google Scholar Case Law API
Pricing
from $0.01 / 1,000 results
Google Scholar Case Law API
API for Google Scholar US case law. Search opinions and pull full case details with court, year, and citation filters. Returns structured JSON. MCP-ready.
Pricing
from $0.01 / 1,000 results
Rating
5.0
(3)
Developer
John
Maintained by CommunityActor stats
6
Bookmarked
18
Total users
10
Monthly active users
19 hours ago
Last modified
Categories
Share
🏛️ Google Scholar Case Law API
Case law API for US court opinions on Google Scholar. Search opinions and pull full case details (parties, court, decision dates, full citations, cited cases) as structured JSON. Filter by court, by decision year, by language. MCP-ready, so Claude and other AI agents can call it as a tool inside AI agent workflows.
📋 What this API returns
| Field | Where | Description |
|---|---|---|
result_id | search results | Google Scholar identifier. Use to fetch full case detail. |
title | both | Case title with reporter citation. |
snippet | search results | Short text preview from the opinion. |
publication_info | search results | Author, source, and date block. |
inline_links | search results | Cited-by, related, versions, cached links. |
name | case detail | Short party-name designation (e.g. Brown v. Board of Education). |
court_name | case detail | Deciding court. |
dates | case detail | Decision, argued, and filed dates with type labels. |
short_citations | case detail | Abbreviated case references. |
case_numbers | case detail | Docket numbers. |
cited_cases | case detail | Every case referenced in the opinion. |
first_page, last_page | case detail | Reporter page range. |
🔍 Use cases
- Legal research API. Pull every Supreme Court opinion mentioning a phrase, scoped by year.
- Citation analysis. Get
cited_casesfor a known opinion and walk the citation graph. - Jurisdictional studies. Restrict to a specific court (e.g.
158for SCOTUS,33for New York state courts) and export the corpus. - Litigation prep. Pre-load case-fact summaries into your case-management workflow.
- AI agent workflows. Drive this API over MCP from Claude (see below) to research case law in-conversation.
🔌 Integrations: Automate Case Law API Monitoring and AI Agent Workflows
A single run answers one question ("which Ninth Circuit opinions cite qualified immunity?"). The real value comes from running this case law API on a repeat, so new opinions land in your stack the moment Google Scholar indexes them. See the full list of Apify platform integrations.
Tasks and Schedules (the core recipe). Save one task per query you watch (a phrase like "qualified immunity" scoped to a court, or a citation-tracking query for a landmark opinion), then attach a schedule from the Actor's Actions, then Schedule menu. Useful cron strings: 0 7 * * * (daily at 7 AM), 0 */6 * * * (every six hours), 0 9 * * 1 (Mondays). One schedule can trigger many tasks at once, so a whole watchlist of legal queries refreshes on one timer. The Find Ninth Circuit opinions on qualified immunity task is a ready-made starting point.
n8n. This API ships an n8n community node (see the n8n integration section below). A four-step monitor: Schedule Trigger, then the Google Scholar Case Law API node, then a Filter on court_name, then Slack or email.
Make and Zapier. The same pattern works no-code with Make and Zapier: trigger on a schedule, run the Actor, then route the new opinions where you need them.
Store the history (Supabase). Send each run's rows into a table so a case law archive accumulates across runs. No-code: the n8n Actor node, then a Supabase node. Or in Python (each row carries result_type, title, case_id, court_name, publication_info, and snippet):
from apify_client import ApifyClientfrom supabase import create_clientapify = ApifyClient("YOUR_APIFY_TOKEN")supabase = create_client("YOUR_SUPABASE_URL", "YOUR_SUPABASE_KEY")run = apify.actor("johnvc/google-scholar-case-law").call(run_input={"query": "qualified immunity","maxResults": 30,"yearFrom": 2015,})rows = list(apify.dataset(run["defaultDatasetId"]).iterate_items())supabase.table("case_law").upsert(rows).execute()
MCP and AI agents. Add this API as a tool in Claude or Cursor through the Apify MCP server so an agent can search opinions and pull case detail mid-conversation, the building block for legal-research AI agent workflows (see the Use this API from Claude section below).
Webhooks. For anything custom, fire an Apify webhook on ACTOR.RUN.SUCCEEDED to push each run's dataset into your own service.
⚙️ Input examples
Basic search
{"query": "patent infringement","maxResults": 20}
Court-filtered, year-bounded search
{"query": "First Amendment school speech","maxResults": 30,"yearFrom": 2010,"yearTo": 2024,"courts": ["158"],"sortByDate": true}
courts: ["158"] restricts to the Supreme Court of the United States. Leave courts empty to search every US state and federal court.
Fetch full case detail by ID
{"caseIds": ["1810530706706468549","5036225562552830387"]}
Search and auto-fetch detail for every hit
{"query": "trademark dilution","maxResults": 5,"fetchCaseDetailsForResults": true}
Returns 5 search_result rows AND 5 case_detail rows in the dataset.
🧾 Common court codes
| Code | Court |
|---|---|
(omitted / empty courts) | All US state and federal |
158 | Supreme Court of the United States |
159 | US Court of Appeals, Federal Circuit |
160 to 172 | US Courts of Appeals, 1st through DC Circuits |
192 | US Tax Court |
33 | New York state courts |
5 | California state courts |
Any numeric court code shown in Google Scholar's case-law UI is accepted.
🔌 Use this API from Claude (MCP)
This Actor is MCP-server-compatible. Once published to the Apify Store, it is reachable from any MCP client (Claude Desktop, Claude Code (free trial), etc.) via Apify's hosted MCP server at https://mcp.apify.com.
Add it with this Actor-specific URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/google-scholar-case-law
Setup walkthrough:
Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp
Add this to your MCP client config (e.g. ~/.claude/mcp.json or Claude Desktop's claude_desktop_config.json):
{"mcpServers": {"apify": {"url": "https://mcp.apify.com","headers": {"Authorization": "Bearer YOUR_APIFY_TOKEN"}}}}
Then ask Claude:
"Use the Google Scholar Case Law API to find
patent infringementcases from 2020 onward. Return the top 5 results, then fetch the full case detail for each one."
Claude will call this Actor through the MCP server. The input schema's field descriptions become tool-arg docs, and the structured dataset comes straight back into the conversation.
💰 Pricing (pay-per-event)
| Event | Price | When it fires |
|---|---|---|
actor-start | $0.02 | Once per Actor run, at startup. |
search-result | $0.02 | Per organic search result returned. |
case-detail | $0.02 | Per full case detail fetched. |
A 10-result search costs $0.02 + 10 x $0.02 = $0.22. A 10-result search plus detail for every result costs $0.02 + 10 x $0.02 + 10 x $0.02 = $0.42.
🚀 How to get started
- Open the Actor and enter a
query(addyearFrom/yearToorcourtsto narrow it). - Set
maxResults, then run the Actor. - Read the rows from the dataset (JSON, CSV, Excel, or API). Set
fetchCaseDetailsForResults: trueto also pull the full case detail for every hit.
Want working code? See the Google Scholar Case Law API example repo for a Python quick-start and MCP setup walkthroughs for Claude, Cursor, and ChatGPT.
Data source: Google Scholar case law.
🗂️ Output format
Every dataset item has a result_type field. It is either "search_result", "case_detail", or "error". Filter the dataset on this field to separate the two kinds of rows. Search results carry result_id; case-detail rows carry case_id (they are the same identifier).
Example output (real search result row)
{"result_type": "search_result","position": 1,"title": "Markman v. Westview Instruments, Inc.","link": "https://scholar.google.com/scholar_case?case=10285146068541901213&q=patent+infringement&hl=en&num=1&as_sdt=80006","publication_info": {"summary": "52 F. 3d 967 - Court of Appeals, Federal Circuit, 1995 - Google Scholar"},"snippet": "... not useful, however, in the context of a patent infringement suit ... Patents are not contracts per se and patent infringement ...","inline_links": {"cited_by": {"total": 7058,"link": "https://scholar.google.com/scholar?cites=10285146068541901213&as_sdt=80005&sciodt=80006&hl=en&num=1","cites_id": "10285146068541901213"}},"result_id": "nQlyNtstvI4J","case_id": "10285146068541901213","fetched_at": "2026-07-03T23:55:09.942747+00:00"}
n8n integration
Available as an n8n community node, n8n-nodes-google-scholar-case-law-api. In n8n: Settings, Community Nodes, install n8n-nodes-google-scholar-case-law-api, then use it in any workflow (it also works as an AI Agent tool).
🔗 Related Tools
Building a legal or academic research pipeline? These tools from the same catalog pair well with US case law:
- Google Scholar API: research papers, author profiles, and academic citations, for the scholarship that surrounds a legal question.
- Google Scholar Lite API: cheap bulk academic paper metadata when you need volume over full detail.
- Google Patents API: the patent record behind an infringement dispute, to pair with the case law that interprets it.
Alternatives such as Google Scholar Case Law Scraper exist, but show minimal adoption (a handful of users and no reviews) and bill a $0.10 start fee on every run. This API is actively maintained, returns structured JSON with full case detail (parties, court, citations, and every cited case), carries public reviews, and is MCP-ready out of the box.
❓ FAQ
How do I find a court code?
Use the common codes table above; any numeric court code shown in Google Scholar's case-law court picker works here. Leave courts empty to search every US state and federal court.
Why did I get fewer results than maxResults?
maxResults is a ceiling, not a guarantee. Tight yearFrom / yearTo bounds or a narrow court filter simply match fewer opinions.
How do I get the full opinion details?
Either pass known IDs in caseIds, or set fetchCaseDetailsForResults: true on a search to auto-fetch the detail for every hit.
What does result_type mean?
Each dataset row is "search_result", "case_detail", or "error". Filter on it to separate the row kinds.
A query came back empty - what should I try?
Widen the year range, drop the court filter, or simplify the query phrase; very specific phrases may match no opinions.
Can I schedule case law searches?
Yes. Any run can be automated on a schedule. Create a saved task with your query, court, and year filters, then attach a schedule from the Actor's Actions, then Schedule menu. Concrete cron strings: 0 7 * * * for daily at 7 AM, 0 */6 * * * for every six hours, 0 9 * * 1 for Mondays. One schedule can trigger many tasks at once, so a full watchlist of legal queries refreshes together. See the Integrations section above for the full Tasks-and-Schedules monitoring recipe.
Should I use an API or a web scraper for case law?
Both, and this Actor is both. An official legal-data API is usually rate limited, quota bound, and often paywalls full opinions, while a plain web scraper returns messy HTML you still have to parse. This Actor gives you the clean, structured result of a purpose-built API: call it yourself or run it no-code, pay per result, no quotas, and get the same JSON whether you want one opinion or a full corpus.
Can I use the Case Law API programmatically?
Yes. The Apify API runs the Actor, schedules it, and fetches datasets, and the apify-client package exists for both Node.js and Python. See the Actor's API tab for ready-made snippets and your endpoint URLs.
Can I use this API through an MCP server?
Yes. Add it as a tool in any MCP client (Claude, Cursor, and others) through the hosted Apify MCP server with the Actor-specific URL https://mcp.apify.com/?tools=actors,docs,johnvc/google-scholar-case-law. In Claude Code (free trial) or Claude Cowork (free trial) your agent can then research US case law in-conversation, with citations and courts. See the Apify MCP docs.
Can I integrate this API with other apps?
Yes. It connects to almost any cloud service through Apify integrations: Make, Zapier, Slack, the n8n community node, and webhooks on ACTOR.RUN.SUCCEEDED for custom actions. See the Integrations section above for the full recipes.
What are AI agent workflows for case law research?
AI agent workflows chain one or more AI agents and tools so a model can complete a multi-step task on its own. For legal research, an agent connected to this API over MCP can search opinions on Google Scholar, read the snippet and publication_info, then follow cited_cases to walk the citation graph, all without a human running each query. That turns a one-shot search into an autonomous research loop.
What is citation analysis?
Citation analysis studies which cases cite which, and how often, to measure influence and trace how a legal doctrine developed. This API supports it directly: each search result carries a cited_by count and link, and every case_detail row lists its cited_cases, so you can build a citation graph from a seed opinion outward. Background: citation analysis.
How else can I research legal and academic sources?
Pair this API with related tools in the same catalog: the Google Scholar API for research papers, author profiles, and academic citations, the Google Scholar Lite API for cheap bulk paper metadata, and the Google Patents API for the patent record behind an infringement dispute. See the Related Tools section above for how each one fits.
Featured Tasks
Ready-to-run examples that show this API solving a specific problem. Each opens its own setup so you can run it on your account in one click.
- Find Ninth Circuit opinions on qualified immunity - Ninth Circuit qualified-immunity cases with citation, date, and snippet.
- Export case law search results to CSV - case law search results as clean rows, export ready for legal review.
- Do legal research in Claude with a case law MCP - US case law search inside Claude chat via MCP, with citations and courts.
- Search US case law with a free API - search US federal and state case law by keyword with a free API.
- Find Supreme Court cases citing Chevron deference - search Supreme Court opinions on Chevron deference.
- 检索美国商业秘密判例(结构化 JSON) - 按关键词检索美国联邦与州法院判例: 案件名、法院、日期、引用与摘要, 结构化 JSON 输出。
- 查找美国专利侵权判例(联邦巡回法院) - 检索联邦巡回上诉法院的专利侵权判例: 判决日期、引用次数与案件链接, 支持按年份筛选。 Last Updated: 2026.07.14

