{
  "openapi": "3.0.1",
  "info": {
    "title": "Federal Register Documents: Rules, Notices & Comment Dates",
    "description": "Rules, proposed rules, notices and presidential documents from the official Federal Register API: filter by keyword, agency, CFR title, topic, docket, publication window, effective date or open comment window. Rows carry citation, dates, docket ids, abstract and text links.",
    "version": "0.1",
    "x-build-id": "Jc26lG1AQKTV4z0Tf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yadroo~federal-register-documents/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yadroo-federal-register-documents",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/yadroo~federal-register-documents/runs": {
      "post": {
        "operationId": "runs-sync-yadroo-federal-register-documents",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/yadroo~federal-register-documents/run-sync": {
      "post": {
        "operationId": "run-sync-yadroo-federal-register-documents",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to return",
            "enum": [
              "documents",
              "publicInspection",
              "agencies"
            ],
            "type": "string",
            "description": "`documents` searches the Federal Register itself: every rule, proposed rule, notice and presidential document back to 1994 (scanned issues to 1936), including the ones already scheduled for the next issues. `publicInspection` reads the filing desk instead — papers signed and filed by an agency that will be printed in the coming days; it is the earliest a document can be seen. `agencies` writes one row per agency with the slug you need for *Agencies* below. Filters in the sections below apply to `documents`; `publicInspection` accepts document types and a filing date, `agencies` accepts a name search.",
            "default": "documents"
          },
          "searchTerm": {
            "title": "Search words",
            "type": "string",
            "description": "Full-text search over the whole document, not only the title. Quote a phrase (`\"comment period\"`) to keep the words together; several words without quotes are matched as a phrase-less query. In mode `agencies` this is a plain name filter (`commission`, `bureau`, `energy`). Empty = every document the other filters allow, newest first."
          },
          "documentTypes": {
            "title": "Document types",
            "type": "array",
            "description": "Keep only these kinds of document. Empty = all four. The output field `type` carries the readable form (`Rule`, `Proposed Rule`, `Notice`, `Presidential Document`), `subtype` the finer label the source prints (for example `Executive Order`).",
            "items": {
              "type": "string",
              "enum": [
                "RULE",
                "PRORULE",
                "NOTICE",
                "PRESDOCU"
              ],
              "enumTitles": [
                "Rule — final rule, already in the CFR pipeline",
                "Proposed rule — open for comment, incl. ANPRM",
                "Notice — meetings, information collections, grants, determinations",
                "Presidential document — executive orders, proclamations, memoranda"
              ]
            }
          },
          "agencySlugs": {
            "title": "Agencies",
            "type": "array",
            "description": "Agency slugs, e.g. `environmental-protection-agency`, `securities-and-exchange-commission`, `food-and-drug-administration`, `energy-department`. Several slugs are combined with OR. A department slug also brings in its sub-agencies. Run mode `agencies` once for the full dictionary — the source answers an unknown slug with an error, so this actor checks your slugs first and names the closest match instead of returning an empty run.",
            "items": {
              "type": "string"
            }
          },
          "presidentialDocumentTypes": {
            "title": "Kind of presidential document",
            "type": "array",
            "description": "Narrows presidential documents further. Use it with document type *Presidential document*; on its own it also works, because only presidential documents carry these labels. Executive orders come with `executiveOrderNumber` and `signingDate` filled.",
            "items": {
              "type": "string",
              "enum": [
                "executive_order",
                "proclamation",
                "memorandum",
                "determination"
              ],
              "enumTitles": [
                "Executive order",
                "Proclamation",
                "Memorandum",
                "Determination"
              ]
            }
          },
          "sections": {
            "title": "Subject areas",
            "type": "array",
            "description": "The six subject areas the source itself sorts documents into. Broader than *Topics* and useful when you do not know which agency publishes what you look for.",
            "items": {
              "type": "string",
              "enum": [
                "money",
                "environment",
                "world",
                "science-and-technology",
                "business-and-industry",
                "health-and-public-welfare"
              ],
              "enumTitles": [
                "Money — banking, securities, taxes, procurement",
                "Environment — air, water, waste, wildlife, fisheries",
                "World — trade, immigration, export control, foreign affairs",
                "Science and technology — telecom, patents, aviation safety, research",
                "Business and industry — transport, energy markets, agriculture, consumer goods",
                "Health and public welfare — health care, food safety, housing, civil rights"
              ]
            }
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Index terms as slugs: `air-pollution-control`, `imports`, `reporting-and-recordkeeping-requirements`, `endangered-and-threatened-species`. A slug is the printed topic lower-cased with hyphens instead of spaces — the `topics` field of any row shows the printed form. Several topics are combined with OR.",
            "items": {
              "type": "string"
            }
          },
          "docketId": {
            "title": "Agency docket",
            "type": "string",
            "description": "One agency docket number, e.g. `EPA-HQ-OAR-2021-0317` or `CMS-4217-NC`, to follow a single rulemaking through its proposed rule, extensions and final rule. Exact match on the docket the agency prints."
          },
          "cfrTitle": {
            "title": "CFR title",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Keep documents that change this title of the Code of Federal Regulations (40 = environment, 21 = food and drugs, 17 = securities, 12 = banks, 14 = aeronautics). The way to watch the part of the code your compliance work touches."
          },
          "cfrPart": {
            "title": "CFR part",
            "type": "string",
            "description": "A part inside the CFR title above, e.g. `52` with title 40, or `1308` with title 21. Needs *CFR title* to be set. Output field `cfrCitations` lists the citations of a document (`40 CFR 52`), `cfrTitles` the title numbers alone."
          },
          "significantOnly": {
            "title": "Only economically significant documents",
            "type": "boolean",
            "description": "Keep documents the unified agenda marks as significant under Executive Order 12866 — the rules with a large economic or policy effect. The flag is set on a minority of documents, so combine it with a wide date window.",
            "default": false
          },
          "publishedFrom": {
            "title": "Published from",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "YYYY-MM-DD, earliest publication date. Empty = no lower bound."
          },
          "publishedTo": {
            "title": "Published to",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "YYYY-MM-DD, latest publication date. Documents already scheduled for the coming issues carry a future publication date, so leave this empty to see them."
          },
          "lookbackDays": {
            "title": "Published in the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Relative window for scheduled runs: 1 = today's issue, 7 = the last week. Documents scheduled for the coming issues are always included. Ignored when *Published from* is set."
          },
          "effectiveWithinDays": {
            "title": "Takes effect within N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep documents whose effective date falls between today and N days from now — the deadline a company has to comply with. Only final rules and some notices carry an effective date; rows come with `daysUntilEffective`."
          },
          "commentsOpenOnly": {
            "title": "Only documents still open for comment",
            "type": "boolean",
            "description": "Keep documents whose comment period closes today or later, so nothing on the list is already past. Pair it with document type *Proposed rule*; rows come with `commentsCloseOn`, `daysUntilCommentsClose` and the comment link where the source has one.",
            "default": false
          },
          "availableOn": {
            "title": "Public inspection day",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "YYYY-MM-DD, the filing desk of one day, for mode `publicInspection` only. Empty = the newest day that has filings: agencies file on business days, so a Sunday run returns Friday's desk and the row field `inspectionIssueDate` says which day it is."
          },
          "onlyNew": {
            "title": "Only documents not seen before",
            "type": "boolean",
            "description": "Remember every document number in this actor's key-value store and write only the ones that were not there on the previous run. The first run writes what it finds, later runs write what appeared since — the cheap way to run a watch list on a schedule without paying twice for the same document.",
            "default": false
          },
          "includeFullText": {
            "title": "Include the full document text",
            "type": "boolean",
            "description": "Add `fullText` (the plain-text version the source publishes) and `fullTextChars` to every row. This is one extra request per row, so keep *Max rows* small when you turn it on; the abstract, action line and date paragraph are in every row anyway, for free.",
            "default": false
          },
          "fullTextMaxChars": {
            "title": "Cut the full text at N characters",
            "minimum": 500,
            "maximum": 200000,
            "type": "integer",
            "description": "Long rules run past a million characters. The text is cut at this length (`fullTextTruncated` says whether it was) to keep dataset rows and LLM prompts manageable.",
            "default": 20000
          },
          "sortBy": {
            "title": "Sort rows by",
            "enum": [
              "newest",
              "oldest",
              "relevance",
              "executiveOrderNumber"
            ],
            "type": "string",
            "description": "`relevance` needs *Search words* — without them the run falls back to `newest` and says so in the status message. `executiveOrderNumber` only orders presidential documents. Mode `agencies` is always sorted by name.",
            "default": "newest"
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many rows. A busy weekday brings 100-400 documents, a year of one agency's rules a few hundred. The source serves at most 10 000 documents per query — narrow the dates or the agency to go deeper.",
            "default": 50
          },
          "fields": {
            "title": "Output fields",
            "type": "array",
            "description": "Keep only these fields, in this order, e.g. [\"documentNumber\", \"title\", \"commentsCloseOn\", \"url\"]. Empty = every field the mode produces.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}