Developer API

filings.tools API v1

The same parser behind every page, as JSON or markdown. Free tier: 200 calls a day per IP, no key. Starter is $19 a month for 10,000 calls a day; see pricing. Responses are not cached, because each carries your own allowance, but every filing is parsed once and kept on our server, so repeat calls for it are faster and usually do not fetch it from EDGAR again.

Use in an assistant

Connect an assistant or IDE that supports remote MCP to https://filings.tools/mcp using Streamable HTTP and no authentication. Free use shares the API's 200 calls per IP per UTC day. Each lookup uses one call; connecting and listing tools use none. Clients behind one proxy may share its allowance. Availability of custom connectors depends on your client and account.

Add to ClaudeAdd to CursorAdd to VS Code

Claude opens its Add custom connector dialog with the name and URL filled in: check both, continue, and choose no sign-in. ChatGPT has no install link: turn on developer mode (Settings, Apps, Advanced settings; available on some paid plans), then create an app with https://filings.tools/mcp and no authentication.

By hand: in Cursor, use mcpServers.filings.url; in VS Code, use servers.filings with type: http and the same URL. Connecting directly is separate from a directory listing.

Start with “Find Apple's latest 10-K and its SEC source.” Use its returned filing id to read a section or facts. Section replies are excerpts; comparisons show up to eight sections, two samples per change type and 400 characters per sample. These are not complete redlines. Missing data does not prove the company omitted a disclosure. Check important values against the cited original. Aggregate usage excludes arguments and filing text; see privacy.

List filings

GET /api/v1/filings?ticker=NVDA&form=10-K&limit=20

Returns the company profile and the recent filings with ids. Forms: 10-K, 10-Q, 8-K, amendments, 20-F, 40-F.

Parsed sections

GET /api/v1/filings/{id}/sections            # JSON: sections[] with id, title, markdown, chars
GET /api/v1/filings/{id}/sections?format=md  # one markdown document
GET /api/v1/filings/{id}/sections?section=item-1a   # a single section

XBRL facts

GET /api/v1/filings/{id}/facts        # revenue, net income, EPS, assets, cash, debt, shares, opex, capex, operating cash flow
GET /api/v1/filings/{id}/facts?all=1  # every reported period for those concepts (Pro and Business)

Keys and limits

curl -H "x-api-key: YOUR_KEY" https://filings.tools/api/v1/filings?ticker=AAPL

Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Over the limit returns 429 with a pricing link. Get a key from pricing. Reading filings on the site never counts against the API.

Your own standing

GET /api/v1/me

Returns whether you are calling anonymously or with a key, your daily ceiling, how much is left, and when it resets. Counters run per UTC day. Reading this does not use any of your allowance.

{
  "product": "filings",
  "caller": "key",
  "plan": "filings_pro_monthly",
  "limitKind": "calls_day",
  "unit": "calls",
  "limit": 50000,
  "remaining": 49873,
  "used": 127,
  "resetIso": "2026-09-21T00:00:00.000Z",
  "persistent": true
}

persistent says whether the count is held in shared storage. When false it is held per instance and a deploy resets it.

Terms

Source documents are public domain SEC filings. Attribution to filings.tools is requested on the free tier. No warranty; verify against the original on sec.gov before relying on a number.