Set a descriptive User-Agent header on every request in the format 'CompanyName ContactEmail' as required by SEC EDGAR fair access policy; requests without this header are blocked.
Search filings via GET https://efts.sec.gov/LATEST/search-index?q=<query>&dateRange=custom&startdt=YYYY-MM-DD&enddt=YYYY-MM-DD&forms=10-K to the EDGAR full-text search endpoint.
Retrieve a company's filing index by CIK via GET https://data.sec.gov/submissions/CIK{zero-padded-10-digit}.json; this JSON lists all recent filings with accession numbers and form types.
Construct the filing index URL as https://www.sec.gov/Archives/edgar/data/{cik}/{accession-no-dashes}/ and fetch the index JSON or HTML to enumerate documents in the filing.
Download individual documents (10-K body, exhibits) directly from the Archives path; respect the rate limit of no more than 10 requests per second per IP.
Known gotchas
EDGAR enforces a hard rate limit of 10 requests/second; exceeding it results in temporary IP blocks — add explicit throttling with at least 100ms between requests.
The User-Agent requirement is strictly enforced; automated scripts without a valid company-name-and-email User-Agent will receive 403 responses.
CIK numbers must be zero-padded to 10 digits in the submissions JSON URL; using the raw integer will return a 404.
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