Skip to main content
GET
GDP (Historical)

Overview

The Financial Datasets GDP API returns one US growth or income series per request: real GDP growth, the real and nominal level of GDP, the four contributions to growth, income-side growth (GDI), corporate profits, personal income, the saving rate, and real consumer spending, with the change from the prior period and from a year earlier computed for you. It covers 12 series from 1947 to today, updated within minutes of each release. The quarterly series start in 1947, personal income and the saving rate in 1959, and real consumer spending in 2007. The data comes directly from authoritative government sources (data provenance). You can call it as a REST endpoint with an API key, or from Claude, ChatGPT, Cursor, and other AI apps through the MCP server, or pay per request with x402. Pricing starts at $20. Values are in each series’ own units (percent, percentage points, billions of dollars); the changes are in the same units, plus a percent change over the year for dollar series. To get started, please create an account and grab your API key at financialdatasets.ai. You will use the API key to authenticate your API requests.

Coverage

Series

Every series is seasonally adjusted. Quarterly (date is the first day of the quarter): Monthly (date is the first day of the month): You can fetch this list, with each series’ frequency and first available date, with a free GET request to: https://api.financialdatasets.ai/macro/gdp/series/

Reading the fields

  • date is the reference period, not the release date: the first day of the quarter for quarterly series (2026-07-01 is the third quarter of 2026, first published in late October) and the first day of the month for monthly series.
  • value is the published figure in the series’ units. Dollar series are in billions at a seasonally adjusted annual rate. The growth rates are quarter over quarter at an annual rate.
  • The four contributions are in percentage points and add up to real_gdp_growth, within rounding.
  • change_prior is value minus the prior period’s value: the prior quarter for quarterly series, the prior month for monthly. Same units as value.
  • change_year is value minus the value one year earlier: the same quarter or month a year back. Same units as value.
  • change_year_pct is change_year as a percent of the year-earlier value, rounded to one decimal. For real_gdp it is the year-over-year growth rate. It is null for series measured in percent or percentage points: their change is stated in points, in change_year.
  • A change is null when the comparison period was not published.
  • Each quarter is estimated three times, about a month apart (advance, second, third). History holds the latest published values: each estimate replaces the one before it.
  • real_gdi_growth and corporate_profits are published with a later estimate of a quarter than the other quarterly series, so their newest row can be one quarter behind.

Getting Started

There are only 3 steps for making a successful API call:
  1. Add your API key to the header of the request as X-API-KEY.
  2. Add the series parameter, which is required. Optionally add start_date and end_date (inclusive, YYYY-MM-DD). Any day inside a quarter or month selects that period. With no dates you get the trailing five years.
  3. Execute the API request.
Rows come newest first in pages of up to 10. When more rows remain, the response includes a next_page_url; request it as-is to get the next page. See the pagination guide.

Example

GDP

Example Response

FAQ

Is date the release date?

No. date is the reference period. For quarterly series it is the first day of the quarter: 2026-07-01 is the third quarter of 2026, first published in late October. For monthly series it is the first day of the month.

Are the three estimates of a quarter included?

History holds the latest published values. Each quarter is estimated three times, about a month apart, and each estimate replaces the stored values. To receive each estimate as it is published, subscribe to the gdp.created webhook.

How do I get year-over-year GDP growth?

Request real_gdp and read change_year_pct. real_gdp_growth is the quarter-over-quarter rate at an annual rate, the headline number of each release.

Why is change_year_pct null for some series?

It is null for series measured in percent or percentage points. A rate’s change is stated in points, in change_year.

Can an AI agent use this data?

Yes. Claude, ChatGPT, Cursor, and other MCP clients reach it through the Financial Datasets MCP server. An agent with a wallet can also pay per request with x402, with no account.

Authorizations

X-API-KEY
string
header
required

API key for authentication.

Query Parameters

series
string
required

The series id, e.g. real_gdp_growth. Nine quarterly series (real_gdp_growth, real_gdp, nominal_gdp, consumer_spending_contribution, investment_contribution, net_exports_contribution, government_contribution, real_gdi_growth, corporate_profits) and three monthly ones (personal_income, saving_rate, real_consumer_spending), all seasonally adjusted. Use the /macro/gdp/series endpoint to get the list.

start_date
string

The first period to return, inclusive, in YYYY-MM-DD format; any day inside a quarter or month selects that period. Defaults to five years before end_date when both dates are omitted; omit it with an end_date to get all available history through that date.

end_date
string

The last period to return, inclusive, in YYYY-MM-DD format. Defaults to today.

cursor
string

Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.

Response

GDP response

gdp
object[]
next_page_url
string

Absolute URL of the next page of results. Present only when more results remain; request it as-is to continue. Each page holds up to 10 records.