---
type: "firecrawl-provider"
description: "U.S. Bureau of Economic Analysis (BEA) Regional Economic Accounts, county tables CAINC1, CAINC4, CAINC5N, CAINC6N, CAINC30, CAINC91, CAGDP1, CAGDP2, CAGDP8, CAGDP9 and CAGDP11: personal income, population, per capita income, income components, earnings and employment by industry, GDP by industry. Read keylessly from the backend of BEA's own Interactive Data application (apps.bea.gov/iTable/core/data/app/GetStep). Every record carries source_record_id (bea:<TableName>-<LineCode>:<GeoFips>:<Year>), source_url, publication_id (<TableName>:<last updated date>) and retrieved_at; DataValue stays a string with BEA's suppression flags such as (D) and (NA). No change feed exists (revisions land in place), so records_changes is omitted. This product uses the Bureau of Economic Analysis (BEA) Data API but is not endorsed or certified by BEA."
use_when: "U.S. Bureau of Economic Analysis (BEA) Regional Economic Accounts, county tables CAINC1, CAINC4, CAINC5N, CAINC6N, CAINC30, CAINC91, CAGDP1, CAGDP2, CAGDP8, CAGDP9 and CAGDP11: personal income, population, per capita income, income components, earnings and employment by industry, GDP by industry. Read keylessly from the backend of BEA's own Interactive Data application (apps.bea.gov/iTable/core/data/app/GetStep). Every record carries source_record_id (bea:<TableName>-<LineCode>:<GeoFips>:<Year>), source_url, publication_id (<TableName>:<last updated date>) and retrieved_at; DataValue stays a string with BEA's suppression flags such as (D) and (NA). No change feed exists (revisions land in place), so records_changes is omitted. This product uses the Bureau of Economic Analysis (BEA) Data API but is not endorsed or certified by BEA."
categories: "Public records"
capabilities: 3
credits_per_call: 5
---
# BEA Regional Economic Accounts (county personal income, employment, GDP) on Firecrawl Alexandria

U.S. Bureau of Economic Analysis (BEA) Regional Economic Accounts, county tables CAINC1, CAINC4, CAINC5N, CAINC6N, CAINC30, CAINC91, CAGDP1, CAGDP2, CAGDP8, CAGDP9 and CAGDP11: personal income, population, per capita income, income components, earnings and employment by industry, GDP by industry. Read keylessly from the backend of BEA's own Interactive Data application (apps.bea.gov/iTable/core/data/app/GetStep). Every record carries source_record_id (bea:<TableName>-<LineCode>:<GeoFips>:<Year>), source_url, publication_id (<TableName>:<last updated date>) and retrieved_at; DataValue stays a string with BEA's suppression flags such as (D) and (NA). No change feed exists (revisions land in place), so records_changes is omitted. This product uses the Bureau of Economic Analysis (BEA) Data API but is not endorsed or certified by BEA.

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

## More

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

## Capabilities

- [Records get](https://firecrawl.dev/alexandria/agents/providers/apps-bea-gov/economic-statistics/records_get): One BEA county record by its own id: table, line code, GeoFips and year (source_record_id bea:<TableName>-<LineCode>:<GeoFips>:<Year>). One request. not_found when BEA has no cell for the combination (unknown county, line or year: the backend answers 'Combination of selections returns no data').
- [Records list](https://firecrawl.dev/alexandria/agents/providers/apps-bea-gov/economic-statistics/records_list): Full current list of one BEA county table for one state (or the United States and its eight BEA regions with state US), paginated with a cursor pinned to the table's publication_id. Page 1 fetches the state total row(s) and the state's county list, then the first chunk of counties; each later page fetches one chunk. Segment key: (table, state, line_code, years). Every page re-reads the 'Last updated' note and fails with invalid_input code publication_changed when it differs from the pinned vintage, so two vintages are never mixed. With line_code the page holds one statistic; without it every line of the table. years accepts ALL, LAST<n> (resolved against the table's year list), one year or a comma list. Values keep BEA's flags ((D) suppressed, (NA) not available, (NM), (L), (T)) in data_value with value null.
- [Source status](https://firecrawl.dev/alexandria/agents/providers/apps-bea-gov/economic-statistics/source_status): Cheap version check for one BEA county table: the current vintage (publication_id = <TableName>:<last updated date>, from the table's 'Last updated' note), the latest and first data year, the list of years and line codes the table serves, and a SHA-256 over the canonical United States (GeoFips 00000) records as a drift signal. One request (the national rows, all years). No file URL or publisher hash exists: the data is only served through the interactive backend.

## 1. Choose this provider when

U.S. Bureau of Economic Analysis (BEA) Regional Economic Accounts, county tables CAINC1, CAINC4, CAINC5N, CAINC6N, CAINC30, CAINC91, CAGDP1, CAGDP2, CAGDP8, CAGDP9 and CAGDP11: personal income, population, per capita income, income components, earnings and employment by industry, GDP by industry. Read keylessly from the backend of BEA's own Interactive Data application (apps.bea.gov/iTable/core/data/app/GetStep). Every record carries source_record_id (bea:<TableName>-<LineCode>:<GeoFips>:<Year>), source_url, publication_id (<TableName>:<last updated date>) and retrieved_at; DataValue stays a string with BEA's suppression flags such as (D) and (NA). No change feed exists (revisions land in place), so records_changes is omitted. This product uses the Bureau of Economic Analysis (BEA) Data API but is not endorsed or certified by BEA.

## 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": "apps-bea-gov",
  "capability": "economic-statistics/records_get",
  "options": {
    "geo_fips": "30109",
    "line_code": "3",
    "table": "CAINC1",
    "year": "2024"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `geo_fips` (string, required): 5-digit county FIPS (30109), state total SS000 (30000), 00000 United States, or a BEA region 91000-98000. Pattern: ^[0-9]{5}$. Example: `<geo_fips>`
- `line_code` (string, required): Pattern: ^[0-9]{1,4}$. Example: `<line_code>`
- `table` (string, required): table Example: `CAINC1`
- `year` (string, required): Pattern: ^[12][0-9]{3}$. Example: `<year>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "apps-bea-gov",
    capability: "economic-statistics/records_get",
    options: {
      geo_fips: "30109",
      line_code: "3",
      table: "CAINC1",
      year: "2024",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "apps-bea-gov",
  "capability": "economic-statistics/records_get",
  "options": {
    "geo_fips": "30109",
    "line_code": "3",
    "table": "CAINC1",
    "year": "2024"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "apps-bea-gov",
    "capability": "economic-statistics/records_get",
    "options": {
      "geo_fips": "30109",
      "line_code": "3",
      "table": "CAINC1",
      "year": "2024"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'apps-bea-gov/economic-statistics/records_get' \
  --options '{"geo_fips":"30109","line_code":"3","table":"CAINC1","year":"2024"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "apps-bea-gov",
  "capability": "economic-statistics/records_get",
  "options": {
    "geo_fips": "30109",
    "line_code": "3",
    "table": "CAINC1",
    "year": "2024"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "apps-bea-gov",
  "capability": "economic-statistics/records_get",
  "options": {
    "geo_fips": "30109",
    "line_code": "3",
    "table": "CAINC1",
    "year": "2024"
  }
}
```

## 6. Response data

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

```json
{
  "last_updated": "2026-02-05",
  "last_updated_note": "Last updated: February 5, 2026-- new statistics for 2024; revised statistics for 2020-2023.",
  "notes": [
    {
      "seq": "2",
      "text": "2. Per capita personal income is total personal income divided by total midyear population."
    },
    {
      "seq": "19",
      "text": "Note. All dollar estimates are in thousands of current dollars (not adjusted for inflation). Statistics presented in thousands of dollars do not indicate more precision than statistics presented in millions of dollars."
    },
    {
      "seq": "22",
      "text": "Last updated: February 5, 2026-- new statistics for 2024; revised statistics for 2020-2023."
    }
  ],
  "observed_at_ms": 1792320194606,
  "publication_id": "CAINC1:2026-02-05",
  "record": {
    "code": "CAINC1-3",
    "data_value": "50865",
    "flag": null,
    "geo_fips": "30109",
    "geo_name": "Wibaux, MT",
    "line_code": "3",
    "line_description": "Per capita personal income (Dollars)",
    "note_refs": [
      "2"
    ],
    "publication_id": "CAINC1:2026-02-05",
    "retrieved_at": "2026-10-18T10:43:14Z",
    "source_record_id": "bea:CAINC1-3:30109:2024",
    "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=30109&year=2024&tableid=20&state=30000&statistic=3&unit_of_measure=levels&yearbegin=-1&year_end=-1",
    "table": "CAINC1",
    "time_period": "2024",
    "unit": "Dollars",
    "value": 50865
  },
  "retrieved_at": "2026-10-18T10:43:14Z",
  "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=30109&year=2024&tableid=20&state=30000&statistic=3&unit_of_measure=levels&yearbegin=-1&year_end=-1",
  "table": "CAINC1",
  "table_id": 20,
  "title": "CAINC1 County personal income summary: personal income, population, per capita personal income"
}
```

## API reference-derived contract

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

### Records get

- Capability: `economic-statistics/records_get`
- Description: One BEA county record by its own id: table, line code, GeoFips and year (source_record_id bea:<TableName>-<LineCode>:<GeoFips>:<Year>). One request. not_found when BEA has no cell for the combination (unknown county, line or year: the backend answers 'Combination of selections returns no data').
- Instructions: To fetch or re-check a single value, e.g. CAINC1 line 3 (per capita personal income) for Wibaux County, MT (30109) in 2024, or the United States (00000) for the EDA distress ratio.
- Cost: 5 credits per call
- Capability file: [Records get](https://firecrawl.dev/alexandria/agents/providers/apps-bea-gov/economic-statistics/records_get)

Accepted options:
- `geo_fips` (string, required): 5-digit county FIPS (30109), state total SS000 (30000), 00000 United States, or a BEA region 91000-98000. Pattern: ^[0-9]{5}$. Example: `<geo_fips>`
- `line_code` (string, required): Pattern: ^[0-9]{1,4}$. Example: `<line_code>`
- `table` (string, required): table Example: `CAINC1`
- `year` (string, required): Pattern: ^[12][0-9]{3}$. Example: `<year>`

Response schema example:
```json
{
  "last_updated": "2026-02-05",
  "last_updated_note": "Last updated: February 5, 2026-- new statistics for 2024; revised statistics for 2020-2023.",
  "notes": [
    {
      "seq": "2",
      "text": "2. Per capita personal income is total personal income divided by total midyear population."
    },
    {
      "seq": "19",
      "text": "Note. All dollar estimates are in thousands of current dollars (not adjusted for inflation). Statistics presented in thousands of dollars do not indicate more precision than statistics presented in millions of dollars."
    },
    {
      "seq": "22",
      "text": "Last updated: February 5, 2026-- new statistics for 2024; revised statistics for 2020-2023."
    }
  ],
  "observed_at_ms": 1792320194606,
  "publication_id": "CAINC1:2026-02-05",
  "record": {
    "code": "CAINC1-3",
    "data_value": "50865",
    "flag": null,
    "geo_fips": "30109",
    "geo_name": "Wibaux, MT",
    "line_code": "3",
    "line_description": "Per capita personal income (Dollars)",
    "note_refs": [
      "2"
    ],
    "publication_id": "CAINC1:2026-02-05",
    "retrieved_at": "2026-10-18T10:43:14Z",
    "source_record_id": "bea:CAINC1-3:30109:2024",
    "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=30109&year=2024&tableid=20&state=30000&statistic=3&unit_of_measure=levels&yearbegin=-1&year_end=-1",
    "table": "CAINC1",
    "time_period": "2024",
    "unit": "Dollars",
    "value": 50865
  },
  "retrieved_at": "2026-10-18T10:43:14Z",
  "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=30109&year=2024&tableid=20&state=30000&statistic=3&unit_of_measure=levels&yearbegin=-1&year_end=-1",
  "table": "CAINC1",
  "table_id": 20,
  "title": "CAINC1 County personal income summary: personal income, population, per capita personal income"
}
```

### Records list

- Capability: `economic-statistics/records_list`
- Description: Full current list of one BEA county table for one state (or the United States and its eight BEA regions with state US), paginated with a cursor pinned to the table's publication_id. Page 1 fetches the state total row(s) and the state's county list, then the first chunk of counties; each later page fetches one chunk. Segment key: (table, state, line_code, years). Every page re-reads the 'Last updated' note and fails with invalid_input code publication_changed when it differs from the pinned vintage, so two vintages are never mixed. With line_code the page holds one statistic; without it every line of the table. years accepts ALL, LAST<n> (resolved against the table's year list), one year or a comma list. Values keep BEA's flags ((D) suppressed, (NA) not available, (NM), (L), (T)) in data_value with value null.
- Instructions: To collect a whole table for a state: e.g. CAINC1 line 3 (per capita personal income) for every Montana county, all years; or CAINC5N earnings by industry for every county, latest year. Follow next_cursor until it is null.
- Cost: 5 credits per call
- Capability file: [Records list](https://firecrawl.dev/alexandria/agents/providers/apps-bea-gov/economic-statistics/records_list)

Accepted options:
- `cursor` (string): next_cursor from the previous page. Opaque; pins table, state, line_code, years, the county list and the publication_id. Example: `<cursor>`
- `line_code` (string): One line code (statistic) of the table, e.g. 3 for CAINC1 per capita personal income. Omit for every line of the table. Pattern: ^[0-9]{1,4}$. Example: `<line_code>`
- `state` (string, required): State as a USPS code (MT), a 2-digit state FIPS (30) or BEA's 5-digit state key (30000); US for the United States total plus the eight BEA regions. The 50 states and DC are supported (BEA county tables carry no territories). Example: `<state>`
- `table` (string, required): BEA Regional county table name (see source_status). Example: `CAINC1`
- `years` (string): ALL (default), LAST5 / LAST10 (newest n years the table serves), one year (2024) or a comma list (2022,2023,2024). Pattern: ^(ALL|all|LAST[1-9][0-9]?|last[1-9][0-9]?|[12][0-9]{3}(,[12][0-9]{3})*)$. Example: `<years>`

Response schema example:
```json
{
  "geo_fips_in_page": [
    "10000",
    "10001",
    "10003",
    "10005"
  ],
  "includes_state_total": true,
  "last_updated": "2026-02-05",
  "last_updated_note": "Last updated: February 5, 2026-- new statistics for 2024; revised statistics for 2020-2023.",
  "line_code": "3",
  "next_cursor": null,
  "notes": [
    {
      "seq": "2",
      "text": "2. Per capita personal income is total personal income divided by total midyear population."
    },
    {
      "seq": "19",
      "text": "Note. All dollar estimates are in thousands of current dollars (not adjusted for inflation). Statistics presented in thousands of dollars do not indicate more precision than statistics presented in millions of dollars."
    },
    {
      "seq": "22",
      "text": "Last updated: February 5, 2026-- new statistics for 2024; revised statistics for 2020-2023."
    }
  ],
  "observed_at_ms": 1792320173318,
  "page": 1,
  "publication_id": "CAINC1:2026-02-05",
  "record_count": 4,
  "records": [
    {
      "code": "CAINC1-3",
      "data_value": "68061",
      "flag": null,
      "geo_fips": "10000",
      "geo_name": "Delaware",
      "line_code": "3",
      "line_description": "Per capita personal income (Dollars)",
      "note_refs": [
        "2"
      ],
      "publication_id": "CAINC1:2026-02-05",
      "retrieved_at": "2026-10-18T10:42:53Z",
      "source_record_id": "bea:CAINC1-3:10000:2024",
      "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=10000&year=2024&tableid=20&state=10000&statistic=3&unit_of_measure=levels&yearbegin=-1&year_end=-1",
      "table": "CAINC1",
      "time_period": "2024",
      "unit": "Dollars",
      "value": 68061
    },
    {
      "code": "CAINC1-3",
      "data_value": "55474",
      "flag": null,
      "geo_fips": "10001",
      "geo_name": "Kent, DE",
      "line_code": "3",
      "line_description": "Per capita personal income (Dollars)",
      "note_refs": [
        "2"
      ],
      "publication_id": "CAINC1:2026-02-05",
      "retrieved_at": "2026-10-18T10:42:53Z",
      "source_record_id": "bea:CAINC1-3:10001:2024",
      "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=10001&year=2024&tableid=20&state=10000&statistic=3&unit_of_measure=levels&yearbegin=-1&year_end=-1",
      "table": "CAINC1",
      "time_period": "2024",
      "unit": "Dollars",
      "value": 55474
    },
    {
      "code": "CAINC1-3",
      "data_value": "69609",
      "flag": null,
      "geo_fips": "10003",
      "geo_name": "New Castle, DE",
      "line_code": "3",
      "line_description": "Per capita personal income (Dollars)",
      "note_refs": [
        "2"
      ],
      "publication_id": "CAINC1:2026-02-05",
      "retrieved_at": "2026-10-18T10:42:53Z",
      "source_record_id": "bea:CAINC1-3:10003:2024",
      "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=10003&year=2024&tableid=20&state=10000&statistic=3&unit_of_measure=levels&yearbegin=-1&year_end=-1",
      "table": "CAINC1",
      "time_period": "2024",
      "unit": "Dollars",
      "value": 69609
    },
    {
      "code": "CAINC1-3",
      "data_value": "73647",
      "flag": null,
      "geo_fips": "10005",
      "geo_name": "Sussex, DE",
      "line_code": "3",
      "line_description": "Per capita personal income (Dollars)",
      "note_refs": [
        "2"
      ],
      "publication_id": "CAINC1:2026-02-05",
      "retrieved_at": "2026-10-18T10:42:53Z",
      "source_record_id": "bea:CAINC1-3:10005:2024",
      "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=10005&year=2024&tableid=20&state=10000&statistic=3&unit_of_measure=levels&yearbegin=-1&year_end=-1",
      "table": "CAINC1",
      "time_period": "2024",
      "unit": "Dollars",
      "value": 73647
    }
  ],
  "retrieved_at": "2026-10-18T10:42:53Z",
  "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=XX&year=2024&tableid=20&state=10000&statistic=3&unit_of_measure=levels&yearbegin=-1&year_end=-1",
  "state": "DE",
  "state_fips": "10000",
  "table": "CAINC1",
  "table_id": 20,
  "title": "CAINC1 County personal income summary: personal income, population, per capita personal income",
  "years": "2024"
}
```

### Source status

- Capability: `economic-statistics/source_status`
- Description: Cheap version check for one BEA county table: the current vintage (publication_id = <TableName>:<last updated date>, from the table's 'Last updated' note), the latest and first data year, the list of years and line codes the table serves, and a SHA-256 over the canonical United States (GeoFips 00000) records as a drift signal. One request (the national rows, all years). No file URL or publisher hash exists: the data is only served through the interactive backend.
- Instructions: Before a full records_list sweep, to learn whether a table has a new vintage (BEA releases county personal income and GDP once a year, with revisions landing in place), what the latest data year is, and which line codes a table offers.
- Cost: 5 credits per call
- Capability file: [Source status](https://firecrawl.dev/alexandria/agents/providers/apps-bea-gov/economic-statistics/source_status)

Accepted options:
- `table` (string, required): BEA Regional county table name. CAINC1 personal income summary (lines 1 personal income, 2 population, 3 per capita personal income); CAINC4 income by major component; CAINC5N earnings by NAICS industry; CAINC6N compensation by industry; CAINC30 economic profile (total employment incl. proprietors); CAINC91 gross flow of earnings; CAGDP1 GDP summary; CAGDP2 GDP by industry (current dollars); CAGDP8 chain-type quantity indexes; CAGDP9 real GDP by industry; CAGDP11 contributions to percent change in real GDP. Example: `CAINC1`

Response schema example:
```json
{
  "first_year": "1969",
  "last_updated": "2026-02-05",
  "last_updated_note": "Last updated: February 5, 2026-- new statistics for 2024; revised statistics for 2020-2023.",
  "latest_year": "2024",
  "line_codes": [
    {
      "description": "Personal income (thousands of dollars)",
      "line_code": "1"
    },
    {
      "description": "Population (persons)",
      "line_code": "2"
    },
    {
      "description": "Per capita personal income (dollars)",
      "line_code": "3"
    }
  ],
  "national_record_count": 168,
  "national_records_sha256": "f2ed0b14d8ad81f5db0ba7de2d55d46d79535abbdf661067bf513e0d0190a559",
  "observed_at_ms": 1792320187354,
  "publication_id": "CAINC1:2026-02-05",
  "retrieved_at": "2026-10-18T10:43:07Z",
  "source_url": "https://apps.bea.gov/itable/?ReqID=70&step=30&isuri=1&major_area=4&area=00000&year=-1&tableid=20&state=0&statistic=-1&unit_of_measure=levels&yearbegin=-1&year_end=-1",
  "table": "CAINC1",
  "table_id": 20,
  "title": "CAINC1 County personal income summary: personal income, population, per capita personal income",
  "years": [
    "2024",
    "2023",
    "2022",
    "2021",
    "2020",
    "2019",
    "2018",
    "2017",
    "2016",
    "2015",
    "2014",
    "2013",
    "2012",
    "2011",
    "2010",
    "2009",
    "2008",
    "2007",
    "2006",
    "2005",
    "2004",
    "2003",
    "2002",
    "2001",
    "2000",
    "1999",
    "1998",
    "1997",
    "1996",
    "1995",
    "1994",
    "1993",
    "1992",
    "1991",
    "1990",
    "1989",
    "1988",
    "1987",
    "1986",
    "1985",
    "1984",
    "1983",
    "1982",
    "1981",
    "1980",
    "1979",
    "1978",
    "1977",
    "1976",
    "1975",
    "1974",
    "1973",
    "1972",
    "1971",
    "1970",
    "1969"
  ]
}
```
