Skip to main content

Developers — API Pricing, Docs & FAQ

API Endpoint Reference

Six datasets, one unified REST API. All endpoints return JSON and accept an X-API-Key header.

📄
WARN Notices
Mass layoff filings from all 50 states
🌎
H-1B / LCA
Visa petitions and labor condition apps
📊
DOL Claims
Weekly unemployment claims since 1984
📑
SEC 8-K Filings
Material events from SEC EDGAR
Bankruptcies
Chapter 7/11 filings via PACER & SEC EDGAR
📈
JOLTS
BLS job openings, hires, quits, layoffs

Getting Started

All requests go to https://warnfirehose.com/api/. Include your API key in every request:

# Get recent WARN layoff notices curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/records?limit=10" # Get SEC 8-K filings for a ticker curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/sec-filings/ticker/AAPL" # Get bankruptcy filings matched to WARN companies curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/bankruptcies?warn_only=true" # Full company distress timeline (WARN + SEC + bankruptcy) curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/crossref/company-timeline/Amazon"

Sign up at /account to get a free API key (25 calls/day). Paid plans unlock all states, historical data, bulk exports, and higher rate limits. See Pricing for details.

WARN Notices

WARN Act mass layoff and plant closure notices from all 50 U.S. states, updated daily.

GET /api/records Query layoff notices with filters

Returns WARN notices filtered by state, date, company, city, industry, and more.

ParameterTypeDescription
statestringTwo-letter state code (e.g., CA, TX)
companystringCompany name search (partial match)
citystringCity name filter
date_fromstringStart date (YYYY-MM-DD)
date_tostringEnd date (YYYY-MM-DD)
limitintResults per page (default: 100, max: 5000)
offsetintPagination offset
GET /api/stats National summary statistics

Returns aggregate stats: total records, states covered, date range, recent activity. No API key required.

GET /api/trends Monthly layoff trends

Returns monthly counts for layoff trend charts.

ParameterTypeDescription
monthsintNumber of months of history (default: 12)
GET /api/top-companies Top companies by workers affected

Returns the companies with the most layoff notices or employees affected.

ParameterTypeDescription
limitintNumber of companies to return (default: 10)
GET /api/company/{company_name} Company WARN history with news & ticker

Returns all WARN notices for a company, plus ticker symbol, CIK, and related news articles. Powers the company detail pages.

ParameterTypeDescription
company_namestringCompany name (path parameter, URL-encoded)
GET /api/state/{state_code} State-level WARN summary and records

Returns aggregate stats, top companies, trends, and latest notices for a state.

ParameterTypeDescription
state_codestringTwo-letter state code (path parameter, e.g., CA)
GET /api/unified-search Search across all 6 datasets at once

Full-text search across WARN, LCA, H-1B, SEC, bankruptcy, and JOLTS tables. Returns grouped results by dataset.

ParameterTypeDescription
qstringSearch query (required)
limitintResults per dataset (default: 5)
GET /api/states List all states with notice counts

Returns each state with total notice and employee counts. Useful for building state selector dropdowns.

GET /api/yearly Yearly layoff totals

Returns yearly aggregate counts of notices and employees affected.

GET /api/industries Industry breakdown of WARN notices

Returns WARN notices grouped by NAICS industry, with counts and employee totals.

GET /api/geo Geographic heatmap data

Returns WARN notice counts grouped by state with lat/lng coordinates for map visualizations.

H-1B / LCA Visa Data

H-1B visa petitions (FY2009-2023) and Labor Condition Applications (FY2012-2026) from USCIS and DOL.

GET /api/h1b/employers Top H-1B employers by approvals

Returns top H-1B employers ranked by initial approvals. Filter by state and fiscal year.

GET /api/lca/employers Top LCA employers by petition count

Returns top employers filing Labor Condition Applications. Filter by state, fiscal year, visa class, and SOC code.

GET /api/h1b/stats H-1B aggregate statistics

Returns summary stats: total petitions, approval rates, top employers, and wage distributions.

GET /api/lca/stats LCA aggregate statistics

Returns summary stats: total applications, certification rates, top employers, and wage data.

GET /api/lca/by-state LCA petitions grouped by state

Returns LCA petition counts and average wages by state. Filter by fiscal year and visa class.

GET /api/lca/by-city LCA petitions grouped by city

Returns LCA petition counts by city/worksite. Filter by state, fiscal year, and visa class.

GET /api/lca/by-soc LCA petitions by occupation (SOC code)

Returns LCA petition counts grouped by Standard Occupational Classification. Shows which occupations have the most visa activity.

GET /api/lca/wages LCA wage distribution data

Returns wage statistics for LCA petitions: average, median, min/max by occupation and state.

GET /api/lca/employer-years Employer petition history by fiscal year

Returns year-over-year petition counts for a specific employer. Useful for tracking hiring trends.

GET /api/h1b/by-state H-1B petitions grouped by state

Returns H-1B petition approvals and denials by state. Useful for geographic visa analysis.

DOL Unemployment Claims

Weekly initial and continued unemployment claims from the Department of Labor, dating back to 1984.

GET /api/dol-claims Query weekly unemployment claims

Returns weekly unemployment claims data with initial claims, continued claims, and insured unemployment rate.

GET /api/dol-claims/stats Claims summary statistics

Returns aggregate stats: total weeks of data, latest claims figures, and historical ranges.

GET /api/dol-claims/national National aggregate claims time series

Returns weekly national totals for initial and continued unemployment claims. Useful for macro trend analysis.

SEC 8-K Filings New

Material event filings (8-K) from SEC EDGAR. Covers restructurings, layoffs (Item 2.05), leadership changes, and more. Rolling 1-year window, refreshed daily.

GET /api/sec-filings Query SEC 8-K filings with filters

Returns SEC 8-K filings filtered by ticker, CIK, company name, date range, or item type. Each record includes the accession number, ticker, company name, filing date, item codes, and links to the SEC filing.

ParameterTypeDefaultDescription
tickerstring-Stock ticker symbol (e.g., AAPL, MSFT)
cikstring-SEC Central Index Key
companystring-Company name (partial match)
startstring-Start date (YYYY-MM-DD)
endstring-End date (YYYY-MM-DD)
itemsstring-Filter by item code (e.g., "2.05" for layoffs/restructuring)
limitint100Max results (up to 5000)
# Get recent 8-K filings mentioning layoffs (Item 2.05) curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/sec-filings?items=2.05&limit=20"
GET /api/sec-filings/stats Summary statistics for SEC filings

Returns aggregate stats: total filings, unique companies/tickers, date range, filings in the last 7 and 30 days, and a breakdown of the most common item codes.

GET /api/sec-filings/by-company Top filers aggregated by company

Returns companies ranked by number of 8-K filings. Each entry includes ticker, company name, CIK, filing count, and date range.

ParameterTypeDefaultDescription
startstring-Start date (YYYY-MM-DD)
endstring-End date (YYYY-MM-DD)
limitint50Max results (up to 500)
GET /api/sec-filings/by-date Daily filing counts for trend charts

Returns daily counts of filings and unique companies. Useful for rendering trend charts.

ParameterTypeDefaultDescription
daysint90Number of days of history (max 365)
GET /api/sec-filings/ticker/{ticker} All filings for a specific ticker

Returns all 8-K filings for a given stock ticker. Ticker matching is case-insensitive (e.g., "aapl" and "AAPL" return the same results). Supports optional date filtering.

ParameterTypeDefaultDescription
tickerstring-Ticker symbol (path parameter, required)
startstring-Start date (YYYY-MM-DD)
endstring-End date (YYYY-MM-DD)
limitint100Max results (up to 500)
# All Apple 8-K filings curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/sec-filings/ticker/AAPL"
GET /api/sec-filings/warn-crossref Companies with both WARN notices and 8-K filings

Cross-references SEC 8-K filers with WARN notice data. Returns companies that appear in both datasets, with filing counts and employee impact from each source. Useful for detecting corporate distress signals.

ParameterTypeDefaultDescription
daysint90Look-back window in days
limitint50Max results
GET /api/sec-filings/detail/{accession_number} Parsed 8-K filing with key facts

Returns a fully parsed SEC 8-K filing with extracted key facts: dollar amounts, employee counts, restructuring language, officer changes, and exhibits. The accession number is a path parameter (e.g., 0001193125-23-123456).

Bankruptcy Filings New

Chapter 7 and Chapter 11 bankruptcy filings from PACER (federal bankruptcy courts), SEC EDGAR 8-K Item 1.03, and the FJC Integrated Database (historical backfill). Auto-matched against WARN companies. Rolling 1-year window, refreshed daily.

GET /api/bankruptcies Query bankruptcy filings with filters

Returns bankruptcy filings filtered by company, chapter, court, date range, or WARN-matched only. Each record includes debtor name, chapter, court, filing date, docket URL, and any matched WARN company.

ParameterTypeDefaultDescription
companystring-Debtor or company name (partial match)
chapterstring-Bankruptcy chapter (e.g., "7", "11")
courtstring-Court identifier
startstring-Start date (YYYY-MM-DD)
endstring-End date (YYYY-MM-DD)
warn_onlyboolfalseOnly return filings matched to WARN companies
limitint100Max results (up to 5000)
# Chapter 11 bankruptcies matched to WARN layoff companies curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/bankruptcies?chapter=11&warn_only=true"
GET /api/bankruptcies/stats Summary statistics for bankruptcy filings

Returns aggregate stats: total filings, unique debtors, WARN-matched count, date range, filings in the last 7 and 30 days, and a breakdown by bankruptcy chapter.

GET /api/bankruptcies/by-date Daily filing counts for trend charts

Returns daily counts of bankruptcy filings and WARN-matched filings. Useful for trend visualizations.

ParameterTypeDefaultDescription
daysint90Number of days of history (max 365)
GET /api/bankruptcies/by-state Filing counts by state

Returns bankruptcy filing counts aggregated by state, including Chapter 11 vs Chapter 7 breakdown and WARN-matched counts.

ParameterTypeDefaultDescription
daysint365Look-back window in days (max 730)
GET /api/bankruptcies/by-court Filing counts by court

Returns bankruptcy filing counts aggregated by court. Includes court name, total filings, Chapter 11 count, WARN-matched count, and date range.

ParameterTypeDefaultDescription
daysint365Look-back window in days (max 730)
limitint50Max results (up to 200)
GET /api/bankruptcies/warn-crossref Companies with both WARN notices and bankruptcy filings

Returns bankruptcy cases where the debtor matches a company with WARN layoff notices. Includes WARN notice counts and total employees affected for each matched company.

ParameterTypeDefaultDescription
daysint365Look-back window in days (max 365)
limitint50Max results (up to 200)

JOLTS Labor Turnover

BLS Job Openings and Labor Turnover Survey — monthly data on openings, hires, quits, and layoffs by state and industry. Data from 2000-present.

GET /api/jolts/stats Summary statistics and latest snapshot
GET /api/jolts/national National time series for a given element
ParameterTypeDefaultDescription
elementstrJO (openings), HI (hires), TS (separations), QU (quits), LD (layoffs). Omit for all.
levelstrL"L" for absolute numbers, "R" for percentage rate
year_fromintFilter from year
year_tointFilter to year
limitint500Max rows (up to 5000)
GET /api/jolts/by-state State-level comparison for latest month
ParameterTypeDefaultDescription
elementstrJOJOLTS element code
GET /api/jolts/by-industry Industry-level comparison for latest month
ParameterTypeDefaultDescription
elementstrJOJOLTS element code
GET /api/jolts/trends Monthly trend data (last 36 months)
ParameterTypeDefaultDescription
elementstrJOJOLTS element code
statestrFilter by state (2-letter code)

Market Signals Exclusive

Proprietary algorithms that cross-reference WARN layoffs, H-1B/LCA visa petitions, SEC filings, and bankruptcy data to surface patterns invisible in any single dataset. Cached for 6 hours.

GET /api/signals/talent-displacement Companies laying off while hiring visa workers

The Talent Displacement Index (TDI) identifies companies filing WARN layoff notices while simultaneously sponsoring H-1B/LCA visa petitions. A high TDI suggests workforce replacement rather than genuine downsizing. Formula: TDI = (LCA + H1B) / layoffs × log2(layoffs)

ParameterTypeDefaultDescription
monthsint6Lookback window in months
min_layoffsint50Minimum total layoffs to qualify
limitint50Max results
# Find companies with highest displacement signal curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/signals/talent-displacement?months=12&min_layoffs=50"
GET /api/signals/metro-contagion Cities with clustered multi-company layoffs

The Metro Contagion Score detects regional economic distress — cities where multiple unrelated companies are filing WARN notices within a tight window. Multi-industry contagion is the strongest warning sign. Formula: Score = companies² × log2(employees) / date_spread

ParameterTypeDefaultDescription
monthsint3Lookback window in months
min_companiesint3Minimum companies in metro
limitint50Max results
GET /api/signals/industry-domino Industries with cascading layoffs across states

The Industry Domino Index identifies systemic, industry-wide layoffs spreading across multiple states simultaneously. Cross-referenced with SEC restructuring filings and bankruptcies. Formula: Score = states × companies × log2(employees) / √date_spread

ParameterTypeDefaultDescription
monthsint3Lookback window in months
min_statesint3Minimum states affected
limitint30Max results
GET /api/signals/summary Top 5 from each signal index

Cross-Reference New

Endpoints that link data across multiple datasets. Combine WARN layoff notices, SEC 8-K filings, bankruptcy cases, and JOLTS labor turnover into a unified view of corporate distress.

GET /api/risk-signal Companies ranked by composite distress score

The golden signal: ranks companies by composite risk score across all 6 datasets. Combines WARN volume/recency, SEC layoff/restructuring filings, bankruptcy filings, and H-1B denial rates into a single score. Returns companies sorted by distress level: Critical (7+), Elevated (4-6), Moderate (2-3).

Use cases: Recruiters (target displaced workers), hedge funds (short candidates), lawyers (WARN violations), insurance agents (COBRA outreach), outplacement firms (timing is everything).

ParameterTypeDefaultDescription
statestring-Filter by state (2-letter code)
min_scoreint2Minimum risk score (1-10)
limitint50Max results (up to 500)
# Get top 20 companies with highest distress signal curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/risk-signal?min_score=4&limit=20" # Filter to California only curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/risk-signal?state=CA&min_score=3"
GET /api/market-pulse Single-call market snapshot across all 6 datasets

Returns a comprehensive market snapshot in one API call: WARN stats with 30-day trend direction (rising/falling/stable), top industries, at-risk companies, LCA/H-1B petition counts, DOL unemployment claims, SEC 8-K filing counts, bankruptcy totals, and JOLTS labor snapshot. Designed for dashboards, reports, and AI integrations that need the full picture fast.

# Get full market pulse in one call curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/market-pulse"
GET /api/state-intelligence/{state_code} Unified state profile combining all 6 datasets

Unified state profile combining all 6 datasets — WARN notices, LCA, H-1B, DOL claims, bankruptcies, and JOLTS. Returns a distress score with contributing signals, plus breakdowns for each dataset filtered to the requested state. One call gives you everything you need to assess a state's labor market health.

ParameterTypeDefaultDescription
state_codestring-2-letter state abbreviation (path parameter, required). E.g. CA, TX, NY.

Response fields: state, distress_score, distress_signals, warn (total, last_30d, top_industries, top_companies), lca (total_petitions, unique_employers, top_occupations), h1b (approvals, denials), dol_claims (latest_initial, latest_continued, week_ending), bankruptcies_warn_matched, jolts.

# Get full state intelligence for California curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/state-intelligence/CA" # Get state intelligence for Texas curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/state-intelligence/TX"
GET /api/risk-signal/company/{company_name} Risk score for a specific company

Get the composite risk signal for a single company. Returns the same scoring as the bulk endpoint but for one company — no minimum score threshold. Useful for embedding risk badges on company pages or building alerts.

Response fields: company, score, level (Critical/Elevated/Moderate/Low/None), factors (array), notice_count, employees_affected, latest_notice, states.

# Get risk signal for Amazon curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/risk-signal/company/Amazon"
GET /api/crossref/company-timeline/{company_name} Full distress timeline for a company

Returns a unified chronological timeline of all events for a company across all datasets: WARN layoff notices, SEC 8-K filings, bankruptcy cases, and JOLTS labor turnover. Uses fuzzy matching with SQL LIKE, so partial names work (e.g., "Amazon" matches "Amazon.com Services LLC"). Ideal for building company distress profiles.

Response fields: company (matched name), warn_notices (count), sec_filings (count), bankruptcy_cases (count), total_events, and a timeline array sorted by date descending. Each timeline event has a source field (warn, sec, or bankruptcy), a date, and source-specific fields (e.g., employees_affected for WARN, ticker/items for SEC, chapter/court for bankruptcy).

ParameterTypeDefaultDescription
company_namestring-Company name (path parameter, required). Uses fuzzy LIKE matching for partial names.
# Get full timeline: WARN + SEC + bankruptcy events for a company curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/crossref/company-timeline/WeWork" # Response includes events from all sources, sorted by date: # [ # {"source": "warn", "date": "2023-11-06", "company_name": "WeWork", ...}, # {"source": "sec", "date": "2023-11-06", "ticker": "WE", "items": "1.03,2.05", ...}, # {"source": "bankruptcy", "date": "2023-11-06", "chapter": "11", ...} # ]
GET /api/crossref/layoffs-vs-h1b WARN layoffs vs H-1B petitions comparison

Cross-references WARN layoff data with H-1B visa petition data. Shows companies or regions with both layoffs and active visa hiring.

GET /api/crossref/by-state Cross-reference data by state

Combines WARN notices, SEC filings, bankruptcy data, and JOLTS labor turnover by state for geographic analysis.

GET /api/crossref/by-city Cross-reference data by city

Combines WARN notices, SEC filings, bankruptcy data, and JOLTS labor turnover by city for local-level analysis.

GET /api/crossref/talent-pipeline Available talent by occupation from recent layoffs

Cross-references recent WARN notices with LCA visa petitions to show what occupations/skills each laid-off company was hiring for. Built for recruiters: find where skilled workers are becoming available and what roles they held.

ParameterTypeDefaultDescription
statestring-Filter by state (2-letter code)
soc_codestring-Filter by SOC occupation code (e.g. 15-1252)
daysint90Look back N days for WARN notices
limitint30Max results
# Find software engineers available from recent layoffs in California curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/crossref/talent-pipeline?state=CA&soc_code=15-1252"
GET /api/crossref/by-company Cross-reference data by company

Combines WARN notices, SEC filings, bankruptcy data, and JOLTS labor turnover by company. Returns companies with the most cross-dataset activity.

Common Use Cases

Track a public company's distress signals

# 1. Check recent WARN layoff filings curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/records?company=Bed+Bath" # 2. Check for SEC 8-K material events curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/sec-filings?company=Bed+Bath" # 3. Check for bankruptcy filings curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/bankruptcies?company=Bed+Bath" # Or get the complete timeline in one call: curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/crossref/company-timeline/Bed+Bath"

Monitor layoff-to-bankruptcy patterns

# Companies with both WARN notices AND bankruptcy filings curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/bankruptcies/warn-crossref?days=180" # Companies with both WARN notices AND 8-K material events curl -H "X-API-Key: YOUR_KEY" \ "https://warnfirehose.com/api/sec-filings/warn-crossref?days=90"

Python: build a company risk dashboard

import httpx headers = {"X-API-Key": "YOUR_KEY"} base = "https://warnfirehose.com/api" # Fetch all six data sources for a company company = "Amazon" warn = httpx.get(f"{base}/records?company={company}", headers=headers).json() sec = httpx.get(f"{base}/sec-filings?company={company}", headers=headers).json() bk = httpx.get(f"{base}/bankruptcies?company={company}", headers=headers).json() jolts = httpx.get(f"{base}/jolts/by-state?element=LD", headers=headers).json() timeline = httpx.get(f"{base}/crossref/company-timeline/{company}", headers=headers).json() print(f"WARN notices: {len(warn)}") print(f"SEC 8-K filings: {len(sec)}") print(f"Bankruptcy cases: {len(bk)}") print(f"JOLTS layoff data: {len(jolts)}") print(f"Total timeline events: {len(timeline)}")