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

# Browse the statutory hierarchy

> Walk the statutory tree one level at a time, in statutory order. Each call
returns the immediate children of wherever you are, so you can enumerate a code
top to bottom without searching.

**Cost**: 1 credit. A request whose filters do not fit the corpus is
rejected before anything is charged. A filter naming a container that does not
exist is refunded, and so is a browse that returns no rows, so exploring the
hierarchy never costs you anything for a level that turns out to be empty.

Pass the deepest level you already know; the response returns the level below it:

- `corpusType=USC` -> the titles
- `corpusType=USC&titleNumber=42` -> the chapters in Title 42
- `corpusType=USC&titleNumber=42&chapter=21` -> the sections in Chapter 21 (leaf)
- `corpusType=CFR&titleNumber=17&part=240` -> the sections in Part 240 (leaf)
- `corpusType=STATE&state=tx` -> the state's codes
- `corpusType=STATE&state=tx&code=tx_pe` -> the chapters in the Texas Penal Code
- `corpusType=STATE&state=ny&code=ny_jud&article=2` -> the sections in a New York article (leaf)
- `corpusType=CONSTITUTION` -> the articles and amendments of the US Constitution
- `corpusType=CONSTITUTION&article=Article III` -> the sections of Article III (leaf)
- `corpusType=STATE_CONSTITUTION&state=nm` -> the articles of the New Mexico Constitution
- `corpusType=FEDERAL_RULES` -> the rule sets (FRCP, FRE, FRCrP, ...)
- `corpusType=FEDERAL_RULES&code=frcp` -> the Federal Rules of Civil Procedure (leaf)

Interior nodes carry a `sectionCount` and `isLeaf: false`; drill into one by
passing its `identifier` back as the filter its `kind` names (`title` ->
`titleNumber`, `chapter`, `part`, `code`, `article`). Leaf nodes are sections
and carry an `actId` for `/us/statutes/section/{actId}`. Browse supports `USC`,
`CFR`, `STATE`, `REGULATION`, `CONSTITUTION`, `STATE_CONSTITUTION` and
`FEDERAL_RULES`, which is also what `browsable` says on each
`GET /us/statutes/coverage` legend entry. The rest are dated series or share no
tree, so use `/us/statutes/search` for those.

Federal rules are published twice: by the Judicial Conference at uscourts.gov
(`frcp`, `fre`, ...) and as an appendix to the U.S. Code (`uscapp_t28a_fre`,
...). Each is its own rule set here, so neither is listed twice under one heading.



## OpenAPI

````yaml https://api.vaquill.ai/external/openapi.json get /api/v1/us/statutes/divisions
openapi: 3.1.0
info:
  title: Vaquill Developer API
  description: >-
    Public API for legal statutes and legislation.


    **Authentication**: Pass your API key as `Authorization: Bearer vq_key_...`
    (preferred) or in the `X-API-Key` header. The `api_key` query parameter also
    works where a header cannot be set, but a URL ends up in logs and browser
    history. Sending two different keys in one request is rejected with a 401.


    **Credits**: Each call costs API credits. See `GET
    /api/v1/api-credits/pricing` for the full pricing matrix.


    ## Jurisdictions


    | Jurisdiction | Coverage | `countryCode` |

    |---|---|---|

    | **United States** | USC and the Statutes at Large, the CFR and its annual
    editions, all 52 state and territory statutory codes (50 states plus DC and
    Puerto Rico), state administrative regulations, court rules, federal and
    state constitutions, federal agency guidance and adjudications, the Federal
    Register, the Sentencing Guidelines and US tax treaties. | `US` |


    See the full [Coverage page](https://www.vaquill.ai/docs/api-guide/coverage)
    for the jurisdiction-by-jurisdiction breakdown, or call
    `/us/statutes/coverage` for live counts. Coverage is per (jurisdiction,
    corpusType) pair, so treat that endpoint as the authoritative list rather
    than this summary.


    ## Endpoints


    - **US Statutes**: Search and retrieve any of the corpora above with full
    text, resolve a citation to its exact section, browse the statutory
    hierarchy, read a section as it stood on a past date, and follow its change
    history, cross-references and defined terms

    - **Board Watches**: Subscribe to a corpus source and get a webhook or email
    when it refreshes with real changes (free, API key required)

    - **Pricing**: Credit costs per endpoint (no auth required)


    ## Rate limits


    Limits are enforced per API key and scale with your plan. A `429` response
    includes a `Retry-After` header.


    | Plan | Per minute | Per hour | Per day |

    |---|---|---|---|

    | Vaquill API Pro | 60 | 1,000 | 2,000 |

    | Vaquill API Business | 150 | 2,500 | 10,000 |


    For full documentation, visit the [API
    Reference](https://www.vaquill.ai/docs/api-reference/).
  version: 1.0.0
  contact:
    name: Vaquill API Support
    url: https://www.vaquill.ai
    email: support@vaquill.ai
  license:
    name: Proprietary
    url: https://www.vaquill.ai/terms
  termsOfService: https://www.vaquill.ai/terms
servers:
  - url: https://api.vaquill.ai
    description: Production
security:
  - ApiKeyAuth: []
  - ApiKeyHeader: []
  - ApiKeyQuery: []
tags:
  - name: US Statutes
    description: >-
      Search and retrieve US primary law. Covers the United States Code and the
      Statutes at Large, the Code of Federal Regulations and its annual
      editions, state statutory codes and administrative regulations, federal
      and state constitutions, court rules, Federal Register rules and
      Presidential documents, federal and state agency guidance, agency
      adjudications, state Attorney General opinions, the Sentencing Guidelines
      and US tax treaties. Scope a search with the `corpusType` filter, and call
      `/us/statutes/coverage` for the live jurisdiction-by-corpusType list.


      - **Search**: Search across all USC, CFR, state, and regulatory sections

      - **Section**: Get metadata, citation, hierarchy, and source links for a
      specific section

      - **Body**: Get the full text of a section

      - **Enactments**: Which state session laws a publisher's own tables list
      against a section (supported jurisdictions only, never a complete history)
  - name: US Session Laws
    description: >-
      State session laws: the acts of each legislature as they were enacted,
      chapter by chapter, before they are folded into a code. A session law is
      what the governor signs. It carries the act's own text, including the
      language it strikes and inserts, its approval and effective dates, and,
      where the publisher prints one, the code sections it changes. That makes
      it the source for "which act changed this section, and when did it take
      effect".


      Every act has a permanent `sessionLawId` (for example
      `SSL_MN_2025R_G_Y2025_C1`, Minnesota Laws 2025, regular session, chapter
      1) whether or not we hold its text, and a citation or bill number such as
      `S.F.No. 1552` is accepted where an id goes. v1 serves STATE acts only.
      Federal session laws (the Statutes at Large, `SAL_` ids) are served by
      `/us/statutes/section`, and `/us/statutes/resolve` points a session-law
      citation here.


      **Start here**: check `/us/statutes/coverage` (free) for what we hold per
      state: each jurisdiction's `sessionLaws` block lists its sessions, which
      are complete or only partly collected, and the `series` and
      `instrumentTypes` that exist. Then **List** a session or a date range to
      get ids, **Get** one act for its record, then **Body** for its text. A law
      missing from a partly collected session is a free 404
      (`session_not_fully_collected`), not proof it does not exist.


      - **List**: everything enacted in a state's session, approved in a window,
      or taking effect on a date

      - **Get**: one act by id or by citation; dates (`effectiveDates` is always
      a list), sources and the code sections it affects

      - **Body**: the act's text as printed, paged by cursor, with amendatory
      markup preserved where the publisher printed it

      - **Batch**: up to 50 ids or citations in one call, the same record as
      Get, billed per law served, with every miss listed and its reason

      - **Changes**: a sync feed of the registry over an integer cursor
      (`sinceId`): what began to be served, was corrected, withdrawn or merged


      The reverse link, from a code section to the acts a publisher's own tables
      list against it, is `GET /us/statutes/section/{actId}/enactments`.
  - name: Board Watches
    description: >-
      Law-change alerts. Subscribe to a **board** (a tracked corpus source,
      identified by `corpusType` plus an optional `state`) and get a webhook or
      email whenever it refreshes with real changes, naming the exact sections
      that changed. Fetch old-vs-new text for any amended section via the change
      diff.


      Boards refresh on their own existing cadence; watching one does not change
      how often it refreshes. Every endpoint here is **free**: authenticated by
      API key and rate-limited, but not credit-metered.


      See the [Law Change Alerts
      guide](https://www.vaquill.ai/docs/api-guide/alerts) for the full
      walkthrough.
  - name: Pricing
    description: >-
      Credit pricing and conversion rates. No authentication required. 1 credit
      = $0.01 USD.
  - name: Credits
    description: >-
      Your own credit balance: what is spendable right now, where it came from,
      and what is about to expire.


      Free and never charged, so it is safe to poll for low-balance alerting or
      to pre-flight a batch job.
externalDocs:
  description: Full API Reference
  url: https://www.vaquill.ai/docs/api-reference/
paths:
  /api/v1/us/statutes/divisions:
    get:
      tags:
        - US Statutes
      summary: Browse the statutory hierarchy
      description: >-
        Walk the statutory tree one level at a time, in statutory order. Each
        call

        returns the immediate children of wherever you are, so you can enumerate
        a code

        top to bottom without searching.


        **Cost**: 1 credit. A request whose filters do not fit the corpus is

        rejected before anything is charged. A filter naming a container that
        does not

        exist is refunded, and so is a browse that returns no rows, so exploring
        the

        hierarchy never costs you anything for a level that turns out to be
        empty.


        Pass the deepest level you already know; the response returns the level
        below it:


        - `corpusType=USC` -> the titles

        - `corpusType=USC&titleNumber=42` -> the chapters in Title 42

        - `corpusType=USC&titleNumber=42&chapter=21` -> the sections in Chapter
        21 (leaf)

        - `corpusType=CFR&titleNumber=17&part=240` -> the sections in Part 240
        (leaf)

        - `corpusType=STATE&state=tx` -> the state's codes

        - `corpusType=STATE&state=tx&code=tx_pe` -> the chapters in the Texas
        Penal Code

        - `corpusType=STATE&state=ny&code=ny_jud&article=2` -> the sections in a
        New York article (leaf)

        - `corpusType=CONSTITUTION` -> the articles and amendments of the US
        Constitution

        - `corpusType=CONSTITUTION&article=Article III` -> the sections of
        Article III (leaf)

        - `corpusType=STATE_CONSTITUTION&state=nm` -> the articles of the New
        Mexico Constitution

        - `corpusType=FEDERAL_RULES` -> the rule sets (FRCP, FRE, FRCrP, ...)

        - `corpusType=FEDERAL_RULES&code=frcp` -> the Federal Rules of Civil
        Procedure (leaf)


        Interior nodes carry a `sectionCount` and `isLeaf: false`; drill into
        one by

        passing its `identifier` back as the filter its `kind` names (`title` ->

        `titleNumber`, `chapter`, `part`, `code`, `article`). Leaf nodes are
        sections

        and carry an `actId` for `/us/statutes/section/{actId}`. Browse supports
        `USC`,

        `CFR`, `STATE`, `REGULATION`, `CONSTITUTION`, `STATE_CONSTITUTION` and

        `FEDERAL_RULES`, which is also what `browsable` says on each

        `GET /us/statutes/coverage` legend entry. The rest are dated series or
        share no

        tree, so use `/us/statutes/search` for those.


        Federal rules are published twice: by the Judicial Conference at
        uscourts.gov

        (`frcp`, `fre`, ...) and as an appendix to the U.S. Code
        (`uscapp_t28a_fre`,

        ...). Each is its own rule set here, so neither is listed twice under
        one heading.
      operationId: list_statute_divisions_api_v1_us_statutes_divisions_get
      parameters:
        - name: corpusType
          in: query
          required: true
          schema:
            type: string
            description: >-
              Corpus to browse. Case-insensitive. The browsable subset of the
              `corpusType` tokens on `/us/statutes/coverage`.
            examples:
              - USC
            enum:
              - USC
              - CFR
              - STATE
              - REGULATION
              - CONSTITUTION
              - STATE_CONSTITUTION
              - FEDERAL_RULES
            title: Corpustype
          description: >-
            Corpus to browse. Case-insensitive. The browsable subset of the
            `corpusType` tokens on `/us/statutes/coverage`.
        - name: state
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                enum:
                  - al
                  - ak
                  - as
                  - az
                  - ar
                  - ca
                  - co
                  - ct
                  - de
                  - dc
                  - fl
                  - ga
                  - gu
                  - hi
                  - id
                  - il
                  - in
                  - ia
                  - ks
                  - ky
                  - la
                  - me
                  - md
                  - ma
                  - mi
                  - mn
                  - ms
                  - mo
                  - mt
                  - ne
                  - nv
                  - nh
                  - nj
                  - nm
                  - ny
                  - nc
                  - nd
                  - mp
                  - oh
                  - ok
                  - or
                  - pa
                  - pr
                  - ri
                  - sc
                  - sd
                  - tn
                  - tx
                  - ut
                  - vt
                  - vi
                  - va
                  - wa
                  - wv
                  - wi
                  - wy
              - type: 'null'
            description: >-
              2-letter jurisdiction code, required for the state-scoped corpora
              (STATE, REGULATION, STATE_CONSTITUTION). Case-insensitive.
            examples:
              - tx
            title: State
          description: >-
            2-letter jurisdiction code, required for the state-scoped corpora
            (STATE, REGULATION, STATE_CONSTITUTION). Case-insensitive.
        - name: titleNumber
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                minimum: 1
              - type: 'null'
            description: USC/CFR title number to drill into.
            examples:
              - 42
            title: Titlenumber
          description: USC/CFR title number to drill into.
        - name: code
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Code to drill into: a state code such as `tx_pe` (list them with
              `corpusType=STATE&state=<state>`), or a federal rule set such as
              `frcp` (list them with `corpusType=FEDERAL_RULES`).
            examples:
              - tx_pe
            title: Code
          description: >-
            Code to drill into: a state code such as `tx_pe` (list them with
            `corpusType=STATE&state=<state>`), or a federal rule set such as
            `frcp` (list them with `corpusType=FEDERAL_RULES`).
        - name: chapter
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Chapter identifier to drill into (USC and state codes). Accepted
              alongside `part` on CFR, where it is not needed: part numbers are
              unique within a title.
            examples:
              - '21'
            title: Chapter
          description: >-
            Chapter identifier to drill into (USC and state codes). Accepted
            alongside `part` on CFR, where it is not needed: part numbers are
            unique within a title.
        - name: part
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Part identifier to drill into (CFR).
            examples:
              - '240'
            title: Part
          description: Part identifier to drill into (CFR).
        - name: article
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Article to drill into: a constitution's article or amendment
              (`Article III`, `Amendment XIV`), or the article of a state code
              that is divided by articles rather than chapters (New York, where
              the listing's `kind` is `article`). Pass the `identifier` exactly
              as the listing returned it.
            examples:
              - Article III
            title: Article
          description: >-
            Article to drill into: a constitution's article or amendment
            (`Article III`, `Amendment XIV`), or the article of a state code
            that is divided by articles rather than chapters (New York, where
            the listing's `kind` is `article`). Pass the `identifier` exactly as
            the listing returned it.
        - name: excludeRepealed
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              Leave out sections whose status is affirmatively dead (repealed,
              superseded, renumbered and similar). A section carrying no
              recorded status is KEPT: a missing status is not evidence of
              repeal. Same vocabulary as the filter of this name on `POST
              /us/statutes/search`.
            default: false
            title: Excluderepealed
          description: >-
            Leave out sections whose status is affirmatively dead (repealed,
            superseded, renumbered and similar). A section carrying no recorded
            status is KEPT: a missing status is not evidence of repeal. Same
            vocabulary as the filter of this name on `POST /us/statutes/search`.
        - name: actStatus
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                enum:
                  - abolished
                  - deleted
                  - expired
                  - in_force
                  - inactive
                  - non_precedential
                  - not_funded
                  - not_yet_effective
                  - omitted
                  - proposed
                  - recodified
                  - recompiled
                  - rejected
                  - relocated
                  - removed
                  - renumbered
                  - repealed
                  - rescinded
                  - reserved
                  - revoked
                  - superseded
                  - terminated
                  - transferred
                  - unconstitutional
                  - vacant
                  - vacated
                  - vetoed
                  - withdrawn
              - type: 'null'
            description: >-
              List only sections carrying this status, e.g. `repealed`. The
              inverse of `excludeRepealed`, and useful for auditing what a
              container holds that is no longer operative.
            title: Actstatus
          description: >-
            List only sections carrying this status, e.g. `repealed`. The
            inverse of `excludeRepealed`, and useful for auditing what a
            container holds that is no longer operative.
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Resume token from a previous response's `nextCursor`. Only
              meaningful at the level that lists sections. Omit it to start at
              the beginning of the container.
            title: Cursor
          description: >-
            Resume token from a previous response's `nextCursor`. Only
            meaningful at the level that lists sections. Omit it to start at the
            beginning of the container.
      responses:
        '200':
          description: The child divisions at the requested level.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsStatutesDivisionsResponse'
              example:
                corpusType: USC
                level: sections
                parentLabel: Title 42, Chapter 21
                divisions:
                  - identifier: '1981'
                    name: Equal rights under the law
                    kind: section
                    isLeaf: true
                    actId: USC_T42_C21_S1981
                  - identifier: 1981a
                    name: >-
                      Damages in cases of intentional discrimination in
                      employment
                    kind: section
                    isLeaf: true
                    actId: USC_T42_C21_S1981a
                  - identifier: '1982'
                    name: Property rights of citizens
                    kind: section
                    isLeaf: true
                    actId: USC_T42_C21_S1982
                  - identifier: '1983'
                    name: Civil action for deprivation of rights
                    kind: section
                    isLeaf: true
                    actId: USC_T42_C21_S1983
                count: 38
                processingTimeMs: 5.1
                creditsConsumed: 1
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
        '402':
          description: Insufficient credits.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
        '422':
          description: Filters do not fit the corpus shape.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
components:
  schemas:
    UsStatutesDivisionsResponse:
      properties:
        corpusType:
          type: string
          title: Corpustype
          description: The corpus being walked, echoed back from the request.
          examples:
            - USC
        state:
          anyOf:
            - type: string
            - type: 'null'
          title: State
          description: The jurisdiction, for state-scoped corpora.
        level:
          type: string
          title: Level
          description: >-
            Kind of children returned: `titles`, `chapters`, `parts`, `codes`,
            `articles`, or `sections`.
        parentLabel:
          anyOf:
            - type: string
            - type: 'null'
          title: Parentlabel
          description: Human label for the container these divisions sit under.
        divisions:
          items:
            $ref: '#/components/schemas/UsDivisionNode'
          type: array
          title: Divisions
          description: The child divisions, in statutory (natural) order.
        count:
          type: integer
          title: Count
          description: Number of divisions returned.
          default: 0
        nextCursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Nextcursor
          description: >-
            Opaque token to resume this listing. Present only when `truncated`
            is true. Pass it back as `cursor` to get the next batch of sections
            in the same container, and keep going until it comes back null.
            Treat it as opaque: it encodes a storage position, and building one
            by hand will not work.


            One ordering caveat. `divisions` is 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.
          examples:
            - s~a3f1c2e0-55b1-4a7d-9d02-1f3b6c8e9a44
        truncated:
          type: boolean
          title: Truncated
          description: >-
            True when this container held more sections than one call can walk,
            so `divisions` is a PREFIX of its contents rather than all of them.
            Check it before treating a listing as complete: the level that
            returns sections is bounded, and a container past that bound
            previously returned a short list that looked whole. When it is true,
            narrow the scope (drill into a chapter or part rather than a whole
            code), or page through it with `nextCursor`.
          default: false
          examples:
            - false
        note:
          anyOf:
            - type: string
            - type: 'null'
          title: Note
          description: >-
            Why the result is empty, when it is. Absent on a normal result. An
            empty `divisions` with a note is an answer; without one it would be
            ambiguous between a bad identifier and a level this corpus does not
            store.
          examples:
            - >-
              New York statutes are organized by article, which this corpus does
              not index.
        processingTimeMs:
          type: number
          title: Processingtimems
          description: >-
            Server-side time for this request in milliseconds, excluding network
            transit. Useful for spotting a slow query; not billed on.
          default: 0
          examples:
            - 240.5
        creditsConsumed:
          type: number
          title: Creditsconsumed
          description: >-
            Credits actually charged for this call. Read it rather than assuming
            the list price: failed and refunded work bills 0, and batch
            endpoints charge per item returned, so a partial result costs less
            than a full one.
          default: 0
          examples:
            - 1
      type: object
      required:
        - corpusType
        - level
      title: UsStatutesDivisionsResponse
      description: Response for `GET /us/statutes/divisions`.
    ApiDetailError:
      properties:
        detail:
          type: string
          title: Detail
          description: >-
            Human-readable reason, safe to surface to an end user. Branch on the
            HTTP status rather than on this string: the wording is not part of
            the contract and may be reworded, but 401 (bad key), 402 (out of
            credits), 403 (missing scope), 404 (no such resource) and 429 (rate
            limited) are stable.
          examples:
            - Insufficient API credits.
        errors:
          anyOf:
            - items:
                $ref: '#/components/schemas/ApiFieldError'
              type: array
            - type: 'null'
          title: Errors
          description: 'Present on 422 only: every field that failed validation.'
      type: object
      required:
        - detail
      title: ApiDetailError
      description: >-
        Error envelope the API actually returns.


        Every error (400/401/402/403/404/405/422/429/5xx) carries a `detail`

        string, e.g. `{"detail": "Insufficient API credits."}`, on every mount
        of

        the API. A 422 adds `errors`, one entry per rejected field. Some 404s
        add

        endpoint-specific diagnosis beside `detail` (the statutes section routes

        add `actId`, `reason` and `didYouMean`); treat unknown keys as optional.
    UsDivisionNode:
      properties:
        identifier:
          type: string
          title: Identifier
          description: >-
            The division's identifier within its parent, e.g. `42` (title), `21`
            (chapter), `240` (part), `tx_pe` (state code), `frcp` (federal rule
            set), `Article III` (article), or `1983` (section). Pass it back
            verbatim.
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Human-readable name of the division, when the source provides one.
        kind:
          type: string
          title: Kind
          description: >-
            Division kind, which is also the filter to drill into it with:
            `title` (as `titleNumber`), `chapter`, `part`, `code`, `article`, or
            `section` (a leaf; fetch it by `actId`).
        isLeaf:
          type: boolean
          title: Isleaf
          description: True for sections (terminal nodes); false for interior divisions.
        actId:
          anyOf:
            - type: string
            - type: 'null'
          title: Actid
          description: >-
            Section identifier, present only on leaf sections. Pass it to
            `/us/statutes/section/{actId}`.
        sectionCount:
          anyOf:
            - type: integer
              minimum: 0
            - type: 'null'
          title: Sectioncount
          description: Sections under an interior division. Null on leaf sections.
      type: object
      required:
        - identifier
        - kind
        - isLeaf
      title: UsDivisionNode
      description: >-
        One child division in a `GET /us/statutes/divisions` listing.


        Interior nodes (titles, chapters, parts, codes, articles) carry a

        `sectionCount` and `isLeaf: false`; drill into one by passing its

        `identifier` back as the filter its `kind` names. Leaf nodes are
        sections and carry an `actId` you can pass to

        `/us/statutes/section/{actId}`.
    ApiFieldError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Loc
          description: >-
            Where the bad value is: `body`, `query` or `path`, then the
            parameter name exactly as you send it (camelCase), then list
            indexes. A bare `["body"]` means the body as a whole was not a JSON
            object.
          examples:
            - - body
              - corpusType
        msg:
          type: string
          title: Msg
          description: What is wrong with the value, in plain English.
          examples:
            - Input should be 'USC', 'CFR' or 'STATE'
        type:
          type: string
          title: Type
          description: >-
            Machine-readable error kind, e.g. `missing`, `literal_error`,
            `json_invalid`.
          examples:
            - literal_error
      type: object
      required:
        - loc
        - msg
        - type
      title: ApiFieldError
      description: One rejected field in a 422 response.
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: vq_key_*
      description: >-
        API key issued from the developer dashboard. Pass as `Authorization:
        Bearer vq_key_...` (preferred).
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        The same API key as a bare header value: `X-API-Key: vq_key_...`.
        Equivalent to the Bearer form.
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: >-
        The same API key as a query parameter: `?api_key=vq_key_...`. Use only
        where you cannot set a header. A URL can end up in proxy and server
        logs, browser history and shared links, so prefer either header form,
        and rotate a key that has leaked.

````

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