> ## 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.

# Rulebooks

> Read the official text of a court rulebook rule by rule, and the filing requirements we read from each rule

A rulebook is an official set of numbered rules that a court system or rule maker publishes as one book, such as the California Rules of Court. The API returns each rule's official text, its status and its place in the book, and the filing requirements we read from it, with the rule that sets each one.

## Three terms

| Term | Meaning | Example |
| - | - | - |
| **Rulebook** | An official set of numbered rules, published as one book. | The California Rules of Court (`california-rules-of-court`) |
| **Rule** | One numbered rule in a rulebook, with its heading, official text and status. | Rule 3.1113, Memorandum |
| **Requirement** | One filing requirement read from a rule's text, in the same structure as the results of [`/extracted-rules`](/api-reference/extracted-rules). | A memorandum may not exceed 15 pages, with the exceptions given |

A rule is the official text. A requirement is what that text asks of a filer. Rule 3.1113 is one rule; its page limits are separate requirements.

## Why teams use rulebooks

* **Open a rule from a citation.** A docketing tool that sees "rule 3.1113" in a motion can show the official text and link to the official page.
* **Cite the rule behind a limit.** Show a filer that a 15-page limit comes from Rule 3.1113(d), next to any limit a judge adds.
* **Search a rulebook by topic.** Find every rule whose number, heading or text mentions a word, such as "memorandum".
* **Keep a stored copy current.** A rule's `revision_id` changes whenever the rule does, so a stored copy can be checked against it.

## How a rulebook relates to courts

Every rulebook has a `scope`:

* `statewide`: applies across one state. The California Rules of Court is statewide. It applies in the state's courts without naming them, so `governed_court_ids` is empty, and a rule's own text says which courts it covers.
* `court`: applies in the courts listed in `governed_court_ids`, such as one court's local rules.
* `national`: applies across the country.

Find rulebooks by place with `jurisdiction` and `scope`. Find a court's own rulebooks with `district_id`, which matches only the courts a rulebook names.

**No layering yet.** The API does not combine a rulebook with a court's rules, a judge's rules or another rulebook. `/rules` and `/extracted-rules?district_id=...` return what they returned before, and they do not include the California Rules of Court. [`/check`](/api-reference/check) does not use rulebooks. To see a judge's rules and the statewide rules together, call both and combine them yourself.

## Read a rulebook in four calls

The examples read Rule 3.1113 of the California Rules of Court. They are shortened where a response is long.

### 1. Find the rulebook

[`GET /api/v1/rulebooks`](/api-reference/rulebooks) lists the rulebooks you can read. Filter by `jurisdiction`, `scope`, `district_id` or words in the name with `q`. Read one rulebook by id with [`GET /api/v1/rulebooks/{rulebook_id}`](/api-reference/get-rulebook).

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://api.courtrules.app/api/v1/rulebooks?jurisdiction=CA&scope=statewide' \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "rulebooks": [
    {
      "id": "california-rules-of-court",
      "name": "California Rules of Court",
      "aliases": ["CRC", "Cal. Rules of Court", "Cal. Rules Ct."],
      "jurisdiction": "CA",
      "scope": "statewide",
      "kind": "court_rules",
      "governed_court_ids": [],
      "issuer": "Judicial Council of California",
      "official_url": "https://courts.ca.gov/forms-rules/rules-court",
      "rule_count": 1488,
      "last_checked_at": "2026-10-19T08:20:21.677476+00:00",
      "site_url": "https://www.courtrules.app/rules/california-rules-of-court"
    }
  ],
  "meta": { "total": 1, "jurisdiction": "CA", "scope": "statewide" }
}
```

`rule_count` counts the rules in force that the official source still lists. `last_checked_at` is when we last read the official source.

### 2. Search its rules

[`GET /api/v1/rulebooks/{rulebook_id}/rules`](/api-reference/rulebook-rules) lists a rulebook's rules in book order, without their text. Search the number, heading and text with `q`, filter with `legal_status` and `has_requirements`, and page with `limit` and `offset`.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://api.courtrules.app/api/v1/rulebooks/california-rules-of-court/rules?q=opening%20memorandum' \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "rules": [
    {
      "number": "3.764",
      "slug": "3.764",
      "citation": "Cal. Rules of Court, rule 3.764",
      "revision_id": "87a3abf3-5690-421d-8c21-e64305fefbf3",
      "heading": "Motion to certify or decertify a class or amend or modify an order certifying a class",
      "outline": [
        { "label": "Title Three", "heading": "Civil Rules" },
        { "label": "Division 7", "heading": "Civil Case Management" },
        { "label": "Chapter 6", "heading": "Management of Class Actions" }
      ],
      "legal_status": "in_force",
      "effective_from": "2026-01-01",
      "observed_at": "2026-10-19T04:31:34.421+00:00",
      "removed": false,
      "requirement_count": 16,
      "extraction_status": "succeeded",
      "site_url": "https://www.courtrules.app/rules/california-rules-of-court/3.764"
    },
    {
      "number": "3.1113",
      "slug": "3.1113",
      "citation": "Cal. Rules of Court, rule 3.1113",
      "revision_id": "50dd0291-ae07-48d0-b490-23555244dcf1",
      "heading": "Memorandum",
      "outline": [
        { "label": "Title Three", "heading": "Civil Rules" },
        { "label": "Division 11", "heading": "Law and Motion" },
        { "label": "Chapter 2", "heading": "Format of Motion Papers" }
      ],
      "legal_status": "in_force",
      "effective_from": "2017-01-01",
      "observed_at": "2026-10-19T04:34:37.532+00:00",
      "removed": false,
      "requirement_count": 27,
      "extraction_status": "succeeded",
      "site_url": "https://www.courtrules.app/rules/california-rules-of-court/3.1113"
    }
  ],
  "meta": {
    "total": 2,
    "returned": 2,
    "limit": 100,
    "offset": 0,
    "next_offset": null,
    "rulebook_id": "california-rules-of-court",
    "q": "opening memorandum"
  }
}
```

### 3. Read one rule

[`GET /api/v1/rulebooks/{rulebook_id}/rules/{number}`](/api-reference/get-rulebook-rule) returns one rule with its official text. The number is the rulebook's own, URL-encoded, and must match exactly.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://api.courtrules.app/api/v1/rulebooks/california-rules-of-court/rules/3.1113' \
  -H "Authorization: Bearer YOUR_API_KEY"
```

The real response lists subdivisions (a) through (m). The example keeps (d), the page limits, and the notes printed with the rule.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "number": "3.1113",
  "slug": "3.1113",
  "citation": "Cal. Rules of Court, rule 3.1113",
  "revision_id": "50dd0291-ae07-48d0-b490-23555244dcf1",
  "heading": "Memorandum",
  "outline": [
    { "label": "Title Three", "heading": "Civil Rules" },
    { "label": "Division 11", "heading": "Law and Motion" },
    { "label": "Chapter 2", "heading": "Format of Motion Papers" }
  ],
  "legal_status": "in_force",
  "effective_from": "2017-01-01",
  "observed_at": "2026-10-19T04:34:37.532+00:00",
  "removed": false,
  "requirement_count": 27,
  "extraction_status": "succeeded",
  "site_url": "https://www.courtrules.app/rules/california-rules-of-court/3.1113",
  "current": {
    "revision_id": "50dd0291-ae07-48d0-b490-23555244dcf1",
    "heading": "Memorandum",
    "blocks": [
      {
        "type": "item",
        "label": "(d)",
        "heading": "Length of memorandum",
        "children": [
          {
            "type": "paragraph",
            "text": "Except in a summary judgment or summary adjudication motion, no opening or responding memorandum may exceed 15 pages. In a summary judgment or summary adjudication motion, no opening or responding memorandum may exceed 20 pages. No reply or closing memorandum may exceed 10 pages. The page limit does not include the caption page, the notice of motion and motion, exhibits, declarations, attachments, the table of contents, the table of authorities, or the proof of service."
          },
          {
            "type": "note",
            "role": "history",
            "blocks": [
              {
                "type": "paragraph",
                "text": "(Subd (d) amended effective January 1, 2017; adopted as part of a longer subd (d); previously amended effective July 1, 1984, January 1, 1992, July 1, 1997, and January 1, 2004.)"
              }
            ]
          }
        ]
      },
      {
        "type": "note",
        "role": "comment",
        "title": "Advisory Committee Comment",
        "blocks": [
          { "type": "paragraph", "text": "See also rule 1.200 concerning the format of citations." }
        ]
      }
    ],
    "plain_text": "(d) Length of memorandum\nExcept in a summary judgment or summary adjudication motion, no opening or responding memorandum may exceed 15 pages. In a summary judgment or summary adjudication motion, no opening or responding memorandum may exceed 20 pages. No reply or closing memorandum may exceed 10 pages. The page limit does not include the caption page, the notice of motion and motion, exhibits, declarations, attachments, the table of contents, the table of authorities, or the proof of service.",
    "source_url": "https://courts.ca.gov/cms/rules/index/three/rule3_1113",
    "captured_at": "2026-10-19T04:34:37.532+00:00"
  }
}
```

### 4. Read the rule's requirements

[`GET /api/v1/extracted-rules`](/api-reference/extracted-rules) with `rulebook_id` and `rule_number` returns the requirements read from that rule. Each result names the rulebook rule it came from. The example asks for the page limits, one per page.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://api.courtrules.app/api/v1/extracted-rules?rulebook_id=california-rules-of-court&rule_number=3.1113&logic_type=PageWordLimitRule&limit=1' \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "rules": [
    {
      "rule_id": "c3a7f1d4-52e8-4b69-a0d1-8e4f6b9c2d57",
      "logic_type": "PageWordLimitRule",
      "workflow_phase": "MOTION_PRACTICE",
      "content": {
        "source_text": "Except in a summary judgment or summary adjudication motion, no opening or responding memorandum may exceed 15 pages.",
        "summary": "An opening or responding memorandum may not exceed 15 pages, except in a summary judgment or summary adjudication motion.",
        "document_type": "memorandum",
        "case_type_applicability": ["civil"],
        "rule_tags": ["page_limit", "memorandum"],
        "workflow_phase": "MOTION_PRACTICE",
        "visual_severity": "CRITICAL",
        "structured_data": {
          "logic_type": "PageWordLimitRule",
          "document_type": "memorandum",
          "role_limits": [{ "role": "all", "limit_type": "pages", "limit_value": 15 }]
        },
        "citation_source": { "section": "Rule 3.1113(d)" }
      },
      "rulebook_rule": {
        "rulebook_id": "california-rules-of-court",
        "number": "3.1113",
        "citation": "Cal. Rules of Court, rule 3.1113",
        "revision_id": "50dd0291-ae07-48d0-b490-23555244dcf1",
        "site_url": "https://www.courtrules.app/rules/california-rules-of-court/3.1113"
      }
    }
  ],
  "meta": {
    "total": 3,
    "returned": 1,
    "limit": 1,
    "offset": 0,
    "next_offset": 1,
    "rulebook_id": "california-rules-of-court",
    "rule_number": "3.1113",
    "logic_type": "PageWordLimitRule"
  }
}
```

Rule 3.1113(d) sets three page limits: the opening or responding memorandum (15 pages), the same memorandum in a summary judgment or summary adjudication motion (20 pages), and the reply (10 pages). Follow `meta.next_offset` for the rest.

## Behavior details

* **Numbers match exactly.** A rule number is the rulebook's own, without the word Rule, and matches as printed: `3.1113`, `4:46-2`, `21a`. `21a` and `21A` are different rules, and `3.111` does not find `3.1113`. URL-encode numbers that hold spaces or slashes. A number with a space at either end, two spaces in a row, a control character, or more than 40 characters is a 400.
* **Two forms of the text.** `blocks` keeps the structure: items with their labels and headings, paragraphs, tables, and notes. `plain_text` is the operative text as lines, in order, with item labels.
* **Notes are not rule text.** History lines and committee comments arrive in `blocks` as `note` blocks. They are left out of `plain_text`, left out of search, and no requirement is read from them.
* **Status.** `legal_status` is `in_force`, `repealed` or `reserved`. Repealed and reserved rules usually carry only a history note, so their `plain_text` is empty and their `extraction_status` is `skipped`.
* **Removed rules.** `removed: true` means the official source no longer lists the rule. It keeps the heading, status and text it had when it was last listed, has no requirements, and is not in `rule_count`.
* **Requirements and `extraction_status`.** `requirement_count` is the number of results `/extracted-rules` returns for the rule. `extraction_status` says whether the count is final: `succeeded` means the text was read (0 means it states none of the requirements that are read, as with a definition or a rule about mediators or court staff; the text is still in the rule), `pending` means it has not been read yet, `failed` means reading did not work, and `skipped` means there is nothing to read.
* **One version at a time.** A rule's `revision_id` names the version of the rule you are looking at. The requirements of a rule carry the same id in `rulebook_rule.revision_id`. If the two differ, the rule changed between your calls: read it again.
* **Order.** Rules come in book order. Requirements come ordered by rule number as text, then by id. The order is stable between calls but is not book order, so use the rule list for book order.
* **Citations.** Rule text is not paginated, so `citation_source` on a rulebook requirement never carries a page number. Cite with `rulebook_rule.citation` and link `rulebook_rule.site_url`.

## Errors and limits

| Status | When |
| - | - |
| `400` | A bad parameter, such as `limit=0`, `scope=local`, a rulebook id with capital letters, or a rule number with a space at an end. |
| `400` | On `/extracted-rules`: `rule_number` without `rulebook_id`, or `rulebook_id` with `district_id`, `judge_slug` or `include_court_rules`. |
| `404` | A rulebook id that is not in the list, a rule number the rulebook does not have, or a `district_id` we do not map. |
| `200` | No match: an empty list. A rule with no requirements returns an empty list from `/extracted-rules`, not a 404. |

Rulebook calls count against your daily rows like other calls: a list counts one row per item returned, and one rulebook or one rule counts as one row, however long its text. See [Rate limits](/api-reference/rate-limits.md).

## Common mistakes

* **Sending `Rule 3.1113` or `rule-3.1113`.** Send the number alone: `3.1113`.
* **Reading `requirement_count: 0` as "no requirements".** Check `extraction_status` first. `pending` and `failed` also show 0.
* **Looking for the California Rules of Court by court.** Statewide rulebooks name no courts. Use `jurisdiction=CA&scope=statewide`.
* **Expecting a judge's rules to include the rulebook.** Rulebooks are not merged into `/rules` or into `/extracted-rules?district_id=...`.
* **Treating notes as the rule.** Read `plain_text`, or skip `note` blocks in `blocks`.
* **Sorting requirements by position.** `/extracted-rules` does not return book order. Look up each rule's place with the rule list.

## Related

* [List rulebooks](/api-reference/rulebooks.md)
* [Get a rulebook](/api-reference/get-rulebook.md)
* [List the rules of a rulebook](/api-reference/rulebook-rules.md)
* [Get a rule](/api-reference/get-rulebook-rule.md)
* [Search extracted rules](/api-reference/extracted-rules.md)
* [Coverage](/concepts/coverage-levels.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.