Introducing the Earnings Feed API: Real-Time SEC Data for Developers
We shipped a public API for real-time SEC filings, insider transactions, and institutional holdings. Here's what you can build with it.
We just shipped something we've been working on for a while: a public API for Earnings Feed.
If you're building trading algorithms, research platforms, or fintech tools that need SEC data, this is for you.
The Problem with SEC Data
SEC EDGAR is a treasure trove of financial data. Every public company files there. Every insider trade. Every hedge fund's quarterly holdings. It's all public, it's all free, and it's all... painful to work with.
The raw EDGAR feed gives you XML and SGML files from the 90s. Parsing them is a weekend project that turns into a month. Most commercial alternatives charge enterprise prices and still deliver data with 15-minute delays.
We built Earnings Feed to solve this for ourselves. Now we're opening it up.
What's in the API
Six endpoints covering the full spectrum of SEC filings:
| Endpoint | Description |
|---|---|
GET /api/v1/filings |
Paginated feed of SEC filings (10-K, 10-Q, 8-K, Forms 3/4/5, 13F, etc.) |
GET /api/v1/filings/{accession} |
Single filing detail by accession number |
GET /api/v1/insider/transactions |
Insider trading transactions from Forms 3, 4, and 5 |
GET /api/v1/institutional/holdings |
13F institutional holdings |
GET /api/v1/companies/{cik} |
Company profile by CIK |
GET /api/v1/companies/search |
Search companies by name or ticker |
Every endpoint returns clean JSON. Cursor-based pagination. Clear rate limit headers. No surprises.
Real-Time, Not 15-Minute Delay
This matters if you're trading on SEC filings.
Most data providers poll EDGAR every 15 minutes. By the time you see an 8-K filing about a major acquisition, the move has already happened.
We poll continuously. Filings appear in the API within seconds of SEC acceptance. Your algorithms see them the moment they're public.
Code Examples
Here's how to fetch the latest filings for Apple:
const response = await fetch(
'https://earningsfeed.com/api/v1/filings?ticker=AAPL&limit=10',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
const { items, nextCursor, hasMore } = await response.json();
Each filing includes the company details, form type, filing date, document URLs, and direct links to the source on EDGAR.
Track Insider Buying
Want to know when executives are buying their own stock? Form 4 transactions are parsed and normalized:
import requests
response = requests.get(
"https://earningsfeed.com/api/v1/insider/transactions",
headers={"Authorization": f"Bearer {API_KEY}"},
params={
"direction": "buy",
"minValue": 100000, # $100k+ purchases
"limit": 25
}
)
for txn in response.json()["items"]:
print(f"{txn['ownerName']} bought ${txn['value']:,} of {txn['ticker']}")
Monitor Institutional Holdings
Track what Berkshire Hathaway, Bridgewater, or any 13F filer is holding:
response = requests.get(
"https://earningsfeed.com/api/v1/institutional/holdings",
headers={"Authorization": f"Bearer {API_KEY}"},
params={"managerCik": 1067983, "limit": 50} # Berkshire Hathaway
)
for holding in response.json()["items"]:
print(f"{holding['issuerName']}: ${holding['value']:,}")
Official SDKs
We shipped official client libraries for the two languages most of our users work in:
- Node.js / TypeScript: earningsfeed-node
- Python: earningsfeed-python
Both are fully typed, well-documented, and open source. The raw REST API works fine too if you prefer to roll your own.
Pricing
We wanted to make this accessible without requiring enterprise contracts.
| Tier | Rate Limit | Price |
|---|---|---|
| Free | 15 req/min | $0 |
| Pro | 60 req/min | $15/mo (or $120/year) |
| Trader | 300 req/min | $75/mo (or $600/year) |
The free tier is real. Full API access, all endpoints, no credit card required. It's enough to build a side project or evaluate whether this works for your use case.
Pro is for production apps. Trader is for high-frequency use cases—trading bots, real-time dashboards, anything that needs to poll aggressively.
What You Can Build
Some ideas:
- Trading signals: React to 8-K filings the moment they hit. Material events, earnings surprises, leadership changes.
- Insider activity alerts: Get notified when executives buy significant amounts of their own stock.
- Institutional flow tracking: See what hedge funds are accumulating before it becomes news.
- Research platforms: Build tools that let analysts search and filter SEC filings without touching EDGAR directly.
- Due diligence automation: Pull company profiles, filing history, and ownership data programmatically.
OpenAPI Spec
The full OpenAPI 3.1 specification is available at /api/v1/openapi.json. Import it into Postman, generate typed clients, or explore the API interactively at earningsfeed.com/api/docs.
Getting Started
- Sign up at earningsfeed.com
- Generate an API key from your dashboard
- Make your first request
That's it. No sales calls, no contracts, no waiting.
FAQ
Is the free tier actually free?
Yes. 15 requests per minute, all endpoints, forever. No trial period, no credit card. We want you to build something before you pay anything.
How real-time is real-time?
Sub-second from SEC acceptance to API availability. We poll EDGAR continuously, not on a timer.
What about historical data?
The API returns historical filings. You can filter by date range and paginate through years of data.
Can I use this for commercial applications?
Absolutely. The API is designed for production use. Pick the tier that matches your rate limit needs.
What if I need higher rate limits?
Contact us. We can discuss custom arrangements for high-volume use cases.
What's Next
This is v1. We're actively building:
- Webhooks for real-time push notifications
- More endpoints (proxy statement data, registration filings)
- Enhanced filtering and search capabilities
If you build something with the API, we'd love to hear about it.
Get started at earningsfeed.com/api. Free tier available.