Skip to main content

Court Rules Linter API

In May 2021, a firm filed a summary judgment motion in EDNY. The court killed it — not on the merits. The attorney filed papers before briefing was complete, violating page 3 of a 6-page standing order PDF. Same courthouse, different judge: one requires a tabbed binder with double-sided printing. The other doesn’t want paper at all. But your brief is 6 pages over their limit. The Court Rules Linter API catches that. Deterministically. Every time.

What it does

Given a document’s metadata (page count, word count, structural elements) and filing context (which judge, what type of motion), the API checks compliance against three layers of rules:
  1. Federal Rules of Civil Procedure (FRCP) — 15 rules covering signatures, captions, privacy redactions, motion requirements
  2. Local Rules — District-wide rules covering formatting, page/word limits, timing, and district-specific procedures
  3. Standing Orders — Judge-specific rules for page limits, courtesy copies, pre-motion conferences, filing gates, and bundling requirements
The same 31-page brief gets completely different results depending on which judge you’re filing with. Judge Amon has no page limit issue but requires courtesy copies in a tabbed binder. Judge Block rejects it outright — 31 pages exceeds his 25-page limit. See the Same Document, Different Judge guide for the full walkthrough.

Key characteristics

  • Deterministic — No LLM at check time. Same input always produces the same output. Sub-millisecond response times.
  • Graduated input — Only page_count and word_count are required. Provide more document structure fields to get more checks.
  • Three rule layers — FRCP (national), Local Rules (district), Standing Orders (judge-specific). Every result cites its source.
  • Authenticated — All endpoints require a Bearer token. See Authentication.

Current coverage

MetricCount
Federal districts mapped94
Districts with judge data20
Live districts (full API access)1 (EDNY)
EDNY judges47
Full standing order profiles3 (Amon, Block, Brown)
Curated rules38 (15 FRCP + 23 EDNY Local Rules)

Example

curl -X POST https://api.courtrules.app/api/v1/check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "judge_slug": "gary-r-brown",
    "district_id": "edny",
    "document_scope": "brief_support",
    "motion_type": "Rule_56",
    "document": {
      "page_count": 22,
      "word_count": 7200
    }
  }'
{
  "summary": {
    "status": "NON_COMPLIANT",
    "failures": 1,
    "warnings": 0,
    "passes": 1,
    "action_items": 3
  },
  "results": [
    {
      "severity": "CRITICAL",
      "category": "PAGE_LIMIT",
      "message": "22 pages exceeds 20-page limit",
      "source": "Brown SO §2.B",
      "status": "FAIL"
    },
    {
      "severity": "INFO",
      "category": "WORD_LIMIT",
      "message": "7,200 words within 8,750-word limit",
      "source": "EDNY LR 7.1(c)",
      "status": "PASS"
    }
  ]
}