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

# Federal Register Documents

> Find the rules, proposed rules and notices the US government published in the Federal Register that match search words.

Search the US Federal Register, the government's daily journal of rules, proposed rules, notices and presidential documents, for documents that match search words, newest first. Each document gives its document number, title, type, abstract, the date it was published, the agencies that issued it, and links to the document and its PDF. Optionally narrow by `type` (rule, proposed\_rule, notice or presidential), by `agency` (the agency's Federal Register slug, for example federal-aviation-administration), and by publication date with `published_after` and `published_before` (YYYY-MM-DD). Use it to find what the government has said or proposed about a subject, a regulation or a company. It covers documents published since 1994 and returns the abstract, not the full text: open the link for that. `total` is how many documents matched, including any beyond `limit`, and is 0 when none did.

## Authentication

Requires x402 payment in the `payment-signature` header.

## Request Body

<ParamField body="query" type="string" required>
  Search words, for example drone registration. 2 to 200 characters.
</ParamField>

<ParamField body="type" type="string">
  Only this kind of document: rule, proposed\_rule, notice or presidential. One of `rule`, `proposed_rule`, `notice`, `presidential`.
</ParamField>

<ParamField body="agency" type="string">
  Only documents from this agency, as its Federal Register slug, for example federal-aviation-administration. 2 to 80 characters.
</ParamField>

<ParamField body="published_after" type="string">
  Only documents published on or after this date, YYYY-MM-DD. Use YYYY-MM-DD.
</ParamField>

<ParamField body="published_before" type="string">
  Only documents published on or before this date, YYYY-MM-DD. Use YYYY-MM-DD.
</ParamField>

<ParamField body="limit" type="integer">
  The most documents to return. Default 10. From 1 to 20. Defaults to `10`.
</ParamField>

<Snippet file="audit-context-params.mdx" />

## Response (200 OK)

Top-level envelope: `success` (boolean) and `data` (object). All fields below are nested under `data`.

<ResponseField name="data.request_id" type="string">
  Durable job ID for audit and lookup
</ResponseField>

<ResponseField name="data.status" type="string">
  Job status: `completed`
</ResponseField>

<ResponseField name="data.tool" type="string">
  Always `record_federal_register_find`
</ResponseField>

<ResponseField name="data.result" type="object">
  The answer, described under Result below
</ResponseField>

<ResponseField name="data.evidence" type="object">
  Where the answer came from and when
</ResponseField>

<ResponseField name="data.evidence.source" type="string">
  The public body the data comes from. Always `US Office of the Federal Register`.
</ResponseField>

<ResponseField name="data.evidence.source_kind" type="string">
  `public` when the data comes from a public body, `commercial` otherwise
</ResponseField>

<ResponseField name="data.evidence.retrieved_at" type="string">
  When the lookup was made, as an ISO 8601 UTC time
</ResponseField>

<ResponseField name="data.evidence.as_of" type="string">
  When the source says the fact was last updated, or `null` when the source gives no date
</ResponseField>

## Result

Nested under `data.result`.

<ResponseField name="data.result.total" type="number">
  How many documents matched, including any beyond `limit`.
</ResponseField>

<ResponseField name="data.result.documents" type="object[]">
  The matching documents, newest first.
</ResponseField>

<ResponseField name="data.result.documents[].document_number" type="string">
  The Federal Register document number. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.documents[].title" type="string">
  The document title. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.documents[].type" type="string">
  Rule, Proposed Rule, Notice or Presidential Document. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.documents[].abstract" type="string">
  The abstract the agency gave the document. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.documents[].published_on" type="string">
  The date it was published, YYYY-MM-DD. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.documents[].agencies" type="string[]">
  The agencies that issued it.
</ResponseField>

<ResponseField name="data.result.documents[].url" type="string">
  The document on federalregister.gov. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.documents[].pdf_url" type="string">
  The official PDF. `null` when the source gives no value.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://win.oneshotagent.com/v1/tools/find/record-federal-register \
    -H "Content-Type: application/json" \
    -H "payment-signature: <base64 x402 payment>" \
    -d '{
      "query": "drone registration",
      "type": "rule",
      "limit": 1
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://win.oneshotagent.com/v1/tools/find/record-federal-register", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "payment-signature": paymentProof,
    },
    body: JSON.stringify({
      "query": "drone registration",
      "type": "rule",
      "limit": 1
    }),
  });
  ```

  ```typescript SDK theme={null}
  const result = await agent.tool('find/record-federal-register', {
    query: 'drone registration',
    type: 'rule',
    limit: 1
  });
  console.log(result.data.result);
  console.log(result.data.evidence);
  ```
</RequestExample>

<ResponseExample>
  ```json Response (200) theme={null}
  {
    "success": true,
    "data": {
      "request_id": "uuid",
      "receipt_id": "rcpt_...",
      "status": "completed",
      "tool": "record_federal_register_find",
      "result": {
        "total": 43,
        "documents": [
          {
            "document_number": "2026-14439",
            "title": "Establishing a Fixed Time Period of Admission and an Extension of Stay Procedure for Nonimmigrant Academic Students, Exchange Visitors, and Representatives of Foreign Information Media",
            "type": "Rule",
            "abstract": "The Department of Homeland Security (DHS) is amending its regulations to change the admission period in the F, J, and I classifications from duration of status to an admission for a fixed time period.",
            "published_on": "2026-07-17",
            "agencies": [
              "Homeland Security Department"
            ],
            "url": "https://www.federalregister.gov/documents/2026/07/17/2026-14439/establishing-a-fixed-time-period-of-admission-and-an-extension-of-stay-procedure-for-nonimmigrant",
            "pdf_url": "https://www.govinfo.gov/content/pkg/FR-2026-07-17/pdf/2026-14439.pdf"
          }
        ]
      },
      "evidence": {
        "source": "US Office of the Federal Register",
        "source_kind": "public",
        "retrieved_at": "2026-01-15T12:00:00.000Z",
        "as_of": null
      }
    }
  }
  ```
</ResponseExample>

<Info>Price: \$0.005 per lookup. See [Pricing](/pricing) for every tool.</Info>

## Notes

* Results return inline. The finished job stays available at `/v1/requests/{request_id}`


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