Skip to main content
This is the core problem Court Rules solves. Two judges in the same courthouse, same district, same floor, but radically different requirements for the exact same filing.

The scenario

You have a memorandum of law in support of a motion for summary judgment. The PDF is 31 pages total, but after stripping front matter (cover page, table of contents, table of authorities) and back matter (certificate of service), the body is 25 pages:
  • Body page count: 25 (what courts count for limit enforcement)
  • Word count: 7,200
  • Document type: brief_support
  • Motion type: Rule_56
  • District: EDNY
When you use /classify to analyze a PDF, the returned page_count is body pages, not total PDF pages. Front matter and back matter are automatically excluded. The page_count_analysis field in the response shows the full breakdown. When calling /check manually, use body page count, not the raw PDF page count.
Let’s check this document against two EDNY judges.

Judge Amon: REVIEW (action items, no failures)

curl -X POST https://api.courtrules.app/api/v1/check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "judge_slug": "carol-bagley-amon",
    "district_id": "edny",
    "document_scope": "brief_support",
    "motion_type": "Rule_56",
    "is_pro_se": false,
    "pmc_completed": true,
    "opposing_party_pro_se": false,
    "filing_role": "movant",
    "document": {
      "page_count": 25,
      "word_count": 7200
    }
  }'
Result: REVIEW: within page and word limits, but action items to handle.
{
  "summary": {
    "status": "REVIEW",
    "failures": 0,
    "warnings": 0,
    "passes": 2,
    "action_items": 3
  },
  "results": [
    {
      "severity": "INFO",
      "category": "PAGE_LIMIT",
      "message": "25 pages within 25-page limit",
      "source": "EDNY LR 7.1(c)",
      "status": "PASS"
    },
    {
      "severity": "INFO",
      "category": "WORD_LIMIT",
      "message": "7,200 words within 8,750-word limit",
      "source": "EDNY LR 7.1(c)",
      "status": "PASS"
    },
    {
      "severity": "INFO",
      "category": "COURTESY_COPY",
      "message": "Courtesy copy required: tabbed binder, double-sided",
      "source": "Amon SO",
      "status": "ACTION_REQUIRED"
    },
    {
      "severity": "INFO",
      "category": "FILING_GATE",
      "message": "Must wait for full briefing before filing",
      "source": "Amon SO",
      "status": "ACTION_REQUIRED"
    },
    {
      "severity": "INFO",
      "category": "PMC",
      "message": "Pre-motion conference completed",
      "source": "Amon SO",
      "status": "PASS"
    }
  ]
}
Judge Amon applies the EDNY district default of 25 pages for support briefs (she imposes no stricter judge-specific limit). The 25 body pages are within that limit. But she requires:
  • Courtesy copies in a tabbed binder, double-sided
  • Motions must be fully briefed before filing
  • A pre-motion conference (which we indicated was completed)

Judge Brown: NON_COMPLIANT (hard failure)

Same document. Same district. Different judge.
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",
    "is_pro_se": false,
    "pmc_completed": true,
    "opposing_party_pro_se": false,
    "filing_role": "movant",
    "document": {
      "page_count": 25,
      "word_count": 7200
    }
  }'
Result: NON_COMPLIANT: the same document fails.
{
  "summary": {
    "status": "NON_COMPLIANT",
    "failures": 1,
    "warnings": 0,
    "passes": 1,
    "action_items": 2
  },
  "results": [
    {
      "severity": "CRITICAL",
      "category": "PAGE_LIMIT",
      "message": "25 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"
    },
    {
      "severity": "INFO",
      "category": "COURTESY_COPY",
      "message": "Courtesy copy always required",
      "source": "Brown SO §1",
      "status": "ACTION_REQUIRED"
    },
    {
      "severity": "INFO",
      "category": "FILING_GATE",
      "message": "Must wait for full briefing before filing",
      "source": "Brown SO §3.B",
      "status": "ACTION_REQUIRED"
    }
  ]
}
Judge Brown imposes a 20-page limit on support briefs, 5 pages below the EDNY default. Your 25-page memo is 5 pages over. The court will reject it, not on the merits, but on formatting.

The difference

CheckJudge AmonJudge Brown
Page limit25pp (district default): PASS20pp (standing order): FAIL
Courtesy copiesTabbed binder, double-sidedAlways required
PMCRequired (all parties)Required
Filing gateMust wait for full briefingMust wait for full briefing
Same document. Same courthouse. Opposite outcomes. Amon’s limit is the EDNY default (25 pages). Brown’s standing order imposes a stricter cap.

Why this happens: three rule layers

Federal court compliance is governed by three layers of authority, each of which can impose different requirements:
  1. FRCP (Federal Rules of Civil Procedure): National baseline. Covers captions, signatures, privacy redactions, motion content requirements. Same for every federal judge in every district. 15 rules.
  2. Local Rules: District-wide. Formatting (font, margins, spacing), word limits, timing, and required documents. Every judge in the district shares these.
  3. Standing Orders: Judge-specific. Each judge publishes a PDF with their personal requirements. This is where page limits, courtesy copy policies, pre-motion conference rules, and filing gates live. This is where the divergence happens.
The API checks all three layers simultaneously and tells you exactly which rule, from which layer, applies to your specific filing.

Try it yourself

Pick any two full-coverage judges (Amon, Block, Brown) and run the same document against both. The differences are real, sourced from actual standing order PDFs, and verifiable.
# Check available judges
curl 'https://api.courtrules.app/api/v1/judges?district_id=edny' \
  -H "Authorization: Bearer YOUR_API_KEY"

# See the rules for each judge
curl 'https://api.courtrules.app/api/v1/rules?judge_slug=carol-bagley-amon&district_id=edny' \
  -H "Authorization: Bearer YOUR_API_KEY"

curl 'https://api.courtrules.app/api/v1/rules?judge_slug=gary-r-brown&district_id=edny' \
  -H "Authorization: Bearer YOUR_API_KEY"