Endpoints
List Courts
Returns every court we map, with coverage status
GET
/
api
/
v1
/
courts
curl 'https://api.courtrules.app/api/v1/courts' \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
resp = requests.get(
"https://api.courtrules.app/api/v1/courts",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
live = [c for c in resp.json()["courts"] if c["status"] == "live"]
const resp = await fetch("https://api.courtrules.app/api/v1/courts", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { courts } = await resp.json();
const live = courts.filter((c) => c.status === "live");
{
"courts": [
{
"district_id": "ca-los-angeles-superior",
"name": "Superior Court of California, County of Los Angeles",
"circuit": null,
"state": "California",
"status": "live",
"judges_mapped": 116
},
{
"district_id": "edny",
"name": "Eastern District of New York",
"circuit": "2nd Circuit",
"state": "New York",
"status": "live",
"judges_mapped": 47,
"judges_profiled": 47
},
{
"district_id": "dc-superior",
"name": "Superior Court of the District of Columbia",
"circuit": null,
"state": "District of Columbia",
"status": "coming_soon",
"judges_mapped": 11
}
],
"meta": {
"total_districts": 1052,
"districts_with_data": 51,
"total_judges_mapped": 3232
}
}
Returns every court we map: federal district courts and state trial courts, with circuit, state, coverage status, and roster size. The full list (about 1,050 courts) comes back in one response.
Courts with
Compliance checks (
status: live have rules you can read with /rules and /extracted-rules. Any valid API key can query any court.
curl 'https://api.courtrules.app/api/v1/courts' \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
resp = requests.get(
"https://api.courtrules.app/api/v1/courts",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
live = [c for c in resp.json()["courts"] if c["status"] == "live"]
const resp = await fetch("https://api.courtrules.app/api/v1/courts", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { courts } = await resp.json();
const live = courts.filter((c) => c.status === "live");
{
"courts": [
{
"district_id": "ca-los-angeles-superior",
"name": "Superior Court of California, County of Los Angeles",
"circuit": null,
"state": "California",
"status": "live",
"judges_mapped": 116
},
{
"district_id": "edny",
"name": "Eastern District of New York",
"circuit": "2nd Circuit",
"state": "New York",
"status": "live",
"judges_mapped": 47,
"judges_profiled": 47
},
{
"district_id": "dc-superior",
"name": "Superior Court of the District of Columbia",
"circuit": null,
"state": "District of Columbia",
"status": "coming_soon",
"judges_mapped": 11
}
],
"meta": {
"total_districts": 1052,
"districts_with_data": 51,
"total_judges_mapped": 3232
}
}
Response fields
array
Array of court objects
Show Court object
Show Court object
string
Unique court identifier. Federal district courts use short codes (
edny, sdny, cdca). State courts start with the state’s two-letter code (ca-los-angeles-superior, il-cook-circuit).string
Full court name
string | null
Federal circuit (e.g. “2nd Circuit”).
null for state courts, which sit outside the federal circuits.string | null
State or territory.
null for courts not tied to one state, such as a federal court of appeals.string
live or coming_soon (see below)integer
Number of current judges on the court’s roster. In some state courts the roster lists departments or courtrooms rather than individual judges.
object
Status field
| Status | Meaning |
|---|---|
live | Rules are available. /judges, /rules, and /extracted-rules return data. |
coming_soon | The court is mapped, but we hold no rules for it yet. |
/check and /classify) need a compliance profile, which exists for edny today. Other live courts return 422 from those two endpoints.⌘I
curl 'https://api.courtrules.app/api/v1/courts' \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
resp = requests.get(
"https://api.courtrules.app/api/v1/courts",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
live = [c for c in resp.json()["courts"] if c["status"] == "live"]
const resp = await fetch("https://api.courtrules.app/api/v1/courts", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { courts } = await resp.json();
const live = courts.filter((c) => c.status === "live");
{
"courts": [
{
"district_id": "ca-los-angeles-superior",
"name": "Superior Court of California, County of Los Angeles",
"circuit": null,
"state": "California",
"status": "live",
"judges_mapped": 116
},
{
"district_id": "edny",
"name": "Eastern District of New York",
"circuit": "2nd Circuit",
"state": "New York",
"status": "live",
"judges_mapped": 47,
"judges_profiled": 47
},
{
"district_id": "dc-superior",
"name": "Superior Court of the District of Columbia",
"circuit": null,
"state": "District of Columbia",
"status": "coming_soon",
"judges_mapped": 11
}
],
"meta": {
"total_districts": 1052,
"districts_with_data": 51,
"total_judges_mapped": 3232
}
}