---
title: "Documents of one docket, oldest first"
method: GET
path: "/api/v1/us/rulemaking/dockets/{docket_id}/documents"
tags: ["US Rulemaking"]
---

# Documents of one docket, oldest first

`GET /api/v1/us/rulemaking/dockets/{docket_id}/documents`

## Request

- Base URL: `https://api.vaquill.ai`
- URL: `https://api.vaquill.ai/api/v1/us/rulemaking/dockets/{docket_id}/documents`
- 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/rulemaking/dockets/:docket_id/documents/get.ts> (a function with typed inputs; its response is checked against the schema)

The proposal, notices, final rule and supporting material of a docket, in posting order, with comment periods and Federal Register document numbers. Metadata only: no document text and no comments. Unknown docket with no documents: 404, refunded. A known docket or a filter that yields no documents: an empty page, refunded, with a `note`.

## Path parameters

- `docket_id` string, required: Regulations.gov docket id, for example `EPA-HQ-OAR-2021-0208`. Case is kept as printed.

## Query parameters

- `documentType` string, nullable: Only documents of this Regulations.gov document type.
- `openForComment` boolean, nullable: `true` keeps only documents whose comment period is open.
- `postedFrom` string, date-time, nullable: Only documents posted at or after this ISO-8601 instant.
- `postedTo` string, date-time, nullable: Only documents posted before this ISO-8601 instant (exclusive). Must be after `postedFrom`.
- `limit` integer: Page size, 1 to 100.
- `cursor` string, nullable: `nextCursor` of the previous page; same filters.

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

Successful Response

- DocumentListResponse: Response for `GET /us/rulemaking/dockets/{docketId}/documents`, oldest first.
  - `processingTimeMs` number: Server-side time in milliseconds, not billed on.
  - `creditsConsumed` integer: Credits charged for this call. 0 when not charged or refunded.
  - `docketId` string, required
  - `documents` RulemakingDocument[], required
    - `documentId` string, required
    - `docketId` string, nullable
    - `agencyId` string, nullable
    - `documentType` string, nullable: `Proposed Rule`, `Rule`, `Notice`, `Supporting & Related Material`, ...
    - `subtype` string, nullable
    - `title` string, nullable
    - `frDocNum` string, nullable: Federal Register document number as Regulations.gov prints it.
    - `frDocNumNorm` string, nullable: The same number in the canonical form we join on (sequence zero padded to five digits, like `2021-03456`).
    - `postedAt` string, date-time, nullable
    - `commentStartAt` string, date-time, nullable
    - `commentEndAt` string, date-time, nullable
    - `openForComment` boolean, nullable
    - `withinCommentPeriod` boolean, nullable
    - `allowLateComments` boolean, nullable
    - `withdrawn` boolean, nullable
    - `lastModifiedAt` string, date-time, nullable
    - `cfrPart` string, nullable
    - `frPages` string, nullable
    - `commentCount` integer, nullable: Null means NOT MEASURED, never zero.
    - `commentCountAsOf` string, date-time, nullable
    - `sourceUrl` string, required
    - `asOf` string, date-time, nullable
  - `nextCursor` string, nullable
  - `note` string, nullable: Set when the page is empty: says why and which filters applied. An empty page is refunded (`creditsConsumed` 0).

## Other responses

- `401`: Missing, invalid or revoked API key. Not charged.
- `402`: Insufficient credits. Nothing was done and nothing was charged.
- `404`: No such docket. Refunded.
- `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 rulemaking database is unavailable. Refunded.

## Changes

- **2026-11-07** `340c0d24d0b6`: 29 info
  - added the non-success response with the status `500`
  - added the optional property `candidateCount` to the response with the `409` status
  - added the optional property `candidateCount` to the response with the `422` status
  - added the optional property `candidateCount` to the response with the `429` status
  - …25 more

[Operation history](https://skmtc.dev/vaquill/apis/vaquill-developer-api/changes/api/v1/us/rulemaking/dockets/:docket_id/documents/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)
