Layoff Notices API
The Layoff Notices API returns official WARN Act layoff notices filed with state labor agencies as JSON: which employer is laying off workers or closing a site, where, how many workers are affected and when. Search over 68,000 notices from every state that publishes WARN notices, plus Washington, DC, by company, stock ticker, state, city, county, ZIP code and radius, date, number of workers and event type. New notices are added daily.
Every notice has the same fields, whichever state it was filed in: the employer as filed, the event type (layoff, closure, relocation and more), the notice and effective dates, the workers affected at each location, the industry and NAICS code, the reason and the union. Amended, rescinded and postponed notices are marked, and updated_since returns only new and changed notices, so you can keep a copy in sync.
Paid plans (Developer and above) add company matching (the company behind a notice, with its stock ticker, exchange, SEC CIK, website domain and parent company) and a link to the official notice document. They also get the full history, back to the 1990s for many states, and monthly and yearly totals. The free plan gets notices dated from January 1 of last year.
Use it to track layoffs at companies you sell to, invest in or recruit from, to watch suppliers and borrowers, or to chart job losses by state, county and industry.
Available endpoints:
- /v1/layoffnotices - Search layoff notices
- /v1/layoffstats - Notices and workers affected per month or year
- /v1/layoffcoverage - Covered states, agencies and history
Event Types
The event_type of each notice, also accepted by the event_type parameter.
| event_type | Meaning |
|---|---|
layoff | Workers are laid off. temporary is true for a temporary layoff. |
closure | A plant, store, office or other site closes. |
relocation | The work moves to another location. |
furlough | Workers are furloughed. |
reduced_hours | Working hours are cut. |
other | Another action named in the notice. |
unknown | The notice does not name the type of action. |
Notice Status
| status | Meaning |
|---|---|
filed | The notice as filed. |
amended | The employer filed an amendment, e.g. to change the dates, the sites or the number of workers. |
rescinded | The employer withdrew the notice. |
postponed | The layoff or closure was postponed. |
https://api.api-ninjas.com/v1/layoffnotices
Searches layoff notices by company, ticker, location, date, number of workers and event type, newest first. Combine any filters, e.g. every closure in Texas this year with at least 100 workers, or every notice within 25 miles of a ZIP code.
Parameters
All parameters are optional. Without any, the latest notices from every state are returned.
idoptionalA notice
idfrom an earlier response. Returns that notice.companyoptionalPart of the employer or company name, e.g.
exampleorexample manufacturing. Each word matches the start of a word in the name; case and legal suffixes such as Inc. and LLC are ignored.tickeroptionalCurrent stock ticker of the matched company or of its parent company, e.g.
EXMF. Returns the notices of the company and its subsidiaries.stateoptionalTwo-letter state code, or several separated by commas, e.g.
NYorCA,TX. UseDCfor Washington, DC.cityoptionalCity of an affected location, e.g.
Rochester(not case-sensitive).countyoptionalCounty of an affected location, with or without the word County or Parish, e.g.
Monroe.zipoptional5-digit ZIP code of an affected location. With
radius, the center of the search.radiusoptionalWith
zip: returns notices with an affected location within this many miles of the ZIP code (1-100).start_dateoptionalEarliest notice date (YYYY-MM-DD), inclusive. A notice without a
notice_dateis dated by the date the state received or posted it, or else by itseffective_date. On the free plan, January 1 of last year or later.end_dateoptionalLatest notice date (YYYY-MM-DD), inclusive.
min_workersoptionalOnly notices affecting at least this many workers, e.g.
100.event_typeoptionalOne or more event types, separated by commas, e.g.
closureorlayoff,closure.updated_sinceoptionalISO 8601 date or date-time, e.g.
2026-10-01T00:00:00Z. Only notices added or changed since then, to keep a copy in sync.sortoptionaldate(default, newest first) orworkers(most workers first).limitoptionalNumber of notices to return (1-100). Default
25.offsetoptionalNumber of notices to skip, for paging (0-10000). Default
0.
Headers
X-Api-KeyrequiredAPI Key associated with your account.
Response
The /v1/layoffnotices endpoint returns a JSON array of notices with the following fields (an empty array when nothing matches), or an error if the request is unsuccessful (see errors).
idUnique id of the notice, e.g.
NY-3b9e5f1c07a2. It does not change when the notice is updated; pass it asidto fetch the notice again.stateTwo-letter code of the state the notice was filed in.
agencyThe state agency that received the notice, e.g.
New York State Department of Labor.employerThe employer's name, as filed.
employer_dbaThe "doing business as" or site name in the notice, if any.
companyPremium onlyThe company the notice is matched to, with the fields below, or
nullwhen the employer is not matched to a company. The free plan receivesThis field is for premium subscribers only.company.nameThe company's name on the notice date.
company.tickerThe company's current stock ticker, e.g.
EXMF, when the company itself is listed. A ticker can change over time;cikdoes not.company.exchangeThe exchange the ticker trades on, e.g.
NYSEorNasdaq.company.cikThe company's SEC Central Index Key (CIK), without leading zeros, e.g.
320193.company.domainThe company's website domain, e.g.
example.com.company.parentWhen the employer is a subsidiary: its publicly traded parent company on the notice date, with
name,tickerandcik. Otherwisenull.company.match_confidencehighormedium.ticker,exchange,cikandparentare returned forhighmatches; formediummatches they arenull.event_typeThe action in the notice:
layoff,closure,relocation,furlough,reduced_hours,otherorunknown. See event types.temporarytruefor a temporary layoff,falsefor a permanent one,nullwhen the notice does not say.warn_noticetruefor a notice filed under the federal WARN Act or a state WARN law.falsefor a layoff the state reports below the WARN thresholds.nullwhen the state does not say.statusfiled,amended,rescindedorpostponed. See notice status.notice_dateDate of the notice (YYYY-MM-DD).
received_dateDate the agency received the notice (YYYY-MM-DD).
effective_dateDate the layoff or closure takes effect (YYYY-MM-DD).
effective_date_endFor a layoff that takes place over a period, e.g. in phases: its last date (YYYY-MM-DD).
date_precisionOnly for dates known to the month or year: each such date with
monthoryear, e.g.{"effective_date": "month"}. The date is then the first day of that month or year.nullwhen every date is exact.workersNumber of workers affected.
locationsEvery location in the notice, with the fields below.
locations[].addressStreet address, as filed.
locations[].city, locations[].county, locations[].zipCity, county and 5-digit ZIP code.
locations[].stateTwo-letter state code of an affected site.
locations[].workersNumber of workers affected at the location.
locations[].typesite(an affected workplace),headquarters(the employer's headquarters address given in the notice) ornullwhen the notice does not say.naicsNAICS industry code, 2 to 6 digits, as a string, e.g.
333314.industryIndustry, e.g.
Manufacturing.unionThe union representing the affected workers, or whether they have one, as given in the notice.
reasonThe reason given for the layoff, e.g.
EconomicorLoss of contract.notice_urlPremium onlyLink to the official notice document. The free plan receives
This field is for premium subscribers only.first_seenDate the notice was added to the API (YYYY-MM-DD).
updatedWhen any field of the notice last changed (ISO 8601, UTC). Use it with
updated_since.
Live Demo
Get a free API key to get started — no credit card required.
Code Examples
curl -X GET "https://api.api-ninjas.com/v1/layoffnotices?state=NY&min_workers=100" \
-H "X-Api-Key: YOUR_API_KEY"Premium only
https://api.api-ninjas.com/v1/layoffstats
Returns the number of layoff notices and workers affected per month or per year, nationally or for one state, counted by notice date. Use it for charts and trend lines without paging through notices. Available on paid plans (Developer and above).
Parameters
stateoptionalTwo-letter state code, e.g.
CA. Default: national totals.start_monthoptionalFirst month (YYYY-MM). Default: January of last year.
end_monthoptionalLast month (YYYY-MM). Default: the current month.
periodoptionalmonth(default) oryear.
Headers
X-Api-KeyrequiredAPI Key associated with your account.
Response
The /v1/layoffstats endpoint returns a JSON object with the following fields, or an error if the request is unsuccessful (see errors).
stateThe state, or
nullfor national totals.periodmonthoryear.resultsOne entry per month or year, oldest first. Periods without notices are not listed.
results[].periodThe month (
2026-01) or year (2026).results[].noticesNumber of notices dated in the period.
results[].workersTotal workers affected by those notices.
Live Demo
Get a free API key to get started — no credit card required.
Code Examples
curl -X GET "https://api.api-ninjas.com/v1/layoffstats?state=CA&start_month=2026-01&end_month=2026-06" \
-H "X-Api-Key: YOUR_API_KEY"https://api.api-ninjas.com/v1/layoffcoverage
Lists every covered state with the agency that receives its notices, the date of its earliest notice, its latest notice date and its number of notices. Available on every plan.
Parameters
stateoptionalTwo-letter state code, e.g.
CA. Default: every state.
Headers
X-Api-KeyrequiredAPI Key associated with your account.
Response
The /v1/layoffcoverage endpoint returns a JSON array with one entry per state, with the following fields, or an error if the request is unsuccessful.
stateTwo-letter state code.
agencyThe state agency that receives WARN notices.
history_fromDate of the state's earliest notice (YYYY-MM-DD).
latest_notice_dateDate of the state's latest notice (YYYY-MM-DD).
noticesNumber of notices from the state.
Live Demo
Code Examples
curl -X GET "https://api.api-ninjas.com/v1/layoffcoverage?state=CA" \
-H "X-Api-Key: YOUR_API_KEY"Errors
An invalid request returns HTTP 400 with a JSON body holding a readable error message, e.g. {"error": "radius requires zip."}. Authentication and quota errors use the standard format described in error codes.
| Cause | Example error |
|---|---|
| An unknown parameter | Unknown parameter: foo. |
A value that is not valid, e.g. state=XX | Invalid state. Use two-letter US state codes, e.g. CA or CA,TX. |
A number out of range, e.g. limit=500 | Invalid limit. Must be an integer from 1 to 100. |
radius without zip | radius requires zip. |
A start_date before January 1 of last year on the free plan | Notices before 2025-01-01 are available on paid plans. |
/v1/layoffstats on the free plan | This endpoint is available on Developer plans and above. |
Frequently Asked Questions
Can I use the Layoff Notices API for commercial purposes?
Yes, but you must have a premium subscription. Commercial use of the Layoff Notices API is not permitted on the free tier. See our pricing page to choose a plan that fits your needs.How do I get an API key and start using the Layoff Notices API?
Sign up for a free account to instantly get your API key, then pass it in theX-Api-Keyheader on every request. The documentation above includes ready-to-run examples in cURL, Python, JavaScript, Node.js, and more.What happens if I exceed my quota for the month?
Your API requests will simply be denied once you hit your monthly quota — you will never be charged more than the plan you signed up for. To increase your quota, you can upgrade your plan any time on our pricing page.What happens if a request to the Layoff Notices API fails?
The API responds with a standard HTTP status code and a JSON error message describing the problem. See our error codes reference for the full list of codes and how to resolve each one, or contact support if you need help.What is a WARN notice?
Under the federal Worker Adjustment and Retraining Notification (WARN) Act, employers with 100 or more employees generally must give 60 days' written notice of a plant closing or mass layoff, including to the state. Several states, such as California, New York and New Jersey, have their own WARN laws with lower thresholds or longer notice periods. Because notices are filed before the layoffs take effect, they are one of the earliest public signals of job cuts. The Layoff Notices API returns these official notices, filed with state labor agencies, as JSON.Which states does the Layoff Notices API cover?
Every state that publishes WARN notices, plus Washington, DC, with over 68,000 notices in all, updated daily./v1/layoffcoveragelists each state with the agency that receives its notices, the date of its earliest notice, its latest notice date and its number of notices.How do I find layoffs at a specific company?
Pass part of the name ascompany, e.g./v1/layoffnotices?company=example manufacturing; each word matches the start of a word in the employer or company name. On paid plans, notices are matched to the company behind them, with its stock ticker, exchange, SEC CIK, website domain and parent company, so you can also search bytickerand join notices to your own company data.How do I find layoffs near a location?
Filter bystate(one or several, e.g.CA,TX),city,countyorzip. Addradius(1-100 miles) to azipto get every notice with an affected location within that distance, e.g./v1/layoffnotices?zip=14623&radius=25. Combine them withstart_date,end_date,min_workersandevent_type, and usesort=workersto see the largest layoffs first.How do I keep my copy of the notices up to date?
Store each notice by itsid, which does not change when a notice is updated, and call/v1/layoffnotices?updated_since=2026-10-01T00:00:00Zwith the time of your last sync to get only new and changed notices.statustells you when a notice has beenamended,rescindedorpostponed.What do the free and paid plans include?
The free plan gets notices dated from January 1 of last year, with every field exceptcompanyandnotice_url, and/v1/layoffcoverage. Paid plans (Developer and above) get the full history, back to the 1990s for many states, company matching, links to the official notice documents and/v1/layoffstatsfor monthly and yearly totals.
Explore API integration use cases for recommended APIs and workflow examples.