JudyRecords APIjudyrecords.com ↗
Search and retrieve US court case records from JudyRecords via 3 endpoints. Get case filings, hearings, attorneys, documents, fees, and database stats.
What is the JudyRecords API?
The JudyRecords API exposes 3 endpoints covering US court case data indexed by JudyRecords.com. Use search_cases to query by name, case number, or keyword with paginated results, get_case to pull structured details on a specific case — including filings, hearings, attorneys, documents, and fee records — and get_stats to retrieve the current total count of indexed cases across the database.
curl -X GET 'https://api.parse.bot/scraper/c3e2c409-c658-4fb8-9a0c-cae7d81d3231/search_cases?page=1&query=smith+tennessee' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace judyrecords-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.judyrecords_court_records_api import JudyRecords, CaseSummary, Case, CaseNotFound
client = JudyRecords()
# Search for court cases
for result in client.casesummaries.search(query="smith tennessee", limit=5):
print(result.title, result.case_id, result.url)
# Get full case details from a search result
case = result.details()
print(case.context, case.general_info.title, case.general_info.status)
# Get case directly by ID
full_case = client.cases.get(case_id="daisgqn2a396c")
for filing in full_case.filings:
print(filing.filing_type, filing.filing_date, filing.filing_for)
# Access hearings
for hearing in full_case.hearings:
print(hearing.hearing_type, hearing.hearing_date_time, hearing.judge)
# Get database statistics
stats = client.stats.get()
print(stats.total_cases_tagline, stats.source)
Full-text search across 760M+ US court cases. Initiates a server-side search job, polls for completion, then returns a page of results. Each result includes a case_id usable with get_case for full details. Paginates via integer page number; results per page are fixed by the server (typically 10).
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| queryrequired | string | Search query — names, case numbers, states, or any keywords appearing in court records. |
{
"type": "object",
"fields": {
"query": "string — the search query echoed back",
"results": "array of search result objects, each with case_id, title, url, snippets",
"total_info": "string — human-readable total count and page info",
"current_page": "integer — current page number",
"available_pages": "array of integers — page numbers available for navigation"
},
"sample": {
"data": {
"query": "smith tennessee",
"results": [
{
"url": "https://www.judyrecords.com/record/n923rjuv740d",
"title": "Tennessee Court Record",
"case_id": "n923rjuv740d",
"snippets": [
"taylorsmith(et. al) vs darryl ford (et. al) 63cc1-2021-cv-2379tennesseefarmers"
]
}
],
"total_info": "Page 1 of 614,222 total cases for: smith tennessee",
"current_page": 1,
"available_pages": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
200
]
},
"status": "success"
}
}About the JudyRecords API
Search and Pagination
The search_cases endpoint accepts a query string (name, state, case number, or other keyword) and an optional page integer for pagination. Results include a list of matching cases, each with a case_id, title, url, and snippets for context. The response also surfaces total_info (a human-readable summary of result count), current_page, and available_pages so you can iterate through deeper result sets programmatically.
Case Detail Fields
The get_case endpoint takes a single alphanumeric case_id and returns a structured object with up to eight data sections. general_info carries core identifiers: title, case_number, primary_party, filing_date, and status. Beyond that, the response includes filings (type, parties, filing and void dates), hearings (date, time, judge, result), attorneys (name, law firm, primary flag), documents (type, status, served-on date), fees (assessed amount, receipts, amount due), and additional_parties with roles. A context string identifies the court or jurisdiction. Note that data completeness varies by the originating court system — some cases will return partial fields.
Database Statistics
The get_stats endpoint requires no inputs and returns a total_cases_tagline string reflecting the current count of indexed cases, plus a source URL pointing to JudyRecords' info page. This is useful for monitoring index growth or displaying coverage context in an application.
The JudyRecords API is a managed, monitored endpoint for judyrecords.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when judyrecords.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official judyrecords.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Lookup litigation history for a person or business by name using
search_cases - Pull structured hearing schedules and judge assignments for a known case via
get_case - Retrieve attorney and law firm associations across multiple case records
- Audit fee assessments and outstanding amounts due in civil cases
- Track filing dates and case statuses for a portfolio of legal matters
- Display total indexed case count in a legal research dashboard using
get_stats - Cross-reference case participants using
additional_partiesandattorneysfields
| 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 | 100 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 JudyRecords have an official developer API?+
What does `get_case` return and how complete is the data?+
general_info, filings, hearings, attorneys, documents, fees, additional_parties, and a context string for the jurisdiction. Completeness depends on the originating court — some courts expose full dockets while others provide only basic case metadata. The response will reflect whatever the source court system makes available.Can I filter `search_cases` results by state, case type, or date range?+
query and a page integer — there are no dedicated filter parameters for state, case type, or date range. You can include state names or other qualifiers in the query string to narrow results. You can fork this API on Parse and revise it to add structured filter parameters if your use case requires them.Does the API expose full document text or PDF links for case documents?+
documents array in get_case returns metadata fields — document_type, number, status, status_date, and served_on — but not full document text or direct file download URLs. You can fork this API on Parse and revise it to add a document-retrieval endpoint if your workflow requires actual document content.How is pagination handled in search results?+
search_cases returns a current_page integer and an available_pages array listing all navigable page numbers for the query. Pass the desired page number as the page input to retrieve subsequent result sets. Each page returns the same results array structure with case_id, title, url, and snippets.