HoldingsIntel API
Programmatic access to institutional investment signals derived from SEC 13F filings, insider trades, and activist filings.
Enterprise Feature
API access is available on Enterprise plans. Browse the documentation below to see what's possible, then contact us to get started.
Request API AccessGet an API Key
Generate keys in your account settings. Keys are hashed — store securely.
Make Requests
Pass your key via the Authorization header. All responses are JSON.
Build & Analyze
Access 500+ filers, 50K+ securities, and proprietary signals like Conviction Score.
Authentication
All API requests require a Bearer token. Include your API key in the Authorization header:
curl -H "Authorization: Bearer hi_live_your_key_here" \
https://holdingsintel.com/api/v1/filersEndpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v1/filers | List all tracked institutional investors |
GET | /api/v1/filers/:cik | Get filer detail with latest AUM and positions |
GET | /api/v1/filers/:cik/holdings | Get a filer's holdings for a given quarter |
GET | /api/v1/securities | List tracked securities with ticker and CUSIP |
GET | /api/v1/securities/:identifier | Get security detail by ticker or CUSIP |
GET | /api/v1/securities/:identifier/holders | Get all institutional holders of a security |
GET | /api/v1/signals/conviction | High-conviction institutional moves (score 50+) |
GET | /api/v1/signals/double-downs | Contrarian buys — increased shares into price drops |
GET | /api/v1/signals/smart-money | Net institutional buying/selling with sentiment |
GET | /api/v1/signals/convergence | Multi-source convergence scores (institutional + insider + activist) |
Pagination
All list endpoints support pagination via page and per_page parameters. Maximum 100 items per page.
GET /api/v1/signals/conviction?page=2&per_page=50&quarter=2025-Q4Responses include metadata:
{
"data": [...],
"meta": {
"total": 325610,
"page": 2,
"per_page": 50,
"quarter": "2025-Q4",
"timestamp": "2026-02-28T12:00:00Z"
}
}Code Examples
import requests
API_KEY = "hi_live_your_key_here"
BASE_URL = "https://holdingsintel.com/api/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}
# Get Berkshire Hathaway's current holdings
resp = requests.get(
f"{BASE_URL}/filers/0001067983/holdings",
headers=headers,
params={"per_page": 20}
)
holdings = resp.json()["data"]
for h in holdings:
print(f"{h['ticker']:8s} {h['change_type']:12s} "
f"conviction={h['conviction_score']}")const API_KEY = "hi_live_your_key_here";
const BASE = "https://holdingsintel.com/api/v1";
const res = await fetch(
`${BASE}/signals/conviction?quarter=2025-Q4&per_page=10`,
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
const { data, meta } = await res.json();
console.log(`${meta.total} high conviction moves`);
data.forEach(d =>
console.log(`${d.ticker} — conviction: ${d.conviction_score}`)
);curl -s \
-H "Authorization: Bearer hi_live_your_key_here" \
"https://holdingsintel.com/api/v1/signals/double-downs?quarter=2025-Q4&per_page=5" \
| jq '.data[] | {ticker, filer_name, double_down_score}'Rate Limits
| Plan | Daily Limit | Access |
|---|---|---|
| Free | — | No API access |
| Pro | — | No API access |
| Pro+ | — | No API access |
| Enterprise | 1,000 / day | Full read access to all endpoints |
Rate limit headers (X-RateLimit-Remaining) are included in responses. When exceeded, you will receive a 429 status.
Ready to get started?
Create your API key and start querying institutional data in minutes.