Back to Claude Scientific Skills

BEA (Bureau of Economic Analysis) API Reference

scientific-skills/database-lookup/references/bea.md

2.38.013.9 KB
Original Source

BEA (Bureau of Economic Analysis) API Reference

Overview

The Bureau of Economic Analysis API provides access to U.S. economic accounts data including GDP (national income and product accounts -- NIPA), personal income, international trade, industry accounts, and regional economic data. Structured as a single endpoint with dataset-specific parameters.

Base URL

https://apps.bea.gov/api/data

Authentication

Rate Limits

  • 100 requests per minute per API key.
  • 100 MB of data per minute per API key.
  • 30 errors per minute -- exceeding triggers a temporary lockout.
  • Daily and monthly limits are not formally published but BEA may throttle heavy use.

Common Parameters (all requests)

ParameterTypeRequiredDescription
UserIDstringYesYour BEA API key.
methodstringYesAPI method (see below).
ResultFormatstringNoJSON (default) or XML.

Methods

1. GetDataSetList

Lists all available datasets.

GET /api/data?method=GetDataSetList&UserID=YOUR_KEY&ResultFormat=JSON

Example:

https://apps.bea.gov/api/data?method=GetDataSetList&UserID=YOUR_KEY&ResultFormat=JSON

Response:

json
{
  "BEAAPI": {
    "Request": {
      "RequestParam": [
        {"ParameterName": "METHOD", "ParameterValue": "GETDATASETLIST"},
        {"ParameterName": "RESULTFORMAT", "ParameterValue": "JSON"}
      ]
    },
    "Results": {
      "Dataset": [
        {"DatasetName": "NIPA", "DatasetDescription": "Standard NIPA tables"},
        {"DatasetName": "NIUnderlyingDetail", "DatasetDescription": "National Income and Product Accounts Underlying Detail"},
        {"DatasetName": "MNE", "DatasetDescription": "Multinational Enterprises"},
        {"DatasetName": "FixedAssets", "DatasetDescription": "Fixed Assets"},
        {"DatasetName": "ITA", "DatasetDescription": "International Transactions"},
        {"DatasetName": "IIP", "DatasetDescription": "International Investment Position"},
        {"DatasetName": "GDPbyIndustry", "DatasetDescription": "GDP by Industry"},
        {"DatasetName": "Regional", "DatasetDescription": "Regional data"},
        {"DatasetName": "UnderlyingGDPbyIndustry", "DatasetDescription": "Underlying GDP by Industry"},
        {"DatasetName": "InputOutput", "DatasetDescription": "Input-Output Statistics"}
      ]
    }
  }
}

2. GetParameterList

Lists parameters for a specific dataset.

GET /api/data?method=GetParameterList&DatasetName={dataset}&UserID=YOUR_KEY&ResultFormat=JSON

Example:

https://apps.bea.gov/api/data?method=GetParameterList&DatasetName=NIPA&UserID=YOUR_KEY&ResultFormat=JSON

Response:

json
{
  "BEAAPI": {
    "Results": {
      "Parameter": [
        {
          "ParameterName": "TableName",
          "ParameterDataType": "string",
          "ParameterDescription": "The standard NIPA table identifier",
          "ParameterIsRequiredFlag": "1",
          "ParameterDefaultValue": ""
        },
        {
          "ParameterName": "Frequency",
          "ParameterDataType": "string",
          "ParameterDescription": "A - Annual, Q - Quarterly, M - Monthly",
          "ParameterIsRequiredFlag": "1",
          "ParameterDefaultValue": ""
        },
        {
          "ParameterName": "Year",
          "ParameterDataType": "string",
          "ParameterDescription": "List of year(s) of data to retrieve",
          "ParameterIsRequiredFlag": "1",
          "ParameterDefaultValue": ""
        }
      ]
    }
  }
}

3. GetParameterValues

Lists valid values for a parameter.

GET /api/data?method=GetParameterValues&DatasetName={dataset}&ParameterName={param}&UserID=YOUR_KEY&ResultFormat=JSON

Example (list NIPA tables):

https://apps.bea.gov/api/data?method=GetParameterValues&DatasetName=NIPA&ParameterName=TableName&UserID=YOUR_KEY&ResultFormat=JSON

Response (abbreviated):

json
{
  "BEAAPI": {
    "Results": {
      "ParamValue": [
        {"TableName": "T10101", "Description": "Table 1.1.1. Percent Change From Preceding Period in Real Gross Domestic Product"},
        {"TableName": "T10106", "Description": "Table 1.1.6. Real Gross Domestic Product, Chained Dollars"},
        {"TableName": "T10105", "Description": "Table 1.1.5. Gross Domestic Product"},
        {"TableName": "T20100", "Description": "Table 2.1. Personal Income and Its Disposition"},
        {"TableName": "T30100", "Description": "Table 3.1. Government Current Receipts and Expenditures"}
      ]
    }
  }
}

4. GetData

The main data retrieval method. Parameters vary by dataset.

GET /api/data?method=GetData&DatasetName={dataset}&{params}&UserID=YOUR_KEY&ResultFormat=JSON


Dataset-Specific Parameters & Examples

A. NIPA (National Income and Product Accounts)

Parameters:

ParameterTypeRequiredDescription
TableNamestringYesNIPA table identifier (e.g., T10101).
FrequencystringYesA (annual), Q (quarterly), M (monthly).
YearstringYesComma-separated years, or ALL, or X for latest.

Example (Real GDP percent change, quarterly, 2022-2024):

https://apps.bea.gov/api/data?method=GetData&DatasetName=NIPA&TableName=T10101&Frequency=Q&Year=2022,2023,2024&UserID=YOUR_KEY&ResultFormat=JSON

Example (GDP levels, annual, all years):

https://apps.bea.gov/api/data?method=GetData&DatasetName=NIPA&TableName=T10105&Frequency=A&Year=ALL&UserID=YOUR_KEY&ResultFormat=JSON

Response:

json
{
  "BEAAPI": {
    "Request": { ... },
    "Results": {
      "Statistic": "NIPA Table",
      "UTCProductionTime": "2024-11-01T13:00:00.000",
      "Dimensions": [
        {"Name": "TableName", "DataType": "string", "IsValue": "0"},
        {"Name": "SeriesCode", "DataType": "string", "IsValue": "0"},
        {"Name": "LineNumber", "DataType": "numeric", "IsValue": "0"},
        {"Name": "LineDescription", "DataType": "string", "IsValue": "0"},
        {"Name": "TimePeriod", "DataType": "string", "IsValue": "0"},
        {"Name": "METRIC_NAME", "DataType": "string", "IsValue": "0"},
        {"Name": "CL_UNIT", "DataType": "string", "IsValue": "0"},
        {"Name": "UNIT_MULT", "DataType": "numeric", "IsValue": "0"},
        {"Name": "DataValue", "DataType": "numeric", "IsValue": "1"}
      ],
      "Data": [
        {
          "TableName": "T10101",
          "SeriesCode": "A191RL",
          "LineNumber": "1",
          "LineDescription": "Gross domestic product",
          "TimePeriod": "2022Q1",
          "METRIC_NAME": "Fisher Quantity Index",
          "CL_UNIT": "Percent change",
          "UNIT_MULT": "0",
          "DataValue": "-1.6",
          "NoteRef": "T10101"
        },
        {
          "TableName": "T10101",
          "SeriesCode": "A191RL",
          "LineNumber": "1",
          "LineDescription": "Gross domestic product",
          "TimePeriod": "2022Q2",
          "CL_UNIT": "Percent change",
          "DataValue": "-0.6"
        }
      ],
      "Notes": [
        {"NoteRef": "T10101", "NoteText": "Table 1.1.1. Percent Change From Preceding Period..."}
      ]
    }
  }
}

B. Regional (State, County, MSA data)

Parameters:

ParameterTypeRequiredDescription
TableNamestringYesRegional table (e.g., CAGDP1 for GDP by state).
LineCodeintYesLine number within the table (specifies the data series).
GeoFipsstringYesFIPS code: STATE (all states), COUNTY (all counties), MSA (all MSAs), or specific FIPS (e.g., 06000 for California).
YearstringYesComma-separated years or ALL or LAST5.

Common Regional Tables:

TableDescription
CAGDP1GDP summary by state
CAGDP2GDP by component by state
CAGDP9Real GDP by state
CAINC1Personal income summary by state
CAINC4Personal income and employment by state
CAINC5NPersonal income by type by state
SAINC1State annual personal income
SQINC1State quarterly personal income

Example (GDP by state, all states, 2020-2023):

https://apps.bea.gov/api/data?method=GetData&DatasetName=Regional&TableName=CAGDP1&LineCode=1&GeoFips=STATE&Year=2020,2021,2022,2023&UserID=YOUR_KEY&ResultFormat=JSON

Example (Personal income for California):

https://apps.bea.gov/api/data?method=GetData&DatasetName=Regional&TableName=CAINC1&LineCode=1&GeoFips=06000&Year=LAST5&UserID=YOUR_KEY&ResultFormat=JSON

Response:

json
{
  "BEAAPI": {
    "Results": {
      "Data": [
        {
          "GeoFips": "06000",
          "GeoName": "California",
          "Code": "CAINC1-1",
          "TimePeriod": "2023",
          "CL_UNIT": "Thousands of dollars",
          "UNIT_MULT": "3",
          "DataValue": "3,220,965,123"
        }
      ]
    }
  }
}

C. ITA (International Transactions Accounts / Trade)

Parameters:

ParameterTypeRequiredDescription
IndicatorstringYesIndicator code (e.g., BalGds for goods balance).
AreaOrCountrystringYesCountry code: AllCountries, China, Japan, etc., or All.
FrequencystringYesA, Q, M.
YearstringYesComma-separated years or ALL.

Common ITA Indicators:

CodeDescription
BalGdsBalance on goods
BalServBalance on services
BalGdsServBalance on goods and services
BalCurAcctCurrent account balance
ExpGdsExports of goods
ImpGdsImports of goods
ExpServExports of services
ImpServImports of services

Example (US trade balance in goods with China, quarterly):

https://apps.bea.gov/api/data?method=GetData&DatasetName=ITA&Indicator=BalGds&AreaOrCountry=China&Frequency=Q&Year=2022,2023,2024&UserID=YOUR_KEY&ResultFormat=JSON

D. GDPbyIndustry

Parameters:

ParameterTypeRequiredDescription
TableIDintYesTable number (1-15).
IndustrystringYesIndustry code: ALL, or specific (e.g., 11 for agriculture).
FrequencystringYesA or Q.
YearstringYesComma-separated years or ALL.

Common Table IDs:

IDDescription
1Value added by industry
5Value added by industry as % of GDP
6Real value added by industry
7Percent change in real value added by industry

Example (Value added by all industries, annual):

https://apps.bea.gov/api/data?method=GetData&DatasetName=GDPbyIndustry&TableID=1&Industry=ALL&Frequency=A&Year=2020,2021,2022,2023&UserID=YOUR_KEY&ResultFormat=JSON

E. IIP (International Investment Position)

Parameters:

ParameterTypeRequiredDescription
TypeOfInvestmentstringYesALL, FinAssetsExclFinDeriv, etc.
ComponentstringYesALL or specific component.
FrequencystringYesA or Q.
YearstringYesComma-separated years or ALL.

Example:

https://apps.bea.gov/api/data?method=GetData&DatasetName=IIP&TypeOfInvestment=ALL&Component=ALL&Frequency=A&Year=2020,2021,2022,2023&UserID=YOUR_KEY&ResultFormat=JSON

F. FixedAssets

Parameters:

ParameterTypeRequiredDescription
TableNamestringYesFixed asset table ID.
YearstringYesComma-separated years or ALL.

Example:

https://apps.bea.gov/api/data?method=GetData&DatasetName=FixedAssets&TableName=FAAt101&Year=ALL&UserID=YOUR_KEY&ResultFormat=JSON

Key NIPA Table Reference

TableNameDescription
T10101Percent change in real GDP
T10105GDP (current dollars)
T10106Real GDP (chained 2017 dollars)
T10107GDP price index (percent change)
T10110GDP price deflator
T20100Personal income and its disposition
T20301Personal consumption expenditures by type
T20600Personal income and outlays
T30100Government current receipts and expenditures
T40100Foreign transactions in the national accounts
T50100Saving and investment by sector
T50105Saving and investment (real)
T60100Corporate profits
T70100GDP by major type of product
T11000Real GDP, expanded detail
T11200Contributions to GDP growth

GeoFips Reference (Common)

FIPSState
00000United States
01000Alabama
06000California
12000Florida
36000New York
48000Texas
STATEAll states
COUNTYAll counties
MSAAll metropolitan statistical areas

Notes

  • DataValue in responses is a string, sometimes with commas (e.g., "3,220,965,123"). Parse by removing commas.
  • Year=X returns only the most recent year available.
  • Year=LAST5 returns the 5 most recent years.
  • For NIPA tables, results contain multiple line items per table (different GDP components are different LineNumbers).
  • The GetParameterValues method is essential for discovering valid table names, line codes, and indicator codes for each dataset.
  • BEA also provides bulk download files at https://apps.bea.gov/iTable/ for interactive use.
  • Time periods for quarterly data use format 2024Q1, 2024Q2, etc.
  • All monetary values are in U.S. dollars unless otherwise specified. Units are indicated in CL_UNIT and UNIT_MULT fields.