{
  "openapi": "3.0.1",
  "info": {
    "title": "Federal Register – Proposed Rules Scraper & Public Inspection",
    "description": "Scrape the US Federal Register from its regulatory data API: rules, proposed rules, notices and presidential documents. 37 flat fields incl. comment-close deadline, EO 12866 significance, RIN and CFR refs. Also reads the Public Inspection desk — a rule 1-3 days before it publishes. No start fee.",
    "version": "0.1",
    "x-build-id": "fUsauVbYuy7qGf656"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fetchsmith~federal-register-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fetchsmith-federal-register-scraper",
        "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/fetchsmith~federal-register-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fetchsmith-federal-register-scraper",
        "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/fetchsmith~federal-register-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fetchsmith-federal-register-scraper",
        "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": {
          "dataset": {
            "title": "Which desk",
            "enum": [
              "published",
              "publicInspection"
            ],
            "type": "string",
            "description": "\"Published\" searches the full Federal Register archive back to 1994 (the default). \"Public Inspection\" returns documents agencies have FILED but that have NOT been published yet — they appear on the desk 1-3 business days before they hit the Register, so this is advance notice of a rule or notice before it is law of record. The desk holds one issue at a time (~100-150 documents) and is empty on weekends and federal holidays; it supports documentTypes, agencies, searchQuery and maxResults only — date range, significantOnly, commentsOpenOnly, CFR title/part and sort order do not exist there and are ignored with a warning.",
            "default": "published"
          },
          "documentTypes": {
            "title": "Document types",
            "uniqueItems": true,
            "type": "array",
            "description": "Which Federal Register document types to return. All four by default.",
            "items": {
              "type": "string",
              "enum": [
                "RULE",
                "PRORULE",
                "NOTICE",
                "PRESDOCU"
              ],
              "enumTitles": [
                "Final rule",
                "Proposed rule",
                "Notice",
                "Presidential document"
              ]
            },
            "default": [
              "RULE",
              "PRORULE",
              "NOTICE",
              "PRESDOCU"
            ]
          },
          "presidentialDocumentTypes": {
            "title": "Presidential document subtypes",
            "uniqueItems": true,
            "type": "array",
            "description": "Narrow \"Presidential document\" (PRESDOCU) results to one or more subtypes — e.g. only Executive Orders, not the proclamations/memoranda/determinations/notices also filed under that same document type. Server-side filter (verified live 2026-10-10: executive_order=1571, proclamation=4440, memorandum=807, notice=785, determination=802, presidential_order=16, other=60 real documents — this is the API's full subtype vocabulary, confirmed by sampling subtypes across 1995-2023 and reconciling against the PRESDOCU total). Leave empty for all subtypes. Ignored on the Public Inspection desk (not supported there) and has no effect unless PRESDOCU is among the Document types above.",
            "items": {
              "type": "string",
              "enum": [
                "executive_order",
                "proclamation",
                "memorandum",
                "notice",
                "determination",
                "presidential_order",
                "other"
              ],
              "enumTitles": [
                "Executive order",
                "Proclamation",
                "Memorandum",
                "Notice",
                "Determination",
                "Presidential order",
                "Other presidential document"
              ]
            },
            "default": []
          },
          "publicationDateFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Earliest publication date, YYYY-MM-DD. Defaults to 90 days ago (Eastern calendar days — the Federal Register publishes on an ET schedule). The archive reaches back to 1994-01-03 if you widen it."
          },
          "publicationDateTo": {
            "title": "Published to",
            "type": "string",
            "description": "Latest publication date, YYYY-MM-DD. Defaults to today, Eastern calendar day (the Federal Register publishes its issue at 8:45 a.m. ET). WATCH MODE WARNING: combined with watchLabel, a FIXED value here is a permanent dead end once today's date passes it — it is an upper bound sent to the Federal Register as conditions[publication_date][lte], and a newly published document is always dated on or after the day it is published, never before, so the watch goes quiet for good once real time passes the cutoff (see README FAQ). Leave it unset in a watched query — it then defaults to \"today\" on every run — publicationDateFrom is safe to keep."
          },
          "agencies": {
            "title": "Agencies",
            "uniqueItems": true,
            "type": "array",
            "description": "Agency slugs (from a federalregister.gov/agencies/<slug> URL) or full agency names — both are accepted and resolved against the official 473-agency list. Filtering by a parent agency includes its sub-agencies: \"homeland-security-department\" also returns Coast Guard, FEMA, CBP, TSA and USCIS documents. Leave empty for all agencies.",
            "items": {
              "type": "string"
            }
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Full-text search across the document title and body. It matches a passing mention anywhere in the body, not just documents about the term, so for a topical search set order to 'relevance' (with the default 'newest' you get the most recent documents that merely mention it). Leave empty to return everything matching the other filters."
          },
          "significantOnly": {
            "title": "Significant rules only",
            "type": "boolean",
            "description": "Only documents flagged significant under Executive Order 12866 (economically or policy significant). Overwhelmingly rules and proposed rules, but verified live NOT always zero on notices (about 6-16 a year carry the flag). Throws if Document types is limited to Presidential document alone -- presidential documents never carry this flag (0 matches across the Federal Register's entire 1994-2026 history).",
            "default": false
          },
          "commentsOpenOnly": {
            "title": "Comment period still open",
            "type": "boolean",
            "description": "Only documents whose public comment period closes today or later — the deadline set a buyer still has time to act on. \"Today\" is the Eastern calendar day, the clock the deadline itself runs on (comments close at 11:59 p.m. ET), so a run scheduled in the small hours UTC still returns the documents closing that same ET day. Mostly proposed rules (92% carry a comment-close date) plus about a third of notices. Throws if Document types is limited to Presidential document alone -- presidential documents are never opened for public comment (0 matches across the Federal Register's entire 1994-2026 history).",
            "default": false
          },
          "cfrTitle": {
            "title": "CFR title",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Filter to documents that affect this Code of Federal Regulations title, 1-50 (e.g. 40 = Protection of Environment, 21 = Food and Drugs). Verified live: narrows a 10,000-row-clamped baseline to a few hundred/year for a single title. Required if you also set CFR part."
          },
          "cfrPart": {
            "title": "CFR part",
            "type": "string",
            "description": "Filter to documents that affect this specific part within the CFR title above (e.g. \"60\" for 40 CFR Part 60, New Source Performance Standards). Requires cfrTitle to be set — the underlying API has no title-less part lookup and 400s on one."
          },
          "order": {
            "title": "Sort order",
            "enum": [
              "newest",
              "oldest",
              "relevance",
              "executive_order_number"
            ],
            "type": "string",
            "description": "Sort by publication date, by full-text relevance, or by Executive Order number (meaningful only when documentTypes=[\"PRESDOCU\"] and presidentialDocumentTypes=[\"executive_order\"]; outside that scope almost every row has no EO number and the sort is effectively unordered).",
            "default": "newest"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop after this many documents. Deep paging is cursor-based, so there is no 10,000-row wall.",
            "default": 100
          },
          "watchLabel": {
            "title": "Watch label (only new since last run)",
            "type": "string",
            "description": "Optional. Name this saved query — e.g. \"epa-air-rules\" — and the Actor remembers which documents it has already delivered under that name, so a scheduled run returns ONLY what is new since last time. The first run with a new label is a free baseline: it records what already matches, returns zero results and charges nothing; every run after that returns just the new documents. Changing a filter starts a fresh baseline (a different filter is a different question). The default rolling 90-day date window is deliberately NOT part of that identity, so a daily schedule keeps one stable baseline. The baseline lives in a key-value store named `fetchsmith-fedreg-watch` on your own account. Don't pair this with a FIXED publicationDateTo — see that field's warning."
          },
          "webhookUrl": {
            "title": "Webhook URL (notify on completion)",
            "type": "string",
            "description": "Optional. An http(s) URL to POST a small JSON summary to when the run finishes — documents pushed, rows scanned, pages walked, and watch-label new-since-last-run counts if Watch label is set. A convenience for callers who want a completion ping without setting up an Apify platform webhook (which needs separate Console/API configuration per Task, not per run). Best-effort: a failed or slow webhook is logged as a warning and never fails the run or affects charging — it fires after every document has already been pushed and charged. Leave empty to skip."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}