> ## Documentation Index
> Fetch the complete documentation index at: https://docs.courtrules.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Document Structure

> What document metadata to provide and what checks it enables

The [`/check`](/api-reference/check) endpoint accepts a `document` object describing the filing. Only `page_count` and `word_count` are required. All other fields are optional. The more you provide, the more checks run.

## Required fields

| Field        | Type    | Description                                         |
| ------------ | ------- | --------------------------------------------------- |
| `page_count` | integer | Total page count of the document                    |
| `word_count` | integer | Total word count (excluding TOC, TOA, certificates) |

These two fields enable: page limit checks, word limit checks, courtesy copy requirements, and word count consistency (if `certificate_word_count` is also provided).

## Optional sections

### `caption`

Enables FRCP 10(a) caption checks.

| Field                      | Type    | Check                    |
| -------------------------- | ------- | ------------------------ |
| `present`                  | boolean | Caption exists           |
| `has_court_name`           | boolean | Court name in caption    |
| `has_case_title`           | boolean | Case title present       |
| `has_docket_number`        | boolean | Docket number present    |
| `has_document_designation` | boolean | Document type designated |

### `signature_block`

Enables FRCP 11(a) signature checks.

| Field                     | Type    | Check                          |
| ------------------------- | ------- | ------------------------------ |
| `present`                 | boolean | Signature block exists         |
| `has_attorney_name`       | boolean | Attorney name included         |
| `has_firm_name`           | boolean | Firm name included             |
| `has_address`             | boolean | Address included               |
| `has_email`               | boolean | Email included                 |
| `has_phone`               | boolean | Phone number included          |
| `is_electronic_signature` | boolean | Electronic (vs. wet) signature |

### `sections`

Enables structural checks: required documents, certificates, motion-specific requirements.

| Field                           | Type    | When checked                             |
| ------------------------------- | ------- | ---------------------------------------- |
| `has_toc`                       | boolean | Documents >= 10 pages                    |
| `has_toa`                       | boolean | Documents >= 10 pages                    |
| `has_certificate_of_compliance` | boolean | Always (attorney filings)                |
| `certificate_word_count`        | number  | Compared to `word_count` for consistency |
| `has_certificate_of_service`    | boolean | Always                                   |
| `has_numbered_paragraphs`       | boolean | Always                                   |
| `has_56_1_statement`            | boolean | Rule 56 motions (movant)                 |
| `has_56_1_counterstatement`     | boolean | Rule 56 motions (opponent)               |
| `has_proposed_amended_pleading` | boolean | Motions to amend                         |
| `has_verbatim_discovery_text`   | boolean | Discovery motions                        |
| `has_conferral_certification`   | boolean | Discovery motions                        |
| `has_notice_of_motion`          | boolean | All motions                              |
| `has_memorandum_of_law`         | boolean | All motions                              |
| `has_supporting_affidavits`     | boolean | All motions                              |
| `has_pro_se_sj_notice`          | boolean | Rule 56 vs. pro se opponent              |

### `format`

Enables district local rule formatting checks (font, margins, line spacing).

| Field                   | Type                                | Rule                  |
| ----------------------- | ----------------------------------- | --------------------- |
| `primary_font_size_pt`  | number                              | Must be >= 12pt       |
| `footnote_font_size_pt` | number                              | Must be >= 10pt       |
| `margin_inches`         | number                              | Must be >= 1.0"       |
| `line_spacing`          | `"single"` \| `"1.5"` \| `"double"` | Must be double-spaced |

### `privacy`

Enables FRCP 5.2(a) privacy redaction checks.

| Field                             | Type    | Violation if true            |
| --------------------------------- | ------- | ---------------------------- |
| `contains_full_ssn`               | boolean | Must redact to last 4 digits |
| `contains_full_dob`               | boolean | Must redact to year only     |
| `contains_minor_full_name`        | boolean | Must use initials only       |
| `contains_full_financial_account` | boolean | Must redact to last 4 digits |

## Omission principle

When an optional section is omitted, the corresponding checks are silently skipped. This lets you start with minimal input (just page and word count) and progressively add detail as your document analysis pipeline matures.

The `meta.checks_skipped` field in the response tells you how many checks were skipped due to missing input.
