Skip to main content
Coverage is the set of courts, judges and rulebooks the API holds rules for, and how much it holds for each one. It differs from court to court, so a client should read it from the API instead of assuming it. Counts change as courts are added, so this page gives none. The coverage page on courtrules.app lists today’s counts by court, state and judge, with the date they were counted. 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.
  1. A court is covered when its status in /courts is live. A coming_soon court is mapped and has a roster, but the API holds no rules for it yet.
  2. A judge on a live court is covered when has_rules is true in /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, and meta.court_level_rules reports that.
  3. A rule is one requirement. It carries the court’s own sentence in content.source_text, a plain-English content.summary, a rule type, and source_url, the official address the rule was read from.
Every API key can query every court, and each endpoint answers one coverage question:
  • GET /api/v1/courts lists every court we map, with its status and roster size.
  • GET /api/v1/judges lists a court’s current roster and marks the judges whose own rules we hold.
  • GET /api/v1/rules returns 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-rules searches and pages rules across every court.
  • GET /api/v1/rulebooks lists official rulebooks, such as the California Rules of Court, whose rules you read one by one with their official text.
  • GET /api/v1/holidays lists court holidays and closure dates with their official sources.
To read the rules of a court in three calls, follow Read a court’s rules.

Key terms

Check coverage in code

Two calls answer most coverage questions. The first reads the court, and the second reads its roster.
The court answers with its status and roster size. The roster answers with a meta object that counts the judges.
The responses above are a sample, and the counts change as rosters change, so read them from the response instead of copying them from this page. The sample court is 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’s logic_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 carries source_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: /check and /classify run for the Eastern District of New York only. Every other court returns 422 from 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.judge from /rules, and rules.court still lists the court-wide rules.

Common mistakes

  • Treating live as complete. A live court can have roster entries with no rules of their own. Read has_rules for one judge or meta.with_rules for 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 /courts counts as one row against your daily row limit. Keep the list, or read one court with GET /courts/<district_id>.
  • Running /check for any live court. Only the Eastern District of New York has a compliance profile. Read the rules of other courts with /rules or /extracted-rules.