Overview
The FinIQ Insider Transactions API provides real-time access to insider trading activities (purchases, sales, grants, and option exercises) for over 30,000 public companies across 60+ global exchanges.
Unlike standard feeds that simply scrape regulatory filings, this dataset is structured for alpha. We automatically normalize global filing formats (SEC Form 4, UK Director Dealings, etc.) into a single schema and enrich the data with proprietary signals, such as 10b5-1 Noise Filtering and Cluster Buying Detection.
Key Capabilities:
- History: 15+ Years (Point-in-Time).
- Latency: <100ms from regulatory publication.
- Coverage: US (SEC), UK (LSE), EU, APAC, and 50+ other regions.
- Alpha Signals: Pre-calculated "Cluster Buys" and "Opportunistic vs. Routine" flags.
1. Access Methods
We provide four distinct ways to access this dataset depending on your infrastructure:
REST API
JSON Feed
Low-latency output designed for live trading dashboards, mobile apps, and algo-trading engines.
Bulk Feed
CSV / Excel
Download full historical datasets (15+ years) instantly for backtesting in Python, R, or Excel.
Exclusive
Vector Database
RAG-Ready. Access pre-embedded narratives. Connect your LLM to query:
"Show me tech CFOs who bought >$1M last week."
Direct Connect
SQL Warehouse
Plug our database directly into your internal warehouse (Snowflake, BigQuery, AWS Redshift) without API limits.
2. REST API: Live Transaction Feed
Endpoint: GET https://api.finiq.data/v1/insider-transactions
Request Parameters
| Parameter |
Type |
Required |
Description |
| api_token |
string |
Yes |
Your API Key. |
| ticker |
string |
No |
Filter by specific symbol (e.g., AAPL, VOD.L). |
| date_from |
date |
No |
Start date (YYYY-MM-DD). Default: Today. |
| date_to |
date |
No |
End date (YYYY-MM-DD). |
| transaction_type |
string |
No |
Filter by type: buy, sell, grant, option_exercise. |
| filter_10b5_1 |
boolean |
No |
Set true to exclude pre-planned "automatic" trades (Noise filter). |
| only_clusters |
boolean |
No |
Set true to return only coordinated buying events (High Alpha). |
Example Request (Python)
Python
import requests
url = "https://api.finiq.data/v1/insider-transactions"
params = {
"api_token": "YOUR_KEY",
"ticker": "NVDA",
"date_from": "2024-01-01",
"transaction_type": "buy",
"filter_10b5_1": "true" # Show me only opportunistic buys
}
response = requests.get(url, params=params)
data = response.json()
Response Structure (JSON)
JSON
{
"meta": {
"count": 1,
"ticker": "NVDA",
"exchange": "NASDAQ"
},
"data": [
{
"transactionDate": "2024-03-15",
"reportingDate": "2024-03-16T16:45:00Z",
"filingUrl": "https://sec.gov/Archives/edgar/data/...",
"ownerName": "Jensen Huang",
"ownerTitle": "CEO",
"relationship": "Officer",
"transactionCode": "P",
"transactionType": "Buy",
"shares": 25000,
"pricePerShare": 875.50,
"totalValue": 21887500,
"postTransactionShares": 1250000,
"changeInPosition": 0.02,
"is10b5_1": false,
"clusterSignal": {
"isCluster": true,
"clusterSize": 3,
"description": "3rd Executive purchase in 48 hours."
}
}
]
}
3. Data Dictionary (Field Definitions)
| Field |
Type |
Description |
| transactionDate |
Date |
The date the trade actually occurred. |
| reportingDate |
Datetime |
The exact timestamp the filing was released to the public. Critical for backtesting to avoid look-ahead bias. |
| ownerTitle |
String |
The corporate title (e.g., "Chief Financial Officer", "Director"). |
| transactionCode |
Char |
The regulatory code. P = Purchase, S = Sale, A = Grant, M = Option Exercise. |
| is10b5_1 |
Boolean |
Crucial Signal. Returns true if the trade was made under a pre-scheduled trading plan. Institutional investors typically ignore these trades. |
| postTransactionShares |
Float |
The total number of shares owned after the trade. Used to calculate "Conviction" (e.g., Did they double their position?). |
| clusterSignal |
Object |
Proprietary analytics. Flags if this trade is part of a "Cluster" (multiple insiders trading simultaneously). |
4. Bulk Data Access (CSV / Excel)
For users who need to backtest strategies against 15 years of history, we offer full historical dumps via direct download or Amazon S3 buckets.
File Naming Convention:
{Exchange}_{Ticker}_Insider_History_{Date}.csv
CSV Columns:
Date, Ticker, Exchange, InsiderName, Title, Type, Shares, Price, Value, SharesHeld, 10b5-1_Flag, Cluster_ID
How to Download:
- Navigate to the Data Export tab in the dashboard.
- Select Universe (e.g., "S&P 500" or "Global Tech").
- Select Timeframe (e.g., "2010 - 2024").
- Click Generate CSV.
5. Vector Database Feed (RAG-Ready)
Exclusive to FinIQ.
We provide insider data as Vector Embeddings. This is designed for AI teams building RAG (Retrieval-Augmented Generation) pipelines. Instead of querying SQL, your LLM can query the narrative.
Sample Vector Output (Decoded):
"On March 15, 2024, Jensen Huang, CEO of Nvidia, made an opportunistic purchase of 25,000 shares at $875.50. This is his first open-market purchase in 12 months and is part of a cluster buy involving the CFO and CTO."
Use Case:
Connect this feed to your OpenAI/LangChain pipeline to allow users to ask:
- "Which semiconductor CEOs are buying their own stock right now?"
- "Show me companies where the CFO bought the dip but the CEO is selling."
6. Coverage & Global Normalization
We map local regulatory filings to a standardized Global Schema.
| Region |
Regulatory Source |
Native Filing Name |
Mapped to FinIQ Schema |
| USA |
SEC |
Form 4 / Form 144 |
Full Mapping |
| UK |
FCA |
PDMR / Director Dealings |
Full Mapping |
| Europe |
ESMA |
MAR (Managers' Transactions) |
Full Mapping |
| Canada |
SEDI |
Insider Reports |
Full Mapping |
| Japan |
FSA |
EDINET Disclosures |
Full Mapping |
7. Error Handling & Limits
- Rate Limits: Standard tiers allow 100 requests/second. Enterprise tiers offer unlimited throughput.
- Error Codes:
-
400 Bad Request -
401 Unauthorized: Invalid API Key. 429 Too Many Requests: Rate limit exceeded.-
8. Need Help?
- Developer Support: email
dev-support@finiq.data - Slack Community: Join our [Quant Developer Slack]
- Postman Collection: [Download Here]