GET /api/v1/courts returns totals in its meta object. The coverage page counts a court only when it has at least one current rule and leaves out listings that redirect to another court, so its totals can differ from the API’s.
Why teams read coverage
- Before building: find out whether the courts your customers file in are covered, and how deeply.
- In the product: tell a filer when a judge has no rules of their own, so an empty list is not read as “no requirements”.
- In the interface: show the court’s own sentence and a link to its document beside each requirement.
How coverage works
Coverage has three levels, and each level has a field that says where it stands.- A court is covered when its
statusin/courtsislive. Acoming_sooncourt is mapped and has a roster, but the API holds no rules for it yet. - A judge on a live court is covered when
has_rulesistruein/judges, which means the API holds the judge’s own standing orders, individual practices or courtroom rules. A judge without rules of their own still has the court-wide rules whenever the court has any, andmeta.court_level_rulesreports that. - A rule is one requirement. It carries the court’s own sentence in
content.source_text, a plain-Englishcontent.summary, a rule type, andsource_url, the official address the rule was read from.
GET /api/v1/courtslists every court we map, with its status and roster size.GET /api/v1/judgeslists a court’s current roster and marks the judges whose own rules we hold.GET /api/v1/rulesreturns a judge’s rules. For courts without a compliance profile, that is the court-wide rules plus the judge’s own rules, each with its quoted source text.GET /api/v1/extracted-rulessearches and pages rules across every court.GET /api/v1/rulebookslists official rulebooks, such as the California Rules of Court, whose rules you read one by one with their official text.GET /api/v1/holidayslists court holidays and closure dates with their official sources.
Key terms
Check coverage in code
Two calls answer most coverage questions. The first reads the court, and the second reads its roster.meta object that counts the judges.
live. Its with_rules is lower than its total, and a roster entry without rules of its own receives the court-wide rules, which exist when court_level_rules is true. The second response is shortened to its meta object.
Rule types
A rule’slogic_type names the kind of requirement it states, and the fields in its content.structured_data depend on that type. The workflow_phase of a rule names the stage of a case it applies to, which is one of CASE_INITIATION, FILING, MOTION_PRACTICE, TRIAL_PREP or POST_JUDGMENT.
Pass a type to
/extracted-rules as logic_type to read only that kind of rule.
Freshness
Courts rarely change their rules more than a few times a year, so every source is read again at least once a quarter. Court holidays are updated monthly. Each rule carriessource_url, the official address it was read from, so you can open the court’s own document and confirm the wording. The cadence section of the coverage page lists each kind of source.
To follow new court documents as we find them, subscribe to the Atom feed at courtrules.app/changes.xml. Each entry names the court and links to the new copy and the copy it replaced, and each court’s entries are also on its changes page at courtrules.app/courts/<district_id>/changes. A new version does not always change a rule, so compare the two copies.
Rule layers
For courts with compliance profiles (the Eastern District of New York today), every judge is checked against three rule layers: FRCP (15 national rules), Local Rules (district-specific rules), and Standing Orders (judge-specific rules extracted from each judge’s chambers standing order). Each layer adds to the one above it and can override it. FRCP is the national baseline, Local Rules add district-specific requirements, and Standing Orders are the most specific. Standing orders are also the hardest to find and track.FRCP (applies to every judge)
15 rules covering captions, signatures, privacy redactions, motion content, discovery conferral, and summary judgment requirements. They are national rules, identical regardless of judge or district.Local Rules (applies to every judge in the district)
District-specific local rules covering formatting (font, margins, spacing), word limits, filing timing, required documents, and letter motions. The number of local rules varies by district.Standing Orders (judge-specific)
Judge-specific rules extracted from individual chambers standing orders cover:- Page limits: judge-specific page limits that may differ from district word limits
- Courtesy copies: whether required, format, and timing
- Pre-motion conferences: whether required before filing, letter format, exemptions
- Filing gates: whether all papers must be fully briefed before docketing
- Bundling: whether motion, opposition, and reply must be filed together
- Briefing schedules: whether changes require court approval
How the layers appear in the API
GET /api/v1/rules returns all three layers for a judge in a court with a compliance profile, including the judge’s standing order rules. For every other court, it returns the court-wide rules and the judge’s own rules.
POST /api/v1/check checks a document against all three layers: page and word limits, formatting, structural requirements, privacy redactions, PMC requirements, filing gates, bundling, and courtesy copies. It returns 422 for courts without a compliance profile.
Official rulebooks
Rules from courts and judges are one kind of coverage. Rulebooks are another: the official, numbered rules a court system publishes as one book, such as the California Rules of Court. The API returns each rule with its official text and the filing requirements we read from it. See Rulebooks. Rulebooks sit beside the three layers above, not inside them. A statewide rulebook applies across its state, but the API does not yet merge it into a judge’s rules or a court’s rules./rules and /extracted-rules?district_id=... answer as they did before and do not include the California Rules of Court, and /check does not use rulebooks. To see a judge’s rules and the statewide rules together, read both and combine them yourself.
Limits
- Compliance checks:
/checkand/classifyrun for the Eastern District of New York only. Every other court returns422from them, and the error points to that court’s rules. - No merged answer: the API returns the rules each source states. It does not resolve conflicts between rules, and it does not compute the final rule set for a filing.
- Empty results: an empty list means the API holds no matching rule. It does not mean the court has no such requirement.
- Departed judges: a judge who has left the roster returns an empty
rules.judgefrom/rules, andrules.courtstill lists the court-wide rules.
Common mistakes
- Treating
liveas complete. A live court can have roster entries with no rules of their own. Readhas_rulesfor one judge ormeta.with_rulesfor the court. - Counting people with
judges_mapped. In some state courts the roster lists departments or courtrooms, so the number is not a head count. - Listing every court for every request. Each court in
GET /courtscounts as one row against your daily row limit. Keep the list, or read one court withGET /courts/<district_id>. - Running
/checkfor any live court. Only the Eastern District of New York has a compliance profile. Read the rules of other courts with/rulesor/extracted-rules.