EdgarKit vs edgartools
edgartools is the most popular open-source Python library for SEC EDGAR data. EdgarKit is a hosted JSON API for the same underlying SEC filings. They solve adjacent problems with different tradeoffs.
Want this data via API instead of reading about it? Get a free API key →
The short answer
edgartools is great for Python users who want a clean local library, are happy to run their own SEC polling, and don't need cross-language or webhook access. It's free, open-source, well-maintained, and the documentation is solid.
EdgarKit is better when you want a hosted API that any language can hit, real-time webhooks, and zero responsibility for the underlying polling infrastructure.
Many teams use both. edgartools for one-shot Python research, EdgarKit for production services that need real-time delivery or non-Python consumers.
Side-by-side
| | edgartools | EdgarKit | |---|---|---| | Form factor | Python library (pip install) | Hosted REST API | | Cost | Free, MIT-licensed | Free tier + $19/$79 paid | | Where the work runs | In your Python process | On EdgarKit's servers | | Rate limit responsibility | You. Library throttles to SEC's 10/sec | None. EdgarKit handles SEC limits | | Languages | Python only | Any language, REST + JSON | | Real-time webhooks | None | Yes (paid tiers) | | Form coverage | Comprehensive (10-K, 10-Q, 8-K, 13F, Form 3/4/5, S-1, more) | Same (all major form types) | | XBRL parsing | Built-in | Filing returned with iXBRL link | | Caching | Local file-based | Internal, transparent | | Latency to new filings | Depends on how often you poll | ~30 seconds, fetched for you | | MCP server | Yes (built-in) | Coming | | Best for | Python research, one-shot analyses | Production services, multi-language |
When edgartools is the right choice
- You're working entirely in Python and don't need other languages to hit the same data.
- Your workload is bursty and tolerant of you running polling logic locally.
- You want full structured XBRL parsing built into the library (income statement, balance sheet, cash flow as DataFrames).
- You need the rich data-object model for specific form types (TenK, TenQ, Form4, etc.) the library exposes.
- You want to be in full control of caching and retries.
The library handles SEC rate limiting automatically, has great docs, and the developer (dgunning) is responsive on GitHub. For Python-first teams, it's the most polished open-source option.
When EdgarKit is the right choice
- You want a hosted service so you don't have to run SEC polling yourself.
- You're not Python-first, Node, Go, Rust, Ruby teams have first-class support without writing a Python wrapper.
- You need real-time webhooks (push) instead of polling.
- You're building an AI agent that should hit an HTTPS endpoint over an MCP server (MCP support in EdgarKit is on the roadmap; HTTPS works today).
- You don't want to manage the operational burden of SEC ingestion, deduplication, amendment tracking, and rate-limit absorption.
- You need to scale beyond a single process, multiple workers can share one EdgarKit account without coordinating their SEC requests.
What edgartools does that EdgarKit doesn't (yet)
- Native MCP server for Claude Desktop / Claude Code. Lets you query SEC data from Claude without writing API code. EdgarKit's MCP equivalent is on the roadmap.
- Built-in XBRL DataFrames for financial statements. EdgarKit returns filing metadata and links to the iXBRL data; you parse it yourself or use a library on top.
- Local caching of filings. edgartools downloads filings to your machine and reuses them; useful for offline analysis.
What EdgarKit does that edgartools doesn't
- Hosted, multi-language. Use it from JavaScript, Go, Ruby, Rust, Bash, anywhere. See the Node.js and Python examples.
- Real-time webhooks. Get pushed every new Form 4, 8-K, or 13F within ~30 seconds of SEC acceptance.
- No SEC rate-limit management. Your application talks to api.edgarkit.com, not sec.gov. See SEC EDGAR rate limits.
- Single CUSIP-to-ticker map maintained centrally. edgartools includes a similar map; EdgarKit keeps yours up to date without you re-pulling.
- Stripe-backed paid plans for teams that want SLAs and email support.
Using them together
A common pattern: use edgartools for ad-hoc Python research notebooks, and EdgarKit for the production service that serves alerts to end users.
For example, a finance newsletter team might use edgartools in research mode to backtest a Form 4 strategy across 5 years of historical data (no real-time pressure, all local), then deploy the production alert service on EdgarKit so the actual subscribers get pushed alerts within 30 seconds of new filings.
Migration path
If you're already on edgartools and want to add webhook delivery without abandoning your existing library code, you can layer EdgarKit purely for the push half:
# Keep using edgartools for ad-hoc queries
from edgar import Company
filings = Company("NVDA").get_filings(form="4")
# Add EdgarKit just for the real-time push half
import requests
requests.post(
"https://api.edgarkit.com/v1/webhooks",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"url": "https://your-server.com/edgarkit-events",
"filters": {"form_types": ["4"], "tickers": ["NVDA"]},
},
)
You don't have to pick one. They coexist fine.
FAQ
Is edgartools free?
Yes, MIT-licensed and free to use. There are no API keys or rate limits beyond the SEC's own (which the library handles internally).
Is EdgarKit just edgartools behind an API?
No. EdgarKit is its own ingestion pipeline, database, and API surface. The underlying SEC data is the same source of truth.
Can I get webhooks with edgartools?
Not directly. edgartools is a library, not a server. You can build a polling loop with edgartools that emits webhooks yourself, but EdgarKit's webhooks are a hosted feature.
Which has better XBRL support?
edgartools has the deeper XBRL story today, with built-in DataFrames for standardized financial line items. EdgarKit returns the iXBRL link and metadata so you can run your own XBRL parser on top.
Which one is faster?
For one-off lookups, edgartools is fast because it hits SEC directly with no network round trip to a third party. For real-time delivery of new filings, EdgarKit is faster because it polls EDGAR continuously and pushes to your webhook, while edgartools requires you to run the polling yourself.