Skip to main content
What this gets you: a table of contents for any code or title - render a browsable tree of a law in your product, the way a person would flip through it, instead of only ever surfacing single sections from search. Search finds the section that answers a question, but it cannot enumerate a code. When you need the structure, titles then chapters then sections, in the order a human reads them, use GET /us/statutes/divisions. Each call returns the immediate children of wherever you are, so you can render a tree, build a table of contents, or crawl a whole title without paging through search. Endpoint used: GET /us/statutes/divisions.
Browse supports USC, CFR, STATE, and REGULATION, the corpora with a clean drill-down tree. Constitutions, court rules, executive actions, the Federal Register, and agency guidance are flatter or heterogeneous; reach those with POST /us/statutes/search (see the Quickstart).

How drilling works

Pass the deepest level you already know, and the response returns the level directly below it. Interior nodes carry a sectionCount and isLeaf: false; drill into one by passing its identifier back as the matching filter (chapter, part, or code). Leaf nodes are sections with isLeaf: true and an actId you pass straight to /us/statutes/section/{actId}. Every list comes back in statutory (natural) order: 9 before 10, 240.9 before 240.10.

One level

A trimmed response:

Walk a whole title

Drill from a title to its chapters, then each chapter to its sections. Leaf nodes carry the actId you use to fetch metadata or full text.
Python
A leaf listing is bounded to keep one call fast, so a large container comes back in more than one page. Check truncated on every section listing. When it is true, the response also carries nextCursor: pass it back as cursor and keep going until it is null.
Do not reach for POST /us/statutes/search to finish an enumeration. Search is capped at 120 results for any one query, so it cannot complete a container that browse could not.
Rows are sorted into statutory order within each response, and pages are walked in storage order, so concatenating pages does not give you one globally sorted list. The union of every page is the complete container. Sort it yourself once you hold it all.

Export a container with its text

Enumeration gives you identifiers. To turn a chapter into text, batch those actId values through POST /us/statutes/sections with includeBody, 50 at a time.
Two calls per 50 sections, and no per-section round trip. includeBody bills the ordinary body price for each row that returns text; rows whose text cannot be resolved come back with body: null and are not charged for it, so read creditsConsumed on each response instead of computing it. Text is the expensive half of any export. If you are filtering, run the filter on metadata first (omit includeBody) and fetch bodies only for what survives.
Size the container before you walk it. POST /us/statutes/count takes the same scoping filters, runs no ranking, and returns an exact section count for one credit, which tells you what an export will cost before you start it.

Search within a container

Browse and search meet at the parent object. Every search result carries a parent: the ready-made query that lists its siblings. Its keys (titleNumber, chapter, part, code) are also accepted by POST /us/statutes/search, so you can take any hit and run a keyword search confined to its chapter or part, without building the scope yourself.
Python
chapter and part accept a single value or a list, and must be paired with titleNumber (USC/CFR) or code (state), which parent always includes. A chapter number alone repeats across every title, so an unpaired chapter/part is rejected with 422.

Section Identifiers

The actId you get from a leaf node, and how to fetch its metadata and text.

Corpus Types

The corpora you can browse and how to scope with corpusType and state.

Jurisdictions & State Codes

Which jurisdictions exist, and what the two-letter state codes mean.

Resolve a citation

Go straight to a section from a Bluebook citation instead of walking to it.
Last modified on September 12, 2026