Justia APIlaw.justia.com ↗
Search and retrieve federal court docket filings from Justia. Access case metadata including parties, judge, court, nature of suit, and filing dates.
What is the Justia API?
The Justia Dockets & Filings API provides 2 endpoints to search and retrieve federal court case records. Use search_cases to query filings by party name with optional filters for court, judge, and lawsuit type, and get_case to pull detailed metadata on a specific docket — including presiding judge, cause of action, plaintiff and defendant names, and filing date.
curl -X GET 'https://api.parse.bot/scraper/e513ad6b-fdf8-4e94-a8d1-cfc69e450449/search_cases?page=1&court=gandce&parties=Smith' \ -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 law-justia-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.
"""Walkthrough: Justia Dockets SDK — bounded, re-runnable; every call capped."""
from parse_apis.law_justia_com_api import JustiaDockets, CaseNotFound
client = JustiaDockets()
# Search for cases by party name in a specific court
for case in client.case_summaries.search(parties="Shin", court="gandce", limit=3):
print(case.title, case.case_number, case.filed_date)
# Drill down: take one result and get full details
hit = client.case_summaries.search(parties="Shin", court="gandce", limit=1).first()
if hit:
try:
full = hit.details()
print(full.title, full.presiding_judge, full.nature_of_suit)
except CaseNotFound as e:
print("case gone:", e.docket_path)
print("exercised: case_summaries.search, case_summaries.details")
Search federal court docket filings by party name. Returns paginated results with case metadata including title, case number, parties, court, and lawsuit type. Results are auto-iterated.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| court | string | Court abbreviation code to filter by (e.g. 'gandce' for Georgia Northern District Court, 'nysdce' for New York Southern District Court). Omit to search all federal courts. |
| judge | string | Judge name to filter by. |
| partiesrequired | string | Party name to search for (plaintiff or defendant name). |
| lawsuit_type | string | Lawsuit type code to filter results (e.g. 'nos-190' for Contract: Other). |
{
"type": "object",
"fields": {
"page": "current page number",
"cases": "array of case summary objects",
"total": "total number of matching cases",
"total_pages": "total number of pages"
},
"sample": {
"data": {
"page": 1,
"cases": [
{
"type": "Labor › Labor: Fair Standards",
"court": "Eleventh Circuit › Georgia › U.S. District Court for the Northern District of Georgia",
"title": "Shin v. C&C Trading Co., Inc. et al",
"defendant": "C&C Trading Co., Inc.",
"plaintiff": "Hyun Ik Shin",
"docket_url": "https://dockets.justia.com/docket/georgia/gandce/1:2026cv01602/357459",
"filed_date": "March 25, 2026",
"case_number": "1:2026cv01602",
"cause_of_action": "29 U.S.C. § 216 (b)"
}
],
"total": 20,
"total_pages": 2
},
"status": "success"
}
}About the Justia API
Searching Federal Court Dockets
The search_cases endpoint accepts a required parties parameter (plaintiff or defendant name) and returns paginated results with case summaries. Each result includes a case title, case number, court, lawsuit type, and party names. Optional filters include court (using abbreviation codes such as gandce for Georgia Northern District or nysdce for New York Southern District), judge, and lawsuit_type (using codes like nos-190 for Contract: Other). The response includes total, total_pages, and the current page, enabling programmatic iteration across large result sets.
Retrieving Case Details
The get_case endpoint takes a docket_path — formatted as state/court/case-identifier/docket-id (e.g. georgia/gandce/1:2011cv03307/178294) — and returns a structured record for that specific filing. Response fields include court, title, plaintiff, defendant, case_number, filed_date, nature_of_suit, cause_of_action, presiding_judge, and a docket_url pointing to the canonical Justia page. The docket_path values can be obtained directly from search_cases results, making the two endpoints composable.
Coverage and Scope
This API covers federal court dockets indexed on Justia Dockets & Filings. Justia indexes a broad range of federal district court filings across the United States. The data is organized by court abbreviation, and filtering by both court and judge simultaneously is supported, making it practical for tracking litigation in specific jurisdictions or before specific judges.
The Justia API is a managed, monitored endpoint for law.justia.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when law.justia.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 law.justia.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?+
- Monitor ongoing litigation involving a specific company by searching its name in the
partiesfield - Filter cases by
lawsuit_typecode to identify contract disputes or other legal categories in a target jurisdiction - Build a litigation tracker for a law firm by querying
judgeandcourtfilters across multiple searches - Enrich business due diligence data with federal lawsuit history retrieved via
get_casedetails - Research a judge's caseload by combining the
judgeandcourtparameters insearch_cases - Pull
nature_of_suitandcause_of_actionfields fromget_casefor legal research classification pipelines - Aggregate
filed_datedata across paginated search results to analyze litigation trends over time
| 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 Justia have an official developer API for docket data?+
What does `get_case` return beyond what `search_cases` shows?+
get_case returns the full detail record for a single docket: nature_of_suit, cause_of_action, presiding_judge, filed_date, and a docket_url, in addition to party names and case number. The search_cases endpoint returns only summary-level fields needed to identify cases — the detail fields require a separate get_case call using the docket_path from search results.Does the API return individual court documents or filings within a case?+
How does pagination work in `search_cases`?+
total, total_pages, and the current page number. Pass the page parameter as an integer to step through results. Results are auto-iterated, so successive page requests return the next batch of case summaries until all pages are consumed.