Insider Trading APIinsidertrading.org ↗
Access SEC Form 4 insider trading data via 5 endpoints. Filter buy/sell transactions by ticker, insider name, date range, and get top-traded stock rankings.
What is the Insider Trading API?
This API exposes SEC Form 4 insider trading data across 5 endpoints, covering purchase and sale transactions, filing dates, insider names, share counts, and company details sourced from OpenInsider. The get_insider_trading endpoint accepts flexible filters including ticker symbol, insider name, trade type, and a filing date range preset, while get_top_traded_stocks returns insider activity ranked by transaction value for a given time period.
curl -X GET 'https://api.parse.bot/scraper/35448f06-f2d3-406e-9570-b9cdb989fc8b/get_insider_trading?page=1&count=10&ticker=AAPL&trade_type=all&filing_date=730' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace insidertrading-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.openinsider_api import OpenInsider, TradeType, Period
client = OpenInsider()
# Search for recent AAPL insider purchases
for tx in client.transactions.search(ticker="AAPL", trade_type=TradeType.PURCHASE, limit=5):
print(tx.filing_date, tx.insider_name, tx.trade_type, tx.qty, tx.price, tx.value)
# Get top traded stocks this week
for tx in client.transactions.top_traded(period=Period.WEEK, limit=3):
print(tx.ticker, tx.company_name, tx.insider_name, tx.value)
# Get latest insider selling activity
for tx in client.transactions.selling(ticker="MSFT", limit=5):
print(tx.filing_date, tx.ticker, tx.insider_name, tx.price, tx.qty)
Fetch insider trading transactions with flexible filters. Returns paginated results from the OpenInsider screener sorted by most recent filing date. Supports filtering by ticker, insider name, trade type, and filing date window. Each result includes SEC filing links, trade details, ownership changes, and price performance metrics.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| count | integer | Max results per page. |
| ticker | string | Stock ticker symbol or comma-separated list to filter results. |
| insider | string | Filter by insider name. |
| trade_type | string | Transaction type filter. |
| filing_date | string | Filing date preset in days (e.g., '730' for last 2 years, '30' for last month, '7' for last week). Omitting returns all dates. |
{
"type": "object",
"fields": {
"count": "integer, number of results returned",
"results": "array of insider trading transaction objects"
},
"sample": {
"data": {
"count": 1,
"results": [
{
"1d": "",
"1m": "",
"1w": "",
"6m": "",
"qty": "-50,000",
"flags": "",
"owned": "3,755,576",
"price": "$311.02",
"title": "Dir",
"value": "-$15,551,000",
"ticker": "AAPL",
"form_url": "http://www.sec.gov/Archives/edgar/data/320193/000114036126023363/xslF345X03/form4.xml",
"ticker_url": "http://openinsider.com/AAPL",
"trade_date": "2026-05-27",
"trade_type": "S - Sale",
"filing_date": "2026-05-29 18:30:27",
"insider_url": "http://openinsider.com/insider/Levinson-Arthur-D/1214128",
"insider_info": "3,755,576 direct shares",
"insider_name": "Levinson Arthur D",
"own_change_pct": "-1%"
}
]
},
"status": "success"
}
}About the Insider Trading API
What the API Returns
Each endpoint returns a count integer and a results array of transaction objects drawn from SEC Form 4 filings indexed on OpenInsider. Transaction objects include filing dates, insider names, company identifiers, ticker symbols, trade type (purchase or sale), share quantities, and transaction values. The get_insider_trading endpoint is the most configurable: it accepts ticker (single symbol or comma-separated list), insider (name string), trade_type (all, purchase, or sale), filing_date (preset in days — 7, 30, 730, etc.), page, and count for pagination.
Focused Endpoints for Common Workflows
get_insider_buying and get_insider_selling are narrowed variants that return only purchase-type or sale-type filings respectively, both accepting an optional ticker filter. get_latest_filings returns the most recently submitted Form 4 filings across all insiders and companies, also filterable by ticker. These three endpoints are useful when you need a quick snapshot without constructing a full filter query.
Top Traded Stocks
get_top_traded_stocks accepts a period parameter (day, week, or month) and returns stocks ranked by aggregate insider transaction value within that window. This endpoint is distinct from the others: instead of individual filing records, it surfaces aggregated ranking data, making it suitable for identifying which companies saw the heaviest insider activity over a rolling time frame.
The Insider Trading API is a managed, monitored endpoint for insidertrading.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when insidertrading.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official insidertrading.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Alert system that notifies when a tracked ticker appears in new Form 4 filings via
get_latest_filings. - Screen for recent insider purchases on a watchlist using
get_insider_buyingfiltered by ticker. - Rank companies by insider conviction by querying
get_top_traded_stockswith theweekormonthperiod. - Backtest insider trading signals by pulling historical transactions via
get_insider_tradingwith afiling_datepreset of730days. - Monitor a specific corporate insider's activity across all their transactions using the
insidername filter onget_insider_trading. - Build a dashboard comparing insider buy vs. sell volume for a given ticker using
get_insider_buyingandget_insider_sellingin parallel. - Feed insider transaction data into a quantitative model by paginating through results with the
pageandcountparameters.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does OpenInsider have an official developer API?+
What does the `filing_date` parameter in `get_insider_trading` actually control?+
30 returns filings from the last 30 days, 730 covers roughly the last two years. Omitting the parameter returns results without a date cutoff. This is a preset value, not a specific calendar date, so arbitrary date ranges (e.g., a custom start and end date) are not directly supported.Can I retrieve historical transaction data going back further than two years?+
filing_date parameter on get_insider_trading supports presets up to 730 days (approximately two years). Filings older than that window are not exposed through the current endpoints. You can fork this API on Parse and revise it to add an endpoint that targets a longer historical range if your use case requires deeper history.