Register for a Regulations.gov API key at api.regulations.gov; the API key is required for all calls and must be included as the api_key query parameter.
Identify the docket or document you are interested in by querying https://api.regulations.gov/v4/documents?filter[agencyId]={AGENCY}&filter[documentType]=Proposed%20Rule&api_key=your_api_key to find documents open for comment.
Retrieve comments for a specific document using the objectId returned from the document response: GET https://api.regulations.gov/v4/comments?filter[commentOnId]={objectId}&api_key=your_api_key.
Paginate through results: the default page size is 25, the maximum is 250 (set with page[size]=250), and the API caps total results at 5,000 per query; for dockets with more than 5,000 comments use date range filters (filter[postedDate][ge] and filter[postedDate][le]) to break up the query.
To retrieve the full text and attachments for a specific comment, call GET https://api.regulations.gov/v4/comments/{commentId}?include=attachments&api_key=your_api_key; attachments are returned as download URLs.
Note that date filter formats differ: postedDate filters use YYYY-MM-DD but lastModifiedDate filters use YYYY-MM-DD HH24:MI:SS in Eastern time.
Known gotchas
The total result cap of 5,000 records per query is a hard limit regardless of page size; dockets with mass commenting campaigns often have tens of thousands of comments — you must chunk requests by date range to retrieve a complete set.
The lastModifiedDate filter uses Eastern time for input values even though the API returns timestamps in UTC; mixing up these timezones when doing incremental updates will cause you to miss or double-count comments.
The commentOnId field in the comments filter is the internal objectId of the document, not the user-visible document number (e.g., EPA-HQ-OAR-2023-0001-0001) — always retrieve the objectId from the documents endpoint first.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp