Risk Signal API
Programmatic access to corporate distress scores for 50,000+ companies via REST API. 5 proprietary indexes. 6 cross-referenced federal datasets. Daily updates.
For funds: Hedge fund annual contract → · Short-seller signals →
Endpoints
GET /api/risk-signal/company/Amazon
Host: warnfirehose.com
X-API-Key: wf_your_key_here
{
"company": "Amazon",
"score": 6,
"level": "Elevated",
"factors": [
"High WARN volume",
"Recent layoff (90d)",
"SEC 8-K on file"
],
"notice_count": 5,
"employees_affected": 2800,
"latest_notice": "2026-04-13",
"states": "CA,WA,TX",
"sec_filings": 3,
"bankruptcy_filings": 0,
"lca_petitions": 12450,
"lca_avg_wage": 145000,
"lca_top_roles": [...],
"h1b": { "approvals": 890, "denials": 12 }
}
// score is 0-10+. Levels: Low (0-1), Moderate (2-3), Elevated (4-6), Critical (7+).
GET /api/risk-signal?limit=50&min_score=60
Host: warnfirehose.com
X-API-Key: wf_your_key_here
[
{
"company": "Acme Corp",
"score": 8,
"level": "Critical",
"factors": [...],
"notice_count": 3,
"employees_affected": 1240,
"latest_notice": "2026-04-10",
"states": "CA,TX"
},
...
]
// Top-level array, newest / highest-score first.
GET /api/market-pulse
Host: warnfirehose.com
X-API-Key: wf_your_key_here
{
"trend": "rising",
"last_30d_notices": 312,
"last_30d_employees": 48200,
"top_industry_90d": "Technology",
"at_risk_companies": 87,
"sec_filings_30d": 24,
"bankruptcies_30d": 9
}
Scoring Methodology
Each risk score is a weighted composite of five independent signals derived from six federal datasets. A score above 60 means multiple datasets are converging on the same company simultaneously.
Integration Examples
Drop risk scores into your research pipeline in under 5 minutes. Authenticate with your API key in the X-API-Key header.
The examples below return composite score and factors fields on an Investor or Enterprise key. On Free, Starter and Professional keys the same calls return the teaser shape — company, states and level — and the per-company drilldown returns 403.
# pip install requests
import requests
API_KEY = "wf_your_key_here"
BASE_URL = "https://warnfirehose.com"
headers = {"X-API-Key": API_KEY}
# Per-company risk score
resp = requests.get(
f"{BASE_URL}/api/risk-signal/company/Tesla",
headers=headers
)
data = resp.json()
print(f"Risk Score: {data['score']} ({data['level']})")
print(f"Factors: {', '.join(data['factors'])}")
# Bulk: top 50 companies with score >= 4 (Elevated+)
bulk = requests.get(
f"{BASE_URL}/api/risk-signal",
params={"limit": 50, "min_score": 4},
headers=headers
)
# Response is a top-level JSON array
for company in bulk.json():
print(f"{company['company']}: {company['score']} ({company['level']})")
// Per-company risk score
const API_KEY = 'wf_your_key_here';
async function getRiskScore(company) {
const resp = await fetch(
`https://warnfirehose.com/api/risk-signal/company/${encodeURIComponent(company)}`,
{ headers: { 'X-API-Key': API_KEY } }
);
const data = await resp.json();
console.log(`Score: ${data.score} (${data.level})`);
console.log(`Factors: ${data.factors.join(', ')}`);
return data;
}
// Bulk: highest risk companies. Returns a top-level array.
async function getBulkSignals(minScore = 4) {
const resp = await fetch(
`https://warnfirehose.com/api/risk-signal?min_score=${minScore}&limit=50`,
{ headers: { 'X-API-Key': API_KEY } }
);
return resp.json(); // Array<{company, score, level, factors, ...}>
}
getRiskScore('Tesla');
# Per-company risk score
curl -s \
-H "X-API-Key: wf_your_key_here" \
"https://warnfirehose.com/api/risk-signal/company/Tesla" \
| python3 -m json.tool
# Bulk: top 50 companies, score >= 60
curl -s \
-H "X-API-Key: wf_your_key_here" \
"https://warnfirehose.com/api/risk-signal?limit=50&min_score=60" \
| python3 -m json.tool
# Market pulse snapshot
curl -s \
-H "X-API-Key: wf_your_key_here" \
"https://warnfirehose.com/api/market-pulse"
Pricing
Start free. Upgrade when you need all six datasets and full signal depth.
- 25 API calls / day
- All 6 datasets on a 7-day delay
- Risk Signal teaser — company, states, level
- JSON responses
- Live same-day data
- Composite scores & 5 distress indexes
- Company drilldown endpoint
- Exports
- Webhook alerts
- 1,000 API calls / day
- All 6 datasets, live same-day
- Full history, 500 records / call
- SEC 8-K, bankruptcy & H-1B/LCA data
- JSON / CSV / Parquet exports
- Webhook alerts
- Risk Signal teaser — company, states, level
- Composite scores & 5 distress indexes
- Company drilldown endpoint
- Full Risk Signal API — all 5 distress indexes
- Composite scores + per-dataset breakdown
- Company drilldown — /api/risk-signal/company/{name}
- Everything in Professional
- 5,000 API calls / day, 1,000 records / call
- MCP access for AI agents
- Company watchlist (100 companies)
- Real-time webhook alerts
- Custom rate limits
- All 6 datasets
- Full risk score (all 5 signals)
- Webhook alerts on custom criteria
- Bulk data delivery (S3 / SFTP)
- Dedicated SLA discussion
- Priority support
- Marketplace delivery (AWS Data Exchange) once the listing is live — in progress
FAQ
warn_velocity_high or sec_restructuring.
GET /api/risk-signal accepts limit and min_score query parameters and returns the highest-scoring companies. Investor and Enterprise keys receive the full ranked list with composite scores; Free, Starter and Professional keys receive a five-row teaser without scores. For larger exports, /api/export/csv and /api/export/parquet are available on paid plans.
Ready to integrate?
Free API key in 30 seconds. No credit card required for the free tier. The full Risk Signal API is on the Investor plan, $499/mo.