---
title: "Get every Federal Register document for a CFR part"
method: GET
path: "/api/v1/us/statutes/part/{title}/{part}/rulemaking"
tags: ["US Statutes"]
---

# Get every Federal Register document for a CFR part

`GET /api/v1/us/statutes/part/{title}/{part}/rulemaking`

## Request

- Base URL: `https://api.vaquill.ai`
- URL: `https://api.vaquill.ai/api/v1/us/statutes/part/{title}/{part}/rulemaking`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/vaquill/apis/vaquill-developer-api/docs/api/v1/us/statutes/part/:title/:part/rulemaking/get.ts> (a function with typed inputs; its response is checked against the schema)

Federal Register rules, proposed rules and the notices we hold whose CFR references include this
title and part, newest first, for the requested publication years. Notices are held in part, not
whole: `coverage` carries the standing note on which notice classes are held.

**Cost**: 2 credits. Failed lookups and parts that do not exist (404) are not charged.

Grouping is done over the Federal Register documents of each requested year, not from an index on
CFR parts, so the window is bounded: `years` most recent years (default 5, max 12).
`coverage` says when a year's read was truncated.

## Path parameters

- `title` integer, required: CFR title number (1 to 50).
- `part` string, required: CFR part number, e.g. `314`.

## Query parameters

- `years` integer: How many recent publication years to read.

## Headers

- `Idempotency-Key` string, nullable: Optional. 16 to 255 visible ASCII characters (a UUIDv4 works). Repeating the same request with the same key replays the original 2xx response for 24 hours without charging again. The same key on a different request is rejected. With the account's `cacheQueryDerivedData` retention setting off, no body is stored and a retry answers 409 `idempotency_replay_unavailable`, still without a second charge.

## Response `200`

The Federal Register documents that touch the part.

- PartRulemakingResponse
  - `cfrTitle` integer, required
  - `cfrPart` string, required
  - `federalRegisterDocuments` FederalRegisterDocumentOut[], required
    - `documentNumber` string, required
    - `citation` string, nullable
    - `docType` 'rule' | 'proposed_rule' | 'notice' | 'correction', required
    - `publicationDate` string, date, nullable
    - `effectiveOn` string, date, nullable
    - `docketIds` string[]
    - `rins` string[]
    - `rulemakingUrl` string, nullable: Path of `GET /us/rulemaking/rins/{rin}` for this document's single RIN, so the whole rulemaking (agenda history, OIRA review, dockets, proposed/final links) is one call away. Null unless the rulemaking API is enabled AND the document carries exactly one valid RIN. A pointer only: it claims no proposal-to-final pairing, and a RIN shared by many documents (an umbrella RIN) pairs nothing.
    - `title` string, nullable
    - `matchBasis` 'printed_note' | 'date_join' | 'both', nullable
    - `quality` 'verified' | 'candidate', nullable
    - `tier` 'confirmed' | 'candidate' | 'ambiguous' | 'unmatched' | 'not_searched', nullable
    - `matchReason` string, nullable: Present on a weak `candidate`: the document matched on CFR title, part and date only and does not name this section, so on a large part it may be an unrelated rule.
    - `corrections` string[]
  - `years` integer[], required
  - `coverage` string[], required
  - `processingTimeMs` number, required
  - `creditsConsumed` integer, required

## Other responses

- `401`: Missing, invalid or revoked API key.
- `402`: Insufficient credits (`insufficient_credits`, never retry). `creditsRequired` and `creditsAvailable` say how short you are when known; top up, then repeat the call.
- `404`: No such CFR part. Not charged.
- `409`: Idempotency conflict. `idempotency_in_progress`: the original request with this key is still running (retry after `Retry-After`). `idempotency_replay_unavailable`: it completed but its response was too large to replay; nothing is charged again, so check the credit balance instead of retrying.
- `422`: Validation error: `detail` plus one `errors` entry per rejected field. `idempotency_key_reused`: the `Idempotency-Key` was already used with a different request.
- `429`: Rate limit exceeded.
- `500`: Internal error (`internal_error`, retryable). Any credits charged for the call are refunded; retry with backoff and quote `requestId` to support if it persists.
- `503`: The US statutes corpus is temporarily unavailable. Not charged (refunded if already taken): retry.

## Changes

- **2026-11-07** `340c0d24d0b6`: 1 warning, 57 info
  - added the new `not_searched` enum value to the `federalRegisterDocuments/items/tier/anyOf[subschema #1]/` response property for the response status `200`
  - added the non-success response with the status `500`
  - added the non-success response with the status `503`
  - added the optional property `candidateCount` to the response with the `401` status
  - …54 more

[Operation history](https://skmtc.dev/vaquill/apis/vaquill-developer-api/changes/api/v1/us/statutes/part/:title/:part/rulemaking/get.md)

---

[API](https://skmtc.dev/vaquill/apis/vaquill-developer-api.md) - [All operations](https://skmtc.dev/vaquill/apis/vaquill-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vaquill/apis/vaquill-developer-api/revisions/340c0d24d0b6?raw)
