Overview
The U.S. Bureau of Economic Analysis (BEA) publishes the official national, regional, industry, and international economic statistics of the United States: GDP, personal income, trade balances, investment positions, and more. The BEA Data API serves all of it as JSON from a single endpoint, organized into named datasets.
Setup guide
Get your UserID
- Register (free) at apps.bea.gov/api/signup with your name or organization and a real email address (BEA does not allow disposable email addresses).
- BEA emails you a 36-character UserID along with an activation link. Click the link to activate the key.
- That UserID is the only credential. It does not expire, though BEA may deactivate keys that stay unused for a long time or repeatedly exceed the fair-use limits.
Add it to Ingest
In the Ingest UI under Connectors, BEA Data API, paste the UserID when prompted. Each endpoint pins one headline table or slice of a BEA dataset; every dataset parameter (table name, frequency, years, geography, indicator) is exposed as an endpoint setting, so you can retarget any endpoint to a different table without code changes.
Mind the limits
BEA allows 100 requests per minute, 100 MB of data per minute, and 30 errors per minute per key; exceeding any of these locks the key out for about a minute. Ingest dispatches at 1 request per second and honors 429 responses, and each endpoint makes a single request per run, so scheduled runs stay far below the limits. BEA publishes on a release schedule (monthly for most datasets); the default weekly refresh keeps tables current without re-fetching unchanged data.
Pick endpoints
- dataset_list: the catalog of datasets the API currently serves.
- nipa_gdp: percent change in real GDP (NIPA table T10101), annual and quarterly.
- nipa_personal_income: personal income and its disposition (NIPA table T20600), monthly.
- regional_county_income: personal income for every U.S. county (Regional table CAINC1).
- regional_state_gdp: real GDP by state (Regional table SAGDP9).
- gdp_by_industry: value added by industry, annual, all industries.
- ita_transactions: balance on goods and services, all countries, annual.
- iip_position: U.S. international investment position (financial assets excluding derivatives), annual.
- fixed_assets: current-cost net stock of fixed assets and consumer durables (table FAAt101).
- intl_serv_trade: international services trade balance, all service types and countries.
- input_output: industry-by-commodity total requirements (sector level).
Supported streams
11 endpoints are available out of the box. Each endpoint syncs into its own Iceberg table in Snowflake.
| Endpoint | Description | Reference |
|---|---|---|
| dataset_list dataset_list | – | |
| fixed_assets fixed_assets | – | |
| gdp_by_industry gdp_by_industry | – | |
| iip_position iip_position | – | |
| input_output input_output | – | |
| intl_serv_trade intl_serv_trade | – | |
| ita_transactions ita_transactions | – | |
| nipa_gdp nipa_gdp | – | |
| nipa_personal_income nipa_personal_income | – | |
| regional_county_income regional_county_income | – | |
| regional_state_gdp regional_state_gdp | – |
Authentication
- Auth type
- query_param
- Provider docs
- apps.bea.gov ↗
Performance & limits
- Rate limit
- 100 requests/minute, 100 MB/minute, 30 errors/minute per key. Ingest dispatches at 1 request/second with backoff on 429s.