Reference · built on requestCommons signalEconomic & calendar reference

BEA API

GDP, personal income, trade, and regional accounts from the Bureau of Economic Analysis API as JSON or XML.

About

The Bureau of Economic Analysis publishes its national, industry, international, and regional accounts through one URI, https://apps.bea.gov/api/data. Every request names a UserID and a method, and a data request also names a datasetname. Four meta-data methods, GetDatasetList, GetParameterList, GetParameterValues, and GetParameterValuesFiltered, describe what is available; one method, GetData, returns it. Datasets include NIPA, NIUnderlyingDetail, FixedAssets, MNE, ITA, IIP, InputOutput, IntlServTrade, IntlServSTA, GDPbyIndustry, UnderlyingGDPbyIndustry, Regional, and APIDatasetMetaData. Results carry Dimensions, Data, and Notes nodes, with CL_UNIT and UNIT_MULT describing each value.

On Fibric, an operator reads the Regional tables for the counties you sell into and proposes a territory rebalance or a board-pack page for your approval, with the TableName, LineCode, and last-updated note attached.

This is a reference listing. It documents what Fibric would read from BEA API and what it could propose, based on the publisher's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.

Inputs

  • GetData on NIPA: the standard national income and product tables by TableName and Frequency
  • GetData on Regional: personal income, population, and per capita income by GeoFips, with COUNTY, STATE, and MSA as special values
  • GetData on GDPbyIndustry and UnderlyingGDPbyIndustry, and on ITA and IIP for international transactions and the investment position
  • Metadata from GetDatasetList, GetParameterList, and GetParameterValues; GetParameterValuesFiltered narrows LineCode or Year for one TableName
  • Notes nodes carrying the last-updated statement, plus CL_UNIT and UNIT_MULT descriptors on every result

Proposed actions

Read-only. This feed informs operators; it changes nothing.

Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.

What you can build

  • Rebalance territories on county personal income

    Read Regional table CAINC1 for the counties in each territory with Year=LAST5. When income growth diverges between territories, the operator proposes a new split and shows the GeoName rows behind it.

    With Territory Balance

  • Put GDP by industry in the board pack

    Fetch the GDPbyIndustry rows for your sector each quarter. The operator proposes a pack page with the DataValue, CL_UNIT, and the last-updated note from the response.

    With Board Pack

  • Recheck a forecast after a BEA revision

    Watch the Notes node for a new last-updated statement on the NIPA tables your forecast uses. When it changes, the operator proposes a variance rerun and lists the revised years.

    With Forecast Variance

Requirements

  • A non-disposable email address; BEA may remove registrations made with a disposable address without notice
  • Activation of the UserID by clicking the link in the registration email
  • The attribution notice from the Terms of Service displayed prominently in the application
  • Single-threaded, paced requests that wait for one result before sending the next, as BEA recommends
Authentication
A free 36-character UserID sent by email after registering at apps.bea.gov/api/signup with a name, a valid email address, and acceptance of the terms of service.

Limits

  • Throttling at 100 requests per minute, 100 MB of data per minute, and 30 errors per minute per user, with a one-minute timeout
  • A throttled call returns HTTP 429 with a RETRY-AFTER header and APIErrorCode 7
  • GetParameterValuesFiltered has not been implemented on every dataset; unsupported ones return APIErrorCode 34
  • The special values ALL and X can produce very large results; BEA advises limiting them to one parameter per request

Access and pricing

Reference listing. Public feed access is separate from Fibric integration. If you request this feed, your quote covers the build, usage, and support.

Request BEA API ↗

Questions and answers

How do I find valid parameter values?
Call GetParameterList with the datasetname to see each parameter's name, type, default, and whether multiple values are accepted. Then call GetParameterValues for the Key and Desc pairs, or GetParameterValuesFiltered to narrow one target parameter, such as LineCode for a given TableName.
What happens when I exceed the rate limit?
The API returns HTTP 429 with a RETRY-AFTER header giving seconds to wait, and the body carries APIErrorCode 7. The three limits are 100 requests, 100 MB, and 30 errors per minute; the timeout is currently one minute and may change with activity levels.
Which formats are supported?
JSON and XML, chosen with ResultFormat. If ResultFormat is missing or invalid the API returns JSON. The root object is always BEAAPI, with a Request node echoing your parameters and a Results node holding Dimensions, Data, and Notes.
Ask about BEA API

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.