scholar.google.com APIscholar.google.com ↗
Search and retrieve U.S. case law from Google Scholar. Filter by court type, date range, and keyword. Get full opinion text, citations, and case metadata.
curl -X GET 'https://api.parse.bot/scraper/0121d112-4c66-4336-9640-bded6b74faad/search_cases?page=2&query=fourth+amendment+search+and+seizure&year_from=2015' \ -H 'X-API-Key: $PARSE_API_KEY'
Search Google Scholar case law by subject matter keywords. Returns case listings with title, citation, court, year, snippet, and cited-by count. Results are paginated with 10 cases per page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based) |
| court | string | Court filter: 'all' for all courts, 'federal' for federal courts only |
| queryrequired | string | Search query for case law (e.g., 'fourth amendment search and seizure', 'patent infringement') |
| year_to | string | Filter cases up to this year (e.g., '2024'). Omitting returns cases up to present. |
| year_from | string | Filter cases from this year onward (e.g., '2020'). Omitting returns cases from all years. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"court": "string, court filter applied",
"query": "string, the search query used",
"results": "array of case objects with title, url, case_id, citation, court, year, snippet, cited_by",
"year_to": "string or null, end year filter",
"year_from": "string or null, start year filter",
"result_count": "integer, number of results on this page",
"has_next_page": "boolean, whether more results are available"
},
"sample": {
"data": {
"page": 1,
"court": "all",
"query": "fourth amendment search and seizure",
"results": [
{
"url": "https://scholar.google.com/scholar_case?case=9210492700696416594&q=fourth+amendment+search+and+seizure&hl=en&as_sdt=2006",
"year": "1967",
"court": "Supreme Court",
"title": "Katz v. United States",
"case_id": "9210492700696416594",
"snippet": "...does not justify construing the search and seizure...",
"citation": "389 US 347, 88 S. Ct. 507, 19 L. Ed. 2d 576",
"cited_by": 33768
}
],
"year_to": null,
"year_from": null,
"result_count": 10,
"has_next_page": true
},
"status": "success"
}
}About the scholar.google.com API
This API exposes 2 endpoints for searching and retrieving legal case law from Google Scholar. Use search_cases to find cases by keyword across all courts or federal courts only, returning fields like citation, court, year, snippet, and cited-by count per result. Use get_case_details to pull the full opinion text (up to 10,000 characters), argued and decided dates, and legal citation for any specific case by its ID.
Search Case Law by Keyword
The search_cases endpoint accepts a query string and returns paginated results — 10 cases per page — with a has_next_page flag to walk through additional pages using the page parameter (1-based). Each result object includes title, citation, court, year, snippet, url, case_id, and cited_by count. You can narrow results using year_from and year_to as four-digit year strings, and the court parameter accepts either 'all' or 'federal' to restrict results to federal court decisions.
Retrieve Full Case Opinions
The get_case_details endpoint takes a case_id — the numeric string returned in results[*].case_id from a search — and returns the case's full metadata alongside its opinion text. The opinion_text field contains the first 10,000 characters of the opinion, and opinion_length reports the total character count of the complete text. Additional fields include title, citation, court, dates (covering argued and decided dates), and the canonical url on Google Scholar.
Filtering and Pagination
Date range filtering via year_from and year_to is optional on both ends — omitting year_from returns results from all historical years, and omitting year_to returns results through the present. The result_count field on each search response tells you how many cases were returned on that page, and has_next_page signals whether incrementing page will yield more results. Court filtering is binary: all courts or federal courts only — there is no filtering by specific named courts within the search endpoint.
- Build a legal research tool that surfaces relevant precedents using
search_caseswith keyword queries and date range filters - Aggregate cited-by counts from search results to identify the most-referenced cases on a given legal topic
- Pull full opinion text via
get_case_detailsto feed into an LLM for summarization or issue spotting - Compare court rulings across different time periods by iterating
year_fromandyear_toacross decades - Construct a case citation graph by collecting
case_idandcitationfields from search result sets - Filter search results to federal courts only using the
courtparameter to narrow constitutional law research - Monitor new case law on a specific topic by querying
search_caseswith a recentyear_fromon a recurring schedule
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Google Scholar have an official developer API for case law?+
What does `get_case_details` return for opinion text, and is the full text available?+
opinion_text field returns the first 10,000 characters of the opinion. The opinion_length field tells you the total character length of the full opinion, so you can see when text has been truncated. There is no pagination within a single case opinion — only the first 10,000 characters are returned.Can I filter search results by a specific named court, such as the Ninth Circuit or the Southern District of New York?+
court parameter on search_cases only supports 'all' or 'federal' as values. You can fork this API on Parse and revise it to add filtering by specific named courts if that granularity is required.Does the search endpoint cover law review articles and patents in addition to case law?+
How fresh are the search results — does the API reflect recently decided cases?+
year_from set to the current year can help scope results to recent decisions, though indexing lag on the source means brand-new opinions may not appear immediately.