---
type: "firecrawl-provider"
description: "US Bureau of Labor Statistics time series: list surveys, discover series ids (curated Top Picks and full flat-file catalogs), read a series catalog page, and retrieve employment, wage, price and inflation observations from the keyless public API; plus QCEW Open Data CSV slices (county, state, MSA and national employment and wages by ownership, industry and establishment size) with a version check, paged listing and single-cell lookup."
use_when: "US Bureau of Labor Statistics time series: list surveys, discover series ids (curated Top Picks and full flat-file catalogs), read a series catalog page, and retrieve employment, wage, price and inflation observations from the keyless public API; plus QCEW Open Data CSV slices (county, state, MSA and national employment and wages by ownership, industry and establishment size) with a version check, paged listing and single-cell lookup."
categories: "Public records"
capabilities: 10
credits_per_call: 5
---
# BLS labor statistics on Firecrawl Alexandria

US Bureau of Labor Statistics time series: list surveys, discover series ids (curated Top Picks and full flat-file catalogs), read a series catalog page, and retrieve employment, wage, price and inflation observations from the keyless public API; plus QCEW Open Data CSV slices (county, state, MSA and national employment and wages by ownership, industry and establishment size) with a version check, paged listing and single-cell lookup.

- Categories: Public records
- Category index: [Public records category](https://alexandria.firecrawl.dev/agents/categories/public-records)
- Provider key: `bls-gov`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://www.firecrawl.dev/app/alexandria/bls-gov)
- [OpenAPI spec](https://alexandria.firecrawl.dev/agents/providers/bls-gov/openapi.json)

## Capabilities

- [Bls cpi](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_cpi): Consumer Price Index for All Urban Consumers (CPI-U) for one expenditure category (all_items, core, food, energy, gasoline, shelter, rent, apparel, medical_care, ...) and area (U.S. city average by default), over an optional year window of at most 10 years (the latest 3 years when omitted). Returns the index observations with the resolved BLS series id (CUUR/CUSR + area + item).
- [Bls series](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_series): Observations for 1-25 BLS series ids (LNS14000000 unemployment rate, CUUR0000SA0 CPI-U all items, CES0000000001 nonfarm payrolls, CES0500000003 private average hourly earnings, LAUCN060370000000003 Los Angeles County unemployment) from the public API: an optional year window of at most 10 years (the latest 3 years when omitted), or `latest` for the newest observation only. Values are numeric with the source string kept in raw_value; ids BLS does not know come back with exists=false, and a request where none exist is not_found.
- [Bls series detail](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_series_detail): The data.bls.gov catalog page of one series: survey name, series title, seasonal adjustment and the survey-specific catalog labels (area, item, industry, ...), plus the year-by-period observation table for the requested window (the site's default of the latest 10 years, an explicit `start_year`/`end_year`, or `all_years`). Values keep the site's footnote markers in `raw_value`.
- [Bls series search](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_series_search): Find BLS series ids by keyword inside one survey's full flat-file catalog (download.bls.gov <survey>.series: every published series with its title, dimension codes, seasonal flag and first/last period). Every whitespace-separated word of `query` must appear (case-insensitive) in the series id, title or codes. Paged locally with `offset`; `total_matches` counts every match.
- [Bls surveys](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_surveys): List every BLS survey the public API serves (2-letter abbreviation and name, about 70 rows), or with `survey` the metadata of one survey: whether it allows net-change and percent-change calculations and publishes annual averages. The abbreviation is the first two letters of every series id and the key for bls_top_picks and bls_series_search.
- [Bls top picks](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_top_picks): BLS Top Picks: the curated series list data.bls.gov shows for one survey (Consumer Price Index items, payroll employment industries, state and metro unemployment, ...). Returns human-readable names with the series ids behind them; state-level surveys (LA, SM) accept a 2-digit state FIPS code to narrow the list to one state. Paged locally with `offset`.
- [Bls unemployment rate](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_unemployment_rate): Unemployment rate (percent) for the nation, a state (2-digit FIPS) or a county (state + 3-digit county FIPS) from the Current Population Survey (LNS14000000 / LNU04000000) and Local Area Unemployment Statistics (LASST.., LAUST.., LAUCN..), over an optional year window of at most 10 years (the latest 3 years when omitted). Nation and state default to seasonally adjusted; counties are published not seasonally adjusted only.
- [Qcew get](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/qcew_get): One QCEW cell (records/get): fetches the area slice `/cew/data/api/{year}/{qtr}/area/{area_fips}.csv` and selects the row by own_code, industry_code and size_code (default 0; add agglvl_code if the tuple is ever ambiguous). Suppressed measures are null; titles are joined. Missing row or unknown area is `not_found`; an unpublished period is `not_found` with issue code `not_published`.
- [Qcew list](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/qcew_list): QCEW Open Data rows (records/list): one whole CSV slice per call, `/cew/data/api/{year}/{qtr}/{area|industry|size}/{code}.csv` (area slice: every ownership x industry x aggregation level for one area; industry slice: every area for one industry; size slice: Q1 only, private ownership by establishment size class), paged from memory with `limit` rows per page. The cursor pins the slice's ETag: a page whose slice was re-published since (BLS revises prior quarters) fails with `invalid_input` at `/cursor` and issue code `publication_changed` instead of mixing versions. Codes stay strings; `disclosure_code` N rows carry null employment and wage measures (never 0) while the establishment count stays. Titles from area_titles.csv and industry_titles.csv (fetched) and the ownership, aggregation-level and size code books (embedded) are joined unless `include_titles` is false. `titles` alone lists a code book instead (area 9,459 rows, industry 2,678).
- [Qcew status](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/qcew_status): QCEW Open Data version check (source/status): the newest published quarter and annual-average year from data.bls.gov/cew/apps/ref/year_qtr_info.csv, each with the ETag, Last-Modified and byte size of its national area slice (US000.csv) read with a one-byte ranged GET; `publication_id` is `<year>:<qtr>:<ETag>`. With `year` and `qtr` it checks that one period instead; an unpublished period (2026/2 until the 2026-12-02 release) is `not_found` with issue code `not_published`.

## 1. Choose this provider when

US Bureau of Labor Statistics time series: list surveys, discover series ids (curated Top Picks and full flat-file catalogs), read a series catalog page, and retrieve employment, wage, price and inflation observations from the keyless public API; plus QCEW Open Data CSV slices (county, state, MSA and national employment and wages by ownership, industry and establishment size) with a version check, paged listing and single-cell lookup.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "bls-gov",
  "capability": "economic-statistics/bls_cpi",
  "options": {
    "category": "food",
    "end_year": 2026,
    "start_year": 2025
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `area_code` (string): BLS CPI area code: 0000 U.S. city average, 0100 Northeast, 0200 Midwest, 0300 South, 0400 West, S49A Los Angeles, S12A New York, S23A Chicago, S37B Houston, S49B San Francisco. Pattern: ^[A-Za-z0-9]{4}$. Example: `0000`
- `category` (string, required): CPI-U expenditure category. Example: `all_items`
- `end_year` (number): end_year Example: `1900`
- `seasonally_adjusted` (boolean): Seasonally adjusted (CUSR) instead of unadjusted (CUUR). Only available for area_code 0000. Example: `false`
- `start_year` (number): start_year Example: `1900`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "bls-gov",
    capability: "economic-statistics/bls_cpi",
    options: {
      category: "food",
      end_year: 2026,
      start_year: 2025,
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "bls-gov",
  "capability": "economic-statistics/bls_cpi",
  "options": {
    "category": "food",
    "end_year": 2026,
    "start_year": 2025
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "bls-gov",
    "capability": "economic-statistics/bls_cpi",
    "options": {
      "category": "food",
      "end_year": 2026,
      "start_year": 2025
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'bls-gov/economic-statistics/bls_cpi' \
  --options '{"category":"food","end_year":2026,"start_year":2025}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "bls-gov",
  "capability": "economic-statistics/bls_cpi",
  "options": {
    "category": "food",
    "end_year": 2026,
    "start_year": 2025
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "bls-gov",
  "capability": "economic-statistics/bls_cpi",
  "options": {
    "category": "food",
    "end_year": 2026,
    "start_year": 2025
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "area_code": "0000",
  "category": "food",
  "count": 20,
  "exists": true,
  "first_date": "2025-01-01",
  "item_code": "SAF1",
  "item_name": "Food",
  "last_date": "2026-08-01",
  "latest": {
    "date": "2026-08-01",
    "footnotes": [],
    "latest": true,
    "period": "M08",
    "period_name": "August",
    "raw_value": "350.418",
    "value": 350.418,
    "year": 2026
  },
  "messages": [],
  "observations": [
    {
      "date": "2025-01-01",
      "footnotes": [],
      "latest": false,
      "period": "M01",
      "period_name": "January",
      "raw_value": "335.517",
      "value": 335.517,
      "year": 2025
    },
    {
      "date": "2025-02-01",
      "footnotes": [],
      "latest": false,
      "period": "M02",
      "period_name": "February",
      "raw_value": "336.274",
      "value": 336.274,
      "year": 2025
    },
    {
      "date": "2025-03-01",
      "footnotes": [],
      "latest": false,
      "period": "M03",
      "period_name": "March",
      "raw_value": "337.751",
      "value": 337.751,
      "year": 2025
    },
    {
      "date": "2025-04-01",
      "footnotes": [],
      "latest": false,
      "period": "M04",
      "period_name": "April",
      "raw_value": "337.747",
      "value": 337.747,
      "year": 2025
    },
    {
      "date": "2025-05-01",
      "footnotes": [],
      "latest": false,
      "period": "M05",
      "period_name": "May",
      "raw_value": "338.598",
      "value": 338.598,
      "year": 2025
    },
    {
      "date": "2025-06-01",
      "footnotes": [],
      "latest": false,
      "period": "M06",
      "period_name": "June",
      "raw_value": "339.498",
      "value": 339.498,
      "year": 2025
    },
    {
      "date": "2025-07-01",
      "footnotes": [],
      "latest": false,
      "period": "M07",
      "period_name": "July",
      "raw_value": "340.036",
      "value": 340.036,
      "year": 2025
    },
    {
      "date": "2025-08-01",
      "footnotes": [],
      "latest": false,
      "period": "M08",
      "period_name": "August",
      "raw_value": "341.295",
      "value": 341.295,
      "year": 2025
    },
    {
      "date": "2025-09-01",
      "footnotes": [],
      "latest": false,
      "period": "M09",
      "period_name": "September",
      "raw_value": "342.405",
      "value": 342.405,
      "year": 2025
    },
    {
      "date": "2025-10-01",
      "footnotes": [
        "X: Data unavailable due to the 2025 lapse in appropriations"
      ],
      "latest": false,
      "period": "M10",
      "period_name": "October",
      "raw_value": "-",
      "value": null,
      "year": 2025
    },
    {
      "date": "2025-11-01",
      "footnotes": [],
      "latest": false,
      "period": "M11",
      "period_name": "November",
      "raw_value": "341.721",
      "value": 341.721,
      "year": 2025
    },
    {
      "date": "2025-12-01",
      "footnotes": [],
      "latest": false,
      "period": "M12",
      "period_name": "December",
      "raw_value": "343.795",
      "value": 343.795,
      "year": 2025
    },
    {
      "date": "2026-01-01",
      "footnotes": [],
      "latest": false,
      "period": "M01",
      "period_name": "January",
      "raw_value": "345.165",
      "value": 345.165,
      "year": 2026
    },
    {
      "date": "2026-02-01",
      "footnotes": [],
      "latest": false,
      "period": "M02",
      "period_name": "February",
      "raw_value": "346.564",
      "value": 346.564,
      "year": 2026
    },
    {
      "date": "2026-03-01",
      "footnotes": [],
      "latest": false,
      "period": "M03",
      "period_name": "March",
      "raw_value": "346.796",
      "value": 346.796,
      "year": 2026
    },
    {
      "date": "2026-04-01",
      "footnotes": [],
      "latest": false,
      "period": "M04",
      "period_name": "April",
      "raw_value": "348.499",
      "value": 348.499,
      "year": 2026
    },
    {
      "date": "2026-05-01",
      "footnotes": [],
      "latest": false,
      "period": "M05",
      "period_name": "May",
      "raw_value": "349.032",
      "value": 349.032,
      "year": 2026
    },
    {
      "date": "2026-06-01",
      "footnotes": [],
      "latest": false,
      "period": "M06",
      "period_name": "June",
      "raw_value": "349.731",
      "value": 349.731,
      "year": 2026
    },
    {
      "date": "2026-07-01",
      "footnotes": [],
      "latest": false,
      "period": "M07",
      "period_name": "July",
      "raw_value": "350.164",
      "value": 350.164,
      "year": 2026
    },
    {
      "date": "2026-08-01",
      "footnotes": [],
      "latest": true,
      "period": "M08",
      "period_name": "August",
      "raw_value": "350.418",
      "value": 350.418,
      "year": 2026
    }
  ],
  "observed_at_ms": 1790283458256,
  "seasonally_adjusted": false,
  "series_id": "CUUR0000SAF1",
  "source_url": "https://data.bls.gov/timeseries/CUUR0000SAF1",
  "units": "index (1982-84=100 unless the item footnotes say otherwise)"
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Bls cpi

- Capability: `economic-statistics/bls_cpi`
- Description: Consumer Price Index for All Urban Consumers (CPI-U) for one expenditure category (all_items, core, food, energy, gasoline, shelter, rent, apparel, medical_care, ...) and area (U.S. city average by default), over an optional year window of at most 10 years (the latest 3 years when omitted). Returns the index observations with the resolved BLS series id (CUUR/CUSR + area + item).
- Instructions: A direct inflation lookup by category; for other CPI items or percent changes use bls_series_search on survey cu and bls_series.
- Cost: 5 credits per call
- Capability file: [Bls cpi](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_cpi)

Accepted options:
- `area_code` (string): BLS CPI area code: 0000 U.S. city average, 0100 Northeast, 0200 Midwest, 0300 South, 0400 West, S49A Los Angeles, S12A New York, S23A Chicago, S37B Houston, S49B San Francisco. Pattern: ^[A-Za-z0-9]{4}$. Example: `0000`
- `category` (string, required): CPI-U expenditure category. Example: `all_items`
- `end_year` (number): end_year Example: `1900`
- `seasonally_adjusted` (boolean): Seasonally adjusted (CUSR) instead of unadjusted (CUUR). Only available for area_code 0000. Example: `false`
- `start_year` (number): start_year Example: `1900`

Response schema example:
```json
{
  "area_code": "0000",
  "category": "food",
  "count": 20,
  "exists": true,
  "first_date": "2025-01-01",
  "item_code": "SAF1",
  "item_name": "Food",
  "last_date": "2026-08-01",
  "latest": {
    "date": "2026-08-01",
    "footnotes": [],
    "latest": true,
    "period": "M08",
    "period_name": "August",
    "raw_value": "350.418",
    "value": 350.418,
    "year": 2026
  },
  "messages": [],
  "observations": [
    {
      "date": "2025-01-01",
      "footnotes": [],
      "latest": false,
      "period": "M01",
      "period_name": "January",
      "raw_value": "335.517",
      "value": 335.517,
      "year": 2025
    },
    {
      "date": "2025-02-01",
      "footnotes": [],
      "latest": false,
      "period": "M02",
      "period_name": "February",
      "raw_value": "336.274",
      "value": 336.274,
      "year": 2025
    },
    {
      "date": "2025-03-01",
      "footnotes": [],
      "latest": false,
      "period": "M03",
      "period_name": "March",
      "raw_value": "337.751",
      "value": 337.751,
      "year": 2025
    },
    {
      "date": "2025-04-01",
      "footnotes": [],
      "latest": false,
      "period": "M04",
      "period_name": "April",
      "raw_value": "337.747",
      "value": 337.747,
      "year": 2025
    },
    {
      "date": "2025-05-01",
      "footnotes": [],
      "latest": false,
      "period": "M05",
      "period_name": "May",
      "raw_value": "338.598",
      "value": 338.598,
      "year": 2025
    },
    {
      "date": "2025-06-01",
      "footnotes": [],
      "latest": false,
      "period": "M06",
      "period_name": "June",
      "raw_value": "339.498",
      "value": 339.498,
      "year": 2025
    },
    {
      "date": "2025-07-01",
      "footnotes": [],
      "latest": false,
      "period": "M07",
      "period_name": "July",
      "raw_value": "340.036",
      "value": 340.036,
      "year": 2025
    },
    {
      "date": "2025-08-01",
      "footnotes": [],
      "latest": false,
      "period": "M08",
      "period_name": "August",
      "raw_value": "341.295",
      "value": 341.295,
      "year": 2025
    },
    {
      "date": "2025-09-01",
      "footnotes": [],
      "latest": false,
      "period": "M09",
      "period_name": "September",
      "raw_value": "342.405",
      "value": 342.405,
      "year": 2025
    },
    {
      "date": "2025-10-01",
      "footnotes": [
        "X: Data unavailable due to the 2025 lapse in appropriations"
      ],
      "latest": false,
      "period": "M10",
      "period_name": "October",
      "raw_value": "-",
      "value": null,
      "year": 2025
    },
    {
      "date": "2025-11-01",
      "footnotes": [],
      "latest": false,
      "period": "M11",
      "period_name": "November",
      "raw_value": "341.721",
      "value": 341.721,
      "year": 2025
    },
    {
      "date": "2025-12-01",
      "footnotes": [],
      "latest": false,
      "period": "M12",
      "period_name": "December",
      "raw_value": "343.795",
      "value": 343.795,
      "year": 2025
    },
    {
      "date": "2026-01-01",
      "footnotes": [],
      "latest": false,
      "period": "M01",
      "period_name": "January",
      "raw_value": "345.165",
      "value": 345.165,
      "year": 2026
    },
    {
      "date": "2026-02-01",
      "footnotes": [],
      "latest": false,
      "period": "M02",
      "period_name": "February",
      "raw_value": "346.564",
      "value": 346.564,
      "year": 2026
    },
    {
      "date": "2026-03-01",
      "footnotes": [],
      "latest": false,
      "period": "M03",
      "period_name": "March",
      "raw_value": "346.796",
      "value": 346.796,
      "year": 2026
    },
    {
      "date": "2026-04-01",
      "footnotes": [],
      "latest": false,
      "period": "M04",
      "period_name": "April",
      "raw_value": "348.499",
      "value": 348.499,
      "year": 2026
    },
    {
      "date": "2026-05-01",
      "footnotes": [],
      "latest": false,
      "period": "M05",
      "period_name": "May",
      "raw_value": "349.032",
      "value": 349.032,
      "year": 2026
    },
    {
      "date": "2026-06-01",
      "footnotes": [],
      "latest": false,
      "period": "M06",
      "period_name": "June",
      "raw_value": "349.731",
      "value": 349.731,
      "year": 2026
    },
    {
      "date": "2026-07-01",
      "footnotes": [],
      "latest": false,
      "period": "M07",
      "period_name": "July",
      "raw_value": "350.164",
      "value": 350.164,
      "year": 2026
    },
    {
      "date": "2026-08-01",
      "footnotes": [],
      "latest": true,
      "period": "M08",
      "period_name": "August",
      "raw_value": "350.418",
      "value": 350.418,
      "year": 2026
    }
  ],
  "observed_at_ms": 1790283458256,
  "seasonally_adjusted": false,
  "series_id": "CUUR0000SAF1",
  "source_url": "https://data.bls.gov/timeseries/CUUR0000SAF1",
  "units": "index (1982-84=100 unless the item footnotes say otherwise)"
}
```

### Bls series

- Capability: `economic-statistics/bls_series`
- Description: Observations for 1-25 BLS series ids (LNS14000000 unemployment rate, CUUR0000SA0 CPI-U all items, CES0000000001 nonfarm payrolls, CES0500000003 private average hourly earnings, LAUCN060370000000003 Los Angeles County unemployment) from the public API: an optional year window of at most 10 years (the latest 3 years when omitted), or `latest` for the newest observation only. Values are numeric with the source string kept in raw_value; ids BLS does not know come back with exists=false, and a request where none exist is not_found.
- Instructions: Retrieving the numbers once the series ids are known (from bls_top_picks, bls_series_search or the id conventions). The unregistered API allows 25 queries per day per address; the failure is upstream_rate_limited.
- Cost: 5 credits per call
- Capability file: [Bls series](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_series)

Accepted options:
- `annual_average` (boolean): Also return annual averages (period M13) for surveys that publish them. Example: `false`
- `end_year` (number): Last year; requires start_year. Example: `1900`
- `latest` (boolean): Only the newest observation of each series. Not combined with a year window. Example: `false`
- `series_ids` (string[], required): BLS series ids as shown on data.bls.gov/timeseries/<id>. Example: `[]`
- `start_year` (number): First year; requires end_year, at most 10 years apart. Example: `1900`

Response schema example:
```json
{
  "count": 2,
  "messages": [],
  "observed_at_ms": 1790283428642,
  "request": {
    "annual_average": false,
    "end_year": null,
    "latest": true,
    "series_ids": [
      "LNS14000000",
      "CUUR0000SA0"
    ],
    "start_year": null,
    "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/"
  },
  "series": [
    {
      "count": 1,
      "exists": true,
      "first_date": "2026-08-01",
      "last_date": "2026-08-01",
      "latest": {
        "date": "2026-08-01",
        "footnotes": [],
        "latest": true,
        "period": "M08",
        "period_name": "August",
        "raw_value": "4.1",
        "value": 4.1,
        "year": 2026
      },
      "observations": [
        {
          "date": "2026-08-01",
          "footnotes": [],
          "latest": true,
          "period": "M08",
          "period_name": "August",
          "raw_value": "4.1",
          "value": 4.1,
          "year": 2026
        }
      ],
      "series_id": "LNS14000000",
      "source_url": "https://data.bls.gov/timeseries/LNS14000000"
    },
    {
      "count": 1,
      "exists": true,
      "first_date": "2026-08-01",
      "last_date": "2026-08-01",
      "latest": {
        "date": "2026-08-01",
        "footnotes": [],
        "latest": true,
        "period": "M08",
        "period_name": "August",
        "raw_value": "334.980",
        "value": 334.98,
        "year": 2026
      },
      "observations": [
        {
          "date": "2026-08-01",
          "footnotes": [],
          "latest": true,
          "period": "M08",
          "period_name": "August",
          "raw_value": "334.980",
          "value": 334.98,
          "year": 2026
        }
      ],
      "series_id": "CUUR0000SA0",
      "source_url": "https://data.bls.gov/timeseries/CUUR0000SA0"
    }
  ],
  "source_url": "https://api.bls.gov/publicAPI/v2/timeseries/data/"
}
```

### Bls series detail

- Capability: `economic-statistics/bls_series_detail`
- Description: The data.bls.gov catalog page of one series: survey name, series title, seasonal adjustment and the survey-specific catalog labels (area, item, industry, ...), plus the year-by-period observation table for the requested window (the site's default of the latest 10 years, an explicit `start_year`/`end_year`, or `all_years`). Values keep the site's footnote markers in `raw_value`.
- Instructions: To learn what a series id means (its labels) without an API key, or to read history older than the API's 10-year window. For many series at once use bls_series.
- Cost: 5 credits per call
- Capability file: [Bls series detail](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_series_detail)

Accepted options:
- `all_years` (boolean): Return the whole published history instead of the latest 10 years. Not combined with start_year/end_year. Example: `false`
- `end_year` (number): Last year of the table; requires start_year. Example: `1900`
- `series_id` (string, required): BLS series id (LNS14000000, CUUR0000SA0, CES0000000001, LAUST060000000000003) or a pasted https://data.bls.gov/timeseries/<id> URL. Example: `<series_id>`
- `start_year` (number): First year of the table; requires end_year. Example: `1900`

Response schema example:
```json
{
  "catalog": [
    {
      "label": "Series Id",
      "value": "LNS14000000"
    },
    {
      "label": "Adjustment",
      "value": "Seasonally Adjusted"
    },
    {
      "label": "Series title",
      "value": "(Seas) Unemployment Rate"
    },
    {
      "label": "Labor force status",
      "value": "Unemployment rate"
    },
    {
      "label": "Type of data",
      "value": "Percent or rate"
    },
    {
      "label": "Age",
      "value": "16 years and over"
    }
  ],
  "columns": [
    "Jan",
    "Feb",
    "Mar",
    "Apr",
    "May",
    "Jun",
    "Jul",
    "Aug",
    "Sep",
    "Oct",
    "Nov",
    "Dec"
  ],
  "count": 32,
  "first_year": 2024,
  "footnotes": [
    {
      "code": "9",
      "text": "Data unavailable due to the 2025 lapse in appropriations."
    },
    {
      "code": "12",
      "text": "January 2026 estimates were revised to incorporate updated population controls. For more information, see www.bls.gov/cps/documentation.htm#pop."
    }
  ],
  "last_year": 2026,
  "observations": [
    {
      "footnote_codes": [],
      "period": "M01",
      "period_label": "Jan",
      "raw_value": "3.7",
      "value": 3.7,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M02",
      "period_label": "Feb",
      "raw_value": "3.9",
      "value": 3.9,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M03",
      "period_label": "Mar",
      "raw_value": "3.9",
      "value": 3.9,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M04",
      "period_label": "Apr",
      "raw_value": "3.9",
      "value": 3.9,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M05",
      "period_label": "May",
      "raw_value": "3.9",
      "value": 3.9,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M06",
      "period_label": "Jun",
      "raw_value": "4.1",
      "value": 4.1,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M07",
      "period_label": "Jul",
      "raw_value": "4.2",
      "value": 4.2,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M08",
      "period_label": "Aug",
      "raw_value": "4.2",
      "value": 4.2,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M09",
      "period_label": "Sep",
      "raw_value": "4.1",
      "value": 4.1,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M10",
      "period_label": "Oct",
      "raw_value": "4.1",
      "value": 4.1,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M11",
      "period_label": "Nov",
      "raw_value": "4.2",
      "value": 4.2,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M12",
      "period_label": "Dec",
      "raw_value": "4.1",
      "value": 4.1,
      "year": 2024
    },
    {
      "footnote_codes": [],
      "period": "M01",
      "period_label": "Jan",
      "raw_value": "4.0",
      "value": 4,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M02",
      "period_label": "Feb",
      "raw_value": "4.2",
      "value": 4.2,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M03",
      "period_label": "Mar",
      "raw_value": "4.2",
      "value": 4.2,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M04",
      "period_label": "Apr",
      "raw_value": "4.2",
      "value": 4.2,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M05",
      "period_label": "May",
      "raw_value": "4.3",
      "value": 4.3,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M06",
      "period_label": "Jun",
      "raw_value": "4.1",
      "value": 4.1,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M07",
      "period_label": "Jul",
      "raw_value": "4.3",
      "value": 4.3,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M08",
      "period_label": "Aug",
      "raw_value": "4.3",
      "value": 4.3,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M09",
      "period_label": "Sep",
      "raw_value": "4.4",
      "value": 4.4,
      "year": 2025
    },
    {
      "footnote_codes": [
        "9"
      ],
      "period": "M10",
      "period_label": "Oct",
      "raw_value": "-(9)",
      "value": null,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M11",
      "period_label": "Nov",
      "raw_value": "4.5",
      "value": 4.5,
      "year": 2025
    },
    {
      "footnote_codes": [],
      "period": "M12",
      "period_label": "Dec",
      "raw_value": "4.4",
      "value": 4.4,
      "year": 2025
    },
    {
      "footnote_codes": [
        "12"
      ],
      "period": "M01",
      "period_label": "Jan",
      "raw_value": "4.3(12)",
      "value": 4.3,
      "year": 2026
    },
    {
      "footnote_codes": [],
      "period": "M02",
      "period_label": "Feb",
      "raw_value": "4.4",
      "value": 4.4,
      "year": 2026
    },
    {
      "footnote_codes": [],
      "period": "M03",
      "period_label": "Mar",
      "raw_value": "4.3",
      "value": 4.3,
      "year": 2026
    },
    {
      "footnote_codes": [],
      "period": "M04",
      "period_label": "Apr",
      "raw_value": "4.3",
      "value": 4.3,
      "year": 2026
    },
    {
      "footnote_codes": [],
      "period": "M05",
      "period_label": "May",
      "raw_value": "4.3",
      "value": 4.3,
      "year": 2026
    },
    {
      "footnote_codes": [],
      "period": "M06",
      "period_label": "Jun",
      "raw_value": "4.2",
      "value": 4.2,
      "year": 2026
    },
    {
      "footnote_codes": [],
      "period": "M07",
      "period_label": "Jul",
      "raw_value": "4.1",
      "value": 4.1,
      "year": 2026
    },
    {
      "footnote_codes": [],
      "period": "M08",
      "period_label": "Aug",
      "raw_value": "4.1",
      "value": 4.1,
      "year": 2026
    }
  ],
  "observed_at_ms": 1790283406694,
  "seasonally_adjusted": true,
  "series_id": "LNS14000000",
  "source_url": "https://data.bls.gov/timeseries/LNS14000000",
  "survey_name": "Labor Force Statistics from the Current Population Survey",
  "title": "(Seas) Unemployment Rate"
}
```

### Bls series search

- Capability: `economic-statistics/bls_series_search`
- Description: Find BLS series ids by keyword inside one survey's full flat-file catalog (download.bls.gov <survey>.series: every published series with its title, dimension codes, seasonal flag and first/last period). Every whitespace-separated word of `query` must appear (case-insensitive) in the series id, title or codes. Paged locally with `offset`; `total_matches` counts every match.
- Instructions: Free-text series discovery (the site's own Data Finder is reCAPTCHA-gated). Pick the survey first with bls_surveys or bls_top_picks; catalogs range from 1 MB (cu) to 15 MB (ln), and a few (sm, oe, en) exceed the 32 MB fetch limit and fail with a clear message.
- Cost: 5 credits per call
- Capability file: [Bls series search](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_series_search)

Accepted options:
- `limit` (number): limit Example: `25`
- `offset` (number): Skip this many matches; pass `next_offset` from the previous page. Example: `0`
- `query` (string, required): Words that must all appear in the row (series id, title or codes), e.g. `unemployment rate women`, `SA0 U.S. city average`, `LNS14000000`. Example: `unemployment rate women`
- `seasonal` (string): Keep only seasonally adjusted (S) or unadjusted (U) series. Example: `S`
- `survey` (string, required): 2-letter survey abbreviation whose catalog to search (cu, ln, ce, la, ap, wp, pr, ...). Pattern: ^[A-Za-z]{2}$. Example: `<survey>`

Response schema example:
```json
{
  "catalog_url": "https://download.bls.gov/pub/time.series/cu/cu.series",
  "columns": [
    "series_id",
    "area_code",
    "item_code",
    "seasonal",
    "periodicity_code",
    "base_code",
    "base_period",
    "series_title",
    "footnote_codes",
    "begin_year",
    "begin_period",
    "end_year",
    "end_period"
  ],
  "count": 5,
  "next_offset": 5,
  "observed_at_ms": 1790283387355,
  "offset": 0,
  "query": "U.S. city average All items",
  "results": [
    {
      "begin_period": "M01",
      "begin_year": 1913,
      "codes": {
        "area_code": "0000",
        "base_code": "A",
        "base_period": "1967=100",
        "footnote_codes": "",
        "item_code": "AA0",
        "periodicity_code": "R"
      },
      "end_period": "M08",
      "end_year": 2026,
      "seasonal": "U",
      "series_id": "CUUR0000AA0",
      "series_title": "All items - old base in U.S. city average, all urban consumers, not seasonally adjusted",
      "source_url": "https://data.bls.gov/timeseries/CUUR0000AA0"
    },
    {
      "begin_period": "M01",
      "begin_year": 1913,
      "codes": {
        "area_code": "0000",
        "base_code": "S",
        "base_period": "1982-84=100",
        "footnote_codes": "",
        "item_code": "SA0",
        "periodicity_code": "R"
      },
      "end_period": "M08",
      "end_year": 2026,
      "seasonal": "U",
      "series_id": "CUUR0000SA0",
      "series_title": "All items in U.S. city average, all urban consumers, not seasonally adjusted",
      "source_url": "https://data.bls.gov/timeseries/CUUR0000SA0"
    },
    {
      "begin_period": "M03",
      "begin_year": 1935,
      "codes": {
        "area_code": "0000",
        "base_code": "S",
        "base_period": "1982-84=100",
        "footnote_codes": "",
        "item_code": "SA0L1",
        "periodicity_code": "R"
      },
      "end_period": "M08",
      "end_year": 2026,
      "seasonal": "U",
      "series_id": "CUUR0000SA0L1",
      "series_title": "All items less food in U.S. city average, all urban consumers, not seasonally adjusted",
      "source_url": "https://data.bls.gov/timeseries/CUUR0000SA0L1"
    },
    {
      "begin_period": "M01",
      "begin_year": 1967,
      "codes": {
        "area_code": "0000",
        "base_code": "S",
        "base_period": "1982-84=100",
        "footnote_codes": "",
        "item_code": "SA0L12",
        "periodicity_code": "R"
      },
      "end_period": "M08",
      "end_year": 2026,
      "seasonal": "U",
      "series_id": "CUUR0000SA0L12",
      "series_title": "All items less food and shelter in U.S. city average, all urban consumers, not seasonally adjusted",
      "source_url": "https://data.bls.gov/timeseries/CUUR0000SA0L12"
    },
    {
      "begin_period": "M01",
      "begin_year": 1967,
      "codes": {
        "area_code": "0000",
        "base_code": "S",
        "base_period": "1982-84=100",
        "footnote_codes": "",
        "item_code": "SA0L12E",
        "periodicity_code": "R"
      },
      "end_period": "M08",
      "end_year": 2026,
      "seasonal": "U",
      "series_id": "CUUR0000SA0L12E",
      "series_title": "All items less food, shelter, and energy in U.S. city average, all urban consumers, not seasonally adjusted",
      "source_url": "https://data.bls.gov/timeseries/CUUR0000SA0L12E"
    }
  ],
  "survey": "cu",
  "total_matches": 26
}
```

### Bls surveys

- Capability: `economic-statistics/bls_surveys`
- Description: List every BLS survey the public API serves (2-letter abbreviation and name, about 70 rows), or with `survey` the metadata of one survey: whether it allows net-change and percent-change calculations and publishes annual averages. The abbreviation is the first two letters of every series id and the key for bls_top_picks and bls_series_search.
- Instructions: To learn which survey abbreviation covers a topic (CU consumer prices, LA local unemployment, CE payroll employment, SM state employment, LN labor force, WP producer prices, AP average prices) before discovering series.
- Cost: 5 credits per call
- Capability file: [Bls surveys](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_surveys)

Accepted options:
- `survey` (string): Optional 2-letter survey abbreviation (LA, CU, CE, ...). When given, only that survey is returned, with its calculation flags. Pattern: ^[A-Za-z]{2}$. Example: `<survey>`

Response schema example:
```json
{
  "count": 1,
  "observed_at_ms": 1790283343296,
  "source_url": "https://api.bls.gov/publicAPI/v2/surveys/LA",
  "surveys": [
    {
      "allows_net_change": true,
      "allows_percent_change": true,
      "has_annual_averages": true,
      "survey_abbreviation": "LA",
      "survey_name": "Local Area Unemployment Statistics"
    }
  ]
}
```

### Bls top picks

- Capability: `economic-statistics/bls_top_picks`
- Description: BLS Top Picks: the curated series list data.bls.gov shows for one survey (Consumer Price Index items, payroll employment industries, state and metro unemployment, ...). Returns human-readable names with the series ids behind them; state-level surveys (LA, SM) accept a 2-digit state FIPS code to narrow the list to one state. Paged locally with `offset`.
- Instructions: The cheapest way to find well-known series ids for a survey before calling bls_series; use bls_series_search for anything not in the curated list.
- Cost: 5 credits per call
- Capability file: [Bls top picks](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_top_picks)

Accepted options:
- `limit` (number): limit Example: `100`
- `offset` (number): Skip this many picks; pass `next_offset` from the previous page. Example: `0`
- `state_fips` (string): 2-digit state FIPS code (06 California, 48 Texas). Only meaningful for state-level surveys such as la and sm. Pattern: ^[0-9]{2}$. Example: `<state_fips>`
- `survey` (string, required): 2-letter survey abbreviation: cu (CPI), ce (national employment), la (local unemployment), sm (state and metro employment), ln (labor force), ap (average prices), wp (PPI), ... Pattern: ^[A-Za-z]{2}$. Example: `<survey>`

Response schema example:
```json
{
  "count": 10,
  "next_offset": 10,
  "observed_at_ms": 1790283362534,
  "offset": 0,
  "picks": [
    {
      "name": "U.S. city average, All items",
      "series_ids": [
        "CUUR0000SA0"
      ]
    },
    {
      "name": "U.S. city average, Food and Beverages",
      "series_ids": [
        "CUUR0000SAF"
      ]
    },
    {
      "name": "U.S. city average, Food at home",
      "series_ids": [
        "CUUR0000SAF11"
      ]
    },
    {
      "name": "U.S. city average, Cereals and bakery products",
      "series_ids": [
        "CUUR0000SAF111"
      ]
    },
    {
      "name": "U.S. city average, Meats, poultry, fish, and eggs",
      "series_ids": [
        "CUUR0000SAF112"
      ]
    },
    {
      "name": "U.S. city average, Fruits and vegetables",
      "series_ids": [
        "CUUR0000SAF113"
      ]
    },
    {
      "name": "U.S. city average, Nonalcoholic beverages and bev. materials",
      "series_ids": [
        "CUUR0000SAF114"
      ]
    },
    {
      "name": "U.S. city average, Other food at home",
      "series_ids": [
        "CUUR0000SAF115"
      ]
    },
    {
      "name": "U.S. city average, Dairy and related products",
      "series_ids": [
        "CUUR0000SEFJ"
      ]
    },
    {
      "name": "U.S. city average, Food away from home",
      "series_ids": [
        "CUUR0000SEFV"
      ]
    }
  ],
  "source_url": "https://data.bls.gov/toppicks/getSeries?survey=cu",
  "state_fips": null,
  "survey": "cu",
  "total": 30
}
```

### Bls unemployment rate

- Capability: `economic-statistics/bls_unemployment_rate`
- Description: Unemployment rate (percent) for the nation, a state (2-digit FIPS) or a county (state + 3-digit county FIPS) from the Current Population Survey (LNS14000000 / LNU04000000) and Local Area Unemployment Statistics (LASST.., LAUST.., LAUCN..), over an optional year window of at most 10 years (the latest 3 years when omitted). Nation and state default to seasonally adjusted; counties are published not seasonally adjusted only.
- Instructions: A direct answer to 'what is the unemployment rate in X'; the resolved series id is returned for follow-up calls.
- Cost: 5 credits per call
- Capability file: [Bls unemployment rate](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/bls_unemployment_rate)

Accepted options:
- `county_fips` (string): 3-digit county FIPS within the state; requires state_fips. Pattern: ^[0-9]{3}$. Example: `<county_fips>`
- `end_year` (number): end_year Example: `1900`
- `seasonally_adjusted` (boolean): Default true for nation and state; must be false or omitted for counties. Example: `false`
- `start_year` (number): start_year Example: `1900`
- `state_fips` (string): 2-digit state FIPS (06 California, 48 Texas, 36 New York). Omit for the national rate. Pattern: ^[0-9]{2}$. Example: `<state_fips>`

Response schema example:
```json
{
  "area_code": "06",
  "area_type": "state",
  "count": 20,
  "exists": true,
  "first_date": "2025-01-01",
  "last_date": "2026-08-01",
  "latest": {
    "date": "2026-08-01",
    "footnotes": [
      "P: Preliminary."
    ],
    "latest": true,
    "period": "M08",
    "period_name": "August",
    "raw_value": "5.1",
    "value": 5.1,
    "year": 2026
  },
  "messages": [],
  "observations": [
    {
      "date": "2025-01-01",
      "footnotes": [],
      "latest": false,
      "period": "M01",
      "period_name": "January",
      "raw_value": "5.4",
      "value": 5.4,
      "year": 2025
    },
    {
      "date": "2025-02-01",
      "footnotes": [],
      "latest": false,
      "period": "M02",
      "period_name": "February",
      "raw_value": "5.4",
      "value": 5.4,
      "year": 2025
    },
    {
      "date": "2025-03-01",
      "footnotes": [],
      "latest": false,
      "period": "M03",
      "period_name": "March",
      "raw_value": "5.4",
      "value": 5.4,
      "year": 2025
    },
    {
      "date": "2025-04-01",
      "footnotes": [],
      "latest": false,
      "period": "M04",
      "period_name": "April",
      "raw_value": "5.4",
      "value": 5.4,
      "year": 2025
    },
    {
      "date": "2025-05-01",
      "footnotes": [],
      "latest": false,
      "period": "M05",
      "period_name": "May",
      "raw_value": "5.5",
      "value": 5.5,
      "year": 2025
    },
    {
      "date": "2025-06-01",
      "footnotes": [],
      "latest": false,
      "period": "M06",
      "period_name": "June",
      "raw_value": "5.5",
      "value": 5.5,
      "year": 2025
    },
    {
      "date": "2025-07-01",
      "footnotes": [],
      "latest": false,
      "period": "M07",
      "period_name": "July",
      "raw_value": "5.5",
      "value": 5.5,
      "year": 2025
    },
    {
      "date": "2025-08-01",
      "footnotes": [],
      "latest": false,
      "period": "M08",
      "period_name": "August",
      "raw_value": "5.5",
      "value": 5.5,
      "year": 2025
    },
    {
      "date": "2025-09-01",
      "footnotes": [],
      "latest": false,
      "period": "M09",
      "period_name": "September",
      "raw_value": "5.5",
      "value": 5.5,
      "year": 2025
    },
    {
      "date": "2025-10-01",
      "footnotes": [
        "X: Data unavailable due to the 2025 lapse in appropriations."
      ],
      "latest": false,
      "period": "M10",
      "period_name": "October",
      "raw_value": "-",
      "value": null,
      "year": 2025
    },
    {
      "date": "2025-11-01",
      "footnotes": [],
      "latest": false,
      "period": "M11",
      "period_name": "November",
      "raw_value": "5.5",
      "value": 5.5,
      "year": 2025
    },
    {
      "date": "2025-12-01",
      "footnotes": [],
      "latest": false,
      "period": "M12",
      "period_name": "December",
      "raw_value": "5.5",
      "value": 5.5,
      "year": 2025
    },
    {
      "date": "2026-01-01",
      "footnotes": [],
      "latest": false,
      "period": "M01",
      "period_name": "January",
      "raw_value": "5.4",
      "value": 5.4,
      "year": 2026
    },
    {
      "date": "2026-02-01",
      "footnotes": [],
      "latest": false,
      "period": "M02",
      "period_name": "February",
      "raw_value": "5.4",
      "value": 5.4,
      "year": 2026
    },
    {
      "date": "2026-03-01",
      "footnotes": [],
      "latest": false,
      "period": "M03",
      "period_name": "March",
      "raw_value": "5.3",
      "value": 5.3,
      "year": 2026
    },
    {
      "date": "2026-04-01",
      "footnotes": [],
      "latest": false,
      "period": "M04",
      "period_name": "April",
      "raw_value": "5.3",
      "value": 5.3,
      "year": 2026
    },
    {
      "date": "2026-05-01",
      "footnotes": [],
      "latest": false,
      "period": "M05",
      "period_name": "May",
      "raw_value": "5.3",
      "value": 5.3,
      "year": 2026
    },
    {
      "date": "2026-06-01",
      "footnotes": [],
      "latest": false,
      "period": "M06",
      "period_name": "June",
      "raw_value": "5.2",
      "value": 5.2,
      "year": 2026
    },
    {
      "date": "2026-07-01",
      "footnotes": [],
      "latest": false,
      "period": "M07",
      "period_name": "July",
      "raw_value": "5.1",
      "value": 5.1,
      "year": 2026
    },
    {
      "date": "2026-08-01",
      "footnotes": [
        "P: Preliminary."
      ],
      "latest": true,
      "period": "M08",
      "period_name": "August",
      "raw_value": "5.1",
      "value": 5.1,
      "year": 2026
    }
  ],
  "observed_at_ms": 1790283448340,
  "seasonally_adjusted": true,
  "series_id": "LASST060000000000003",
  "source_url": "https://data.bls.gov/timeseries/LASST060000000000003",
  "units": "percent"
}
```

### Qcew get

- Capability: `economic-statistics/qcew_get`
- Description: One QCEW cell (records/get): fetches the area slice `/cew/data/api/{year}/{qtr}/area/{area_fips}.csv` and selects the row by own_code, industry_code and size_code (default 0; add agglvl_code if the tuple is ever ambiguous). Suppressed measures are null; titles are joined. Missing row or unknown area is `not_found`; an unpublished period is `not_found` with issue code `not_published`.
- Instructions: For one establishment/employment/wage cell such as Gallatin County, private ownership, all industries, 2026 Q1, with its location quotients and over-the-year changes.
- Cost: 5 credits per call
- Capability file: [Qcew get](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/qcew_get)

Accepted options:
- `agglvl_code` (string): Optional 2-digit aggregation level to disambiguate. Pattern: ^[0-9]{1,2}$. Example: `<agglvl_code>`
- `area_fips` (string, required): 5-character area code (30031, 30000, US000, C1074). Example: `<area_fips>`
- `include_titles` (boolean): Join titles (default true). Example: `false`
- `industry_code` (string, required): 10 (all industries), a NAICS code, or a range such as 31-33 / 31_33. Example: `<industry_code>`
- `own_code` (string, required): 0, 1, 2, 3, 5, 8 or 9. Pattern: ^[0-9]$. Example: `<own_code>`
- `qtr` (string, required): 1-4 or a (annual averages). Pattern: ^([1-4]|[aA])$. Example: `<qtr>`
- `size_code` (string): Default 0 (all sizes; area slices carry no other class). Pattern: ^[0-9]$. Example: `<size_code>`
- `year` (string, required): Pattern: ^[0-9]{4}$. Example: `<year>`

Response schema example:
```json
{
  "etag": "42968-6598e1698dcb0",
  "kind": "annual",
  "last_modified": "Fri, 21 Aug 2026 12:50:59 GMT",
  "observed_at_ms": 1792342898225,
  "publication_id": "2025:a:42968-6598e1698dcb0",
  "record": {
    "agglvl_code": "70",
    "agglvl_title": "County, Total Covered",
    "annual_avg_emplvl": 74277,
    "annual_avg_estabs": 9632,
    "annual_avg_wkly_wage": 1356,
    "annual_contributions": 31223804,
    "area_fips": "30031",
    "area_title": "Gallatin County, Montana",
    "avg_annual_pay": 70519,
    "disclosure_code": null,
    "industry_code": "10",
    "industry_title": "10 Total, all industries",
    "kind": "annual",
    "lq_annual_avg_emplvl": 1,
    "lq_annual_avg_estabs": 1,
    "lq_annual_avg_wkly_wage": 1,
    "lq_annual_contributions": 1,
    "lq_avg_annual_pay": 1,
    "lq_disclosure_code": null,
    "lq_taxable_annual_wages": 1,
    "lq_total_annual_wages": 1,
    "oty_annual_avg_emplvl_chg": 1060,
    "oty_annual_avg_emplvl_pct_chg": 1.4,
    "oty_annual_avg_estabs_chg": -155,
    "oty_annual_avg_estabs_pct_chg": -1.6,
    "oty_annual_avg_wkly_wage_chg": 83,
    "oty_annual_avg_wkly_wage_pct_chg": 6.5,
    "oty_annual_contributions_chg": 1374347,
    "oty_annual_contributions_pct_chg": 4.6,
    "oty_avg_annual_pay_chg": 4306,
    "oty_avg_annual_pay_pct_chg": 6.5,
    "oty_disclosure_code": null,
    "oty_taxable_annual_wages_chg": 138144177,
    "oty_taxable_annual_wages_pct_chg": 5.2,
    "oty_total_annual_wages_chg": 390020328,
    "oty_total_annual_wages_pct_chg": 8,
    "own_code": "0",
    "own_title": "Total Covered",
    "publication_id": "2025:a:42968-6598e1698dcb0",
    "qtr": "A",
    "retrieved_at": "2026-10-18T17:01:38Z",
    "size_code": "0",
    "size_title": "All establishment sizes",
    "source_record_id": "2025:a:30031:0:10:70:0",
    "source_url": "https://data.bls.gov/cew/data/api/2025/a/area/30031.csv",
    "taxable_annual_wages": 2807842189,
    "total_annual_wages": 5237920613,
    "year": "2025"
  },
  "retrieved_at": "2026-10-18T17:01:38Z",
  "source_url": "https://data.bls.gov/cew/data/api/2025/a/area/30031.csv"
}
```

### Qcew list

- Capability: `economic-statistics/qcew_list`
- Description: QCEW Open Data rows (records/list): one whole CSV slice per call, `/cew/data/api/{year}/{qtr}/{area|industry|size}/{code}.csv` (area slice: every ownership x industry x aggregation level for one area; industry slice: every area for one industry; size slice: Q1 only, private ownership by establishment size class), paged from memory with `limit` rows per page. The cursor pins the slice's ETag: a page whose slice was re-published since (BLS revises prior quarters) fails with `invalid_input` at `/cursor` and issue code `publication_changed` instead of mixing versions. Codes stay strings; `disclosure_code` N rows carry null employment and wage measures (never 0) while the establishment count stays. Titles from area_titles.csv and industry_titles.csv (fetched) and the ownership, aggregation-level and size code books (embedded) are joined unless `include_titles` is false. `titles` alone lists a code book instead (area 9,459 rows, industry 2,678).
- Instructions: To collect a county, state, MSA or national employment and wage table (area slice), one industry across every area (industry slice), or size-class detail (size slice, Q1), or to fetch the code books for joins. Hyphenated NAICS (31-33) may be given with the hyphen or the URL underscore.
- Cost: 5 credits per call
- Capability file: [Qcew list](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/qcew_list)

Accepted options:
- `code` (string): The key: area_fips (30031, US000, C1074), industry_code (10, 236, 31-33 or 31_33), or size_code 1-9. Example: `<code>`
- `cursor` (string): Opaque `next_cursor` from the previous page (`<offset>@<etag>`). Pass the same year/qtr/slice/code (or titles) with it. A cursor whose slice has since been re-published fails with invalid_input, issue code publication_changed: restart without a cursor. Example: `next_cursor`
- `include_titles` (boolean): Join area/industry/ownership/agglevel/size titles onto every row (default true; false saves two upstream fetches). Example: `false`
- `limit` (number): Rows per page, default 250. Example: `10`
- `qtr` (string): 1-4 for a quarter, a for annual averages. Size slices exist for qtr 1 only. Pattern: ^([1-4]|[aA])$. Example: `<qtr>`
- `slice` (string): Which dimension the file is keyed on. Example: `area`
- `titles` (string): Alternative mode: list a title file instead of a slice. Exclusive with year/qtr/slice/code. Example: `area`
- `year` (string): 4-digit year (slices answer from 2014; BLS documents the latest five years). Pattern: ^[0-9]{4}$. Example: `<year>`

Response schema example:
```json
{
  "code": "30031",
  "count": 3,
  "etag": "47369-659905823f118",
  "kind": "quarterly",
  "last_modified": "Fri, 21 Aug 2026 15:32:29 GMT",
  "mode": "slice",
  "observed_at_ms": 1792342884014,
  "offset": 0,
  "publication_id": "2026:1:47369-659905823f118",
  "qtr": "1",
  "records": [
    {
      "agglvl_code": "70",
      "agglvl_title": "County, Total Covered",
      "area_fips": "30031",
      "area_title": "Gallatin County, Montana",
      "avg_wkly_wage": 1353,
      "disclosure_code": null,
      "industry_code": "10",
      "industry_title": "10 Total, all industries",
      "kind": "quarterly",
      "lq_avg_wkly_wage": 1,
      "lq_disclosure_code": null,
      "lq_month1_emplvl": 1,
      "lq_month2_emplvl": 1,
      "lq_month3_emplvl": 1,
      "lq_qtrly_contributions": 1,
      "lq_qtrly_estabs": 1,
      "lq_taxable_qtrly_wages": 1,
      "lq_total_qtrly_wages": 1,
      "month1_emplvl": 75523,
      "month2_emplvl": 75571,
      "month3_emplvl": 75151,
      "oty_avg_wkly_wage_chg": 1,
      "oty_avg_wkly_wage_pct_chg": 0.1,
      "oty_disclosure_code": null,
      "oty_month1_emplvl_chg": 2062,
      "oty_month1_emplvl_pct_chg": 2.8,
      "oty_month2_emplvl_chg": 2175,
      "oty_month2_emplvl_pct_chg": 3,
      "oty_month3_emplvl_chg": 1638,
      "oty_month3_emplvl_pct_chg": 2.2,
      "oty_qtrly_contributions_chg": -779715,
      "oty_qtrly_contributions_pct_chg": -7.1,
      "oty_qtrly_estabs_chg": 751,
      "oty_qtrly_estabs_pct_chg": 8,
      "oty_taxable_qtrly_wages_chg": 76186,
      "oty_taxable_qtrly_wages_pct_chg": 0,
      "oty_total_qtrly_wages_chg": 35384958,
      "oty_total_qtrly_wages_pct_chg": 2.7,
      "own_code": "0",
      "own_title": "Total Covered",
      "publication_id": "2026:1:47369-659905823f118",
      "qtr": "1",
      "qtrly_contributions": 10195289,
      "qtrly_estabs": 10177,
      "retrieved_at": "2026-10-18T17:01:22Z",
      "size_code": "0",
      "size_title": "All establishment sizes",
      "source_record_id": "2026:1:30031:0:10:70:0",
      "source_url": "https://data.bls.gov/cew/data/api/2026/1/area/30031.csv",
      "taxable_qtrly_wages": 961007567,
      "total_qtrly_wages": 1326214085,
      "year": "2026"
    },
    {
      "agglvl_code": "71",
      "agglvl_title": "County, Total -- by ownership sector",
      "area_fips": "30031",
      "area_title": "Gallatin County, Montana",
      "avg_wkly_wage": 1973,
      "disclosure_code": null,
      "industry_code": "10",
      "industry_title": "10 Total, all industries",
      "kind": "quarterly",
      "lq_avg_wkly_wage": 1.06,
      "lq_disclosure_code": null,
      "lq_month1_emplvl": 0.45,
      "lq_month2_emplvl": 0.46,
      "lq_month3_emplvl": 0.46,
      "lq_qtrly_contributions": 0,
      "lq_qtrly_estabs": 0.61,
      "lq_taxable_qtrly_wages": 0,
      "lq_total_qtrly_wages": 0.49,
      "month1_emplvl": 596,
      "month2_emplvl": 615,
      "month3_emplvl": 612,
      "oty_avg_wkly_wage_chg": 98,
      "oty_avg_wkly_wage_pct_chg": 5.2,
      "oty_disclosure_code": null,
      "oty_month1_emplvl_chg": -50,
      "oty_month1_emplvl_pct_chg": -7.7,
      "oty_month2_emplvl_chg": -30,
      "oty_month2_emplvl_pct_chg": -4.7,
      "oty_month3_emplvl_chg": -45,
      "oty_month3_emplvl_pct_chg": -6.8,
      "oty_qtrly_contributions_chg": 0,
      "oty_qtrly_contributions_pct_chg": 0,
      "oty_qtrly_estabs_chg": 1,
      "oty_qtrly_estabs_pct_chg": 3.4,
      "oty_taxable_qtrly_wages_chg": 0,
      "oty_taxable_qtrly_wages_pct_chg": 0,
      "oty_total_qtrly_wages_chg": -244793,
      "oty_total_qtrly_wages_pct_chg": -1.5,
      "own_code": "1",
      "own_title": "Federal Government",
      "publication_id": "2026:1:47369-659905823f118",
      "qtr": "1",
      "qtrly_contributions": 0,
      "qtrly_estabs": 30,
      "retrieved_at": "2026-10-18T17:01:22Z",
      "size_code": "0",
      "size_title": "All establishment sizes",
      "source_record_id": "2026:1:30031:1:10:71:0",
      "source_url": "https://data.bls.gov/cew/data/api/2026/1/area/30031.csv",
      "taxable_qtrly_wages": 0,
      "total_qtrly_wages": 15586180,
      "year": "2026"
    },
    {
      "agglvl_code": "72",
      "agglvl_title": "County, by Domain -- by ownership sector",
      "area_fips": "30031",
      "area_title": "Gallatin County, Montana",
      "avg_wkly_wage": 1973,
      "disclosure_code": null,
      "industry_code": "102",
      "industry_title": "102 Service-providing",
      "kind": "quarterly",
      "lq_avg_wkly_wage": 1.06,
      "lq_disclosure_code": null,
      "lq_month1_emplvl": 0.45,
      "lq_month2_emplvl": 0.47,
      "lq_month3_emplvl": 0.47,
      "lq_qtrly_contributions": 0,
      "lq_qtrly_estabs": 0.61,
      "lq_taxable_qtrly_wages": 0,
      "lq_total_qtrly_wages": 0.5,
      "month1_emplvl": 596,
      "month2_emplvl": 615,
      "month3_emplvl": 612,
      "oty_avg_wkly_wage_chg": 98,
      "oty_avg_wkly_wage_pct_chg": 5.2,
      "oty_disclosure_code": null,
      "oty_month1_emplvl_chg": -50,
      "oty_month1_emplvl_pct_chg": -7.7,
      "oty_month2_emplvl_chg": -30,
      "oty_month2_emplvl_pct_chg": -4.7,
      "oty_month3_emplvl_chg": -45,
      "oty_month3_emplvl_pct_chg": -6.8,
      "oty_qtrly_contributions_chg": 0,
      "oty_qtrly_contributions_pct_chg": 0,
      "oty_qtrly_estabs_chg": 1,
      "oty_qtrly_estabs_pct_chg": 3.4,
      "oty_taxable_qtrly_wages_chg": 0,
      "oty_taxable_qtrly_wages_pct_chg": 0,
      "oty_total_qtrly_wages_chg": -244793,
      "oty_total_qtrly_wages_pct_chg": -1.5,
      "own_code": "1",
      "own_title": "Federal Government",
      "publication_id": "2026:1:47369-659905823f118",
      "qtr": "1",
      "qtrly_contributions": 0,
      "qtrly_estabs": 30,
      "retrieved_at": "2026-10-18T17:01:22Z",
      "size_code": "0",
      "size_title": "All establishment sizes",
      "source_record_id": "2026:1:30031:1:102:72:0",
      "source_url": "https://data.bls.gov/cew/data/api/2026/1/area/30031.csv",
      "taxable_qtrly_wages": 0,
      "total_qtrly_wages": 15586180,
      "year": "2026"
    }
  ],
  "retrieved_at": "2026-10-18T17:01:22Z",
  "size_bytes": 291689,
  "slice": "area",
  "source_url": "https://data.bls.gov/cew/data/api/2026/1/area/30031.csv",
  "total_rows": 1737,
  "year": "2026"
}
```

### Qcew status

- Capability: `economic-statistics/qcew_status`
- Description: QCEW Open Data version check (source/status): the newest published quarter and annual-average year from data.bls.gov/cew/apps/ref/year_qtr_info.csv, each with the ETag, Last-Modified and byte size of its national area slice (US000.csv) read with a one-byte ranged GET; `publication_id` is `<year>:<qtr>:<ETag>`. With `year` and `qtr` it checks that one period instead; an unpublished period (2026/2 until the 2026-12-02 release) is `not_found` with issue code `not_published`.
- Instructions: Before a qcew_list crawl, to learn the newest quarter and annual year and to detect a re-publication (BLS revises prior quarters at every release: the ETag moves) without downloading data.
- Cost: 5 credits per call
- Capability file: [Qcew status](https://alexandria.firecrawl.dev/agents/providers/bls-gov/economic-statistics/qcew_status)

Accepted options:
- `qtr` (string): Optional quarter to check: 1-4 or a (annual averages); requires `year`. Pattern: ^([1-4]|[aA])$. Example: `<qtr>`
- `year` (string): Optional 4-digit year to check; requires `qtr`. Pattern: ^[0-9]{4}$. Example: `<year>`

Response schema example:
```json
{
  "annual": {
    "etag": "cd81c-6598e1798d6cc",
    "file_url": "https://data.bls.gov/cew/data/api/2025/a/area/US000.csv",
    "last_modified": "Fri, 21 Aug 2026 12:51:16 GMT",
    "prelim": null,
    "publication_id": "2025:a:cd81c-6598e1798d6cc",
    "qtr": "a",
    "size_bytes": 841756,
    "year": "2025"
  },
  "available_periods": [
    {
      "prelim": false,
      "qtr": "1",
      "year": "2021"
    },
    {
      "prelim": false,
      "qtr": "2",
      "year": "2021"
    },
    {
      "prelim": false,
      "qtr": "3",
      "year": "2021"
    },
    {
      "prelim": false,
      "qtr": "4",
      "year": "2021"
    },
    {
      "prelim": false,
      "qtr": "1",
      "year": "2022"
    },
    {
      "prelim": false,
      "qtr": "2",
      "year": "2022"
    },
    {
      "prelim": false,
      "qtr": "3",
      "year": "2022"
    },
    {
      "prelim": false,
      "qtr": "4",
      "year": "2022"
    },
    {
      "prelim": false,
      "qtr": "1",
      "year": "2023"
    },
    {
      "prelim": false,
      "qtr": "2",
      "year": "2023"
    },
    {
      "prelim": false,
      "qtr": "3",
      "year": "2023"
    },
    {
      "prelim": false,
      "qtr": "4",
      "year": "2023"
    },
    {
      "prelim": false,
      "qtr": "1",
      "year": "2024"
    },
    {
      "prelim": false,
      "qtr": "2",
      "year": "2024"
    },
    {
      "prelim": false,
      "qtr": "3",
      "year": "2024"
    },
    {
      "prelim": false,
      "qtr": "4",
      "year": "2024"
    },
    {
      "prelim": false,
      "qtr": "1",
      "year": "2025"
    },
    {
      "prelim": false,
      "qtr": "2",
      "year": "2025"
    },
    {
      "prelim": false,
      "qtr": "3",
      "year": "2025"
    },
    {
      "prelim": false,
      "qtr": "4",
      "year": "2025"
    },
    {
      "prelim": true,
      "qtr": "1",
      "year": "2026"
    }
  ],
  "observed_at_ms": 1792342868958,
  "periods_etag": "192-6598ca6d9bd31",
  "periods_source_url": "https://data.bls.gov/cew/apps/ref/year_qtr_info.csv",
  "publication_id": "2026:1:df72b-659905aae1f63",
  "quarter": {
    "etag": "df72b-659905aae1f63",
    "file_url": "https://data.bls.gov/cew/data/api/2026/1/area/US000.csv",
    "last_modified": "Fri, 21 Aug 2026 15:33:11 GMT",
    "prelim": true,
    "publication_id": "2026:1:df72b-659905aae1f63",
    "qtr": "1",
    "size_bytes": 915243,
    "year": "2026"
  },
  "retrieved_at": "2026-10-18T17:01:08Z",
  "source_url": "https://data.bls.gov/cew/data/api/2026/1/area/US000.csv"
}
```
