BEA Data API (U.S. Bureau of Economic Analysis)

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

  1. 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).
  2. BEA emails you a 36-character UserID along with an activation link. Click the link to activate the key.
  3. 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.

EndpointDescriptionReference
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.
Automatic backoff
Ingest throttles requests to the published rate limit and retries with exponential backoff on transient errors. You don't need to handle 429s, retries, or pagination yourself.

Resources