FilingDrift exposes a JSON REST API for Pro and Pro+ subscribers. Query scores, companies, and your watchlist programmatically. Your API key is on your account dashboard.
Pass your API key in the Authorization header on every request.
Authorization: Bearer YOUR_API_KEY
Alternatively, pass ?key=YOUR_API_KEY as a query parameter (legacy, not recommended).
| Plan | Requests / minute | Bulk endpoint |
|---|---|---|
| Pro | 60 | — |
| Pro+ | 300 | ✓ included |
https://filingdrift.com/api/v1
/api/v1/companies
Pro
List all 1890+ tracked companies with their latest risk score.
| Param | Default | Description |
|---|---|---|
flagged |
false | Set to true to return only companies above the control ceiling |
curl -H "Authorization: Bearer YOUR_KEY" \ "https://filingdrift.com/api/v1/companies?flagged=true"
{
"control_ceiling": 14.8,
"count": 3,
"companies": [
{
"ticker": "PRTY",
"name": "Party City Holdco Inc.",
"control_ceiling": 14.8,
"latest_score": 211.8,
"latest_vs_ceiling": 14.31,
"flagged": true,
"periods": 6
}
]
}
/api/v1/scores
Pro
Full score history for a single ticker across all filing periods.
| Param | Required | Description |
|---|---|---|
ticker |
Yes | Stock ticker symbol (e.g. AAPL) |
curl -H "Authorization: Bearer YOUR_KEY" \ "https://filingdrift.com/api/v1/scores?ticker=AAPL"
{
"ticker": "AAPL",
"name": "Apple Inc.",
"control_ceiling": 14.8,
"pairs": [
{
"period_start": "2022-09-01",
"period_end": "2023-09-01",
"score": 3.21,
"vs_ceiling": 0.22,
"flagged": false
}
]
}
/api/v1/watchlist
Pro
Your saved watchlist with the latest score for each ticker.
curl -H "Authorization: Bearer YOUR_KEY" \ "https://filingdrift.com/api/v1/watchlist"
{
"control_ceiling": 14.8,
"count": 2,
"watchlist": [
{
"ticker": "AAPL",
"name": "Apple Inc.",
"latest_score": 3.21,
"latest_vs_ceiling": 0.22,
"flagged": false,
"periods": 4
}
]
}
/api/v1/bulk
Pro+
All 1890+ companies with their complete score history in a single response. Intended for bulk analysis and model ingestion.
curl -H "Authorization: Bearer YOUR_KEY" \ "https://filingdrift.com/api/v1/bulk"
{
"control_ceiling": 14.8,
"count": 1890,
"companies": {
"AAPL": {
"name": "Apple Inc.",
"pairs": [ ... ]
}
}
}
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://filingdrift.com/api/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# Get flagged companies
r = requests.get(f"{BASE}/companies", headers=HEADERS, params={"flagged": "true"})
for co in r.json()["companies"]:
print(co["ticker"], co["latest_score"], f"({co['latest_vs_ceiling']}x ceiling)")
# Full history for one ticker
r = requests.get(f"{BASE}/scores", headers=HEADERS, params={"ticker": "SVB"})
print(r.json())
| Code | Meaning |
|---|---|
401 | Missing or empty API key |
403 | Invalid key or plan does not include this endpoint |
400 | Missing required parameter (e.g. ticker) |
404 | Ticker not found in corpus |
All errors return JSON: {"error": "message"}