> ## Documentation Index
> Fetch the complete documentation index at: https://docs.financialdatasets.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The Financial Datasets API is served at https://api.financialdatasets.ai. Authenticate with the `X-API-KEY` header; create keys at https://financialdatasets.ai. Agents can open and fund their own account without a dashboard: see https://docs.financialdatasets.ai/agents.md.
> Tool-using agents can call Financial Datasets without writing code through the hosted MCP server at https://mcp.financialdatasets.ai/.
> The OpenAPI spec at https://financialdatasets.ai/openapi.json is the source of truth for request and response schemas.
> The index of every docs page is at https://docs.financialdatasets.ai/llms.txt. Append .md to any docs URL to get that page as Markdown.

# Latest GDP Report API

> The latest print of all 12 US growth and income series in one call, including real GDP growth, real and nominal GDP, corporate profits, personal income, and the saving rate, with the change from the prior period and from a year earlier.

### Overview

The GDP Snapshot API returns the most recent print of every growth and income series we track: 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. That is 12 rows, each with the change from the prior period and from a year earlier computed for you. Quarterly series show their latest quarter and monthly series their latest month. Pass `series` to get one row.

We source the data directly from authoritative government sources. The snapshot refreshes within minutes of each release. To receive each release without polling, subscribe to the `gdp.created` [webhook](https://docs.financialdatasets.ai/webhooks/events.md).

To get started, please create an account and grab your **API key** at [financialdatasets.ai](https://financialdatasets.ai).

You will use the API key to authenticate your API requests.

### Coverage

| History | Series | Updated |
| - | - | - |
| Latest period | 12 | Quarterly and monthly |

### Series

Quarterly: `real_gdp_growth`, `real_gdp`, `nominal_gdp`, `consumer_spending_contribution`, `investment_contribution`, `net_exports_contribution`, `government_contribution`, `real_gdi_growth`, `corporate_profits`. Monthly: `personal_income`, `saving_rate`, `real_consumer_spending`. Every series is seasonally adjusted. The full list is one free `GET` request away:
[https://api.financialdatasets.ai/macro/gdp/series/](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, the first day of the month for monthly series.
* `value` is the published figure in the series' units (percent, percentage points, billions of dollars at an annual rate).
* `change_prior` and `change_year` are `value` minus the prior period's value and minus the value one year earlier, in the same units.
* `change_year_pct` is the year change as a percent, rounded to one decimal; `null` for series measured in percent or percentage points, whose change is stated in points.
* A change is `null` when the comparison period was not published.
* Each row carries its own `date`. `real_gdi_growth` and `corporate_profits` are published with a later estimate of a quarter than the other quarterly series, so their row can be one quarter behind.

### Getting Started

There are only 2 steps for making a successful API call:

1. Add your API key to the header of the request as `X-API-KEY`.
2. Execute the API request. Add `series` to get one series instead of all 12.

### Example

```python GDP Snapshot theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
import requests

# add your API key to the headers
headers = {
    "X-API-KEY": "your_api_key_here"
}

# create the URL
url = 'https://api.financialdatasets.ai/macro/gdp/snapshot'

# make API request
response = requests.get(url, headers=headers)

# parse the latest prints from the response
gdp = response.json().get('gdp')
```

### Example Response

```json theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
{
  "gdp": [
    {
      "series": "real_gdp_growth",
      "date": "2026-07-01",
      "value": 3.4,
      "change_prior": 1.2,
      "change_year": -0.5,
      "change_year_pct": null
    },
    {
      "series": "real_gdp",
      "date": "2026-07-01",
      "value": 24611.077,
      "change_prior": 203.066,
      "change_year": 498.111,
      "change_year_pct": 2.1
    },
    {
      "series": "personal_income",
      "date": "2026-09-01",
      "value": 27707.845,
      "change_prior": 54.473,
      "change_year": 1102.935,
      "change_year_pct": 4.1
    }
  ]
}
```

The live response has one row per series, 12 in total.


## OpenAPI

````yaml GET /macro/gdp/snapshot
openapi: 3.0.1
info:
  title: Financial Datasets API
  description: >-
    Stock market API with real-time and historical financial data for 27,000+
    tickers over 30+ years. Financial statements, equity prices, insider trades,
    SEC filings, and more.
  version: 1.0.0
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  contact:
    name: API Support
    url: mailto:support@financialdatasets.ai
    email: support@financialdatasets.ai
  termsOfService: https://financialdatasets.ai/terms-of-use
servers:
  - url: https://api.financialdatasets.ai/
    description: Production server
security:
  - X-API-KEY: []
tags:
  - name: Financial Statements
    description: Access to income statements, balance sheets, and cash flow statements
  - name: Market Data
    description: Real-time and historical price data
  - name: Company Information
    description: Company facts like ticker, name, and description
  - name: Earnings
    description: Earnings data and related information
  - name: News
    description: Real-time and historical news articles
  - name: SEC Filings
    description: SEC filings and regulatory documents
  - name: Insider Trades
    description: Insider trading activity and transactions
  - name: Activist Ownership
    description: Activist stakes from SEC Schedule 13D filings, in real time
  - name: Beneficial Ownership
    description: >-
      Holders of more than 5% of a company's shares, from SEC Schedules 13D and
      13G
  - name: Insider Ownership
    description: Insider ownership statements from SEC Forms 3 and 5
  - name: Institutional Holdings
    description: SEC-direct 13F equity holdings of institutional investment managers
  - name: IPOs
    description: >-
      Upcoming IPOs from SEC registration statements (Form S-1), with extracted
      pre-IPO financial statements
  - name: Index Funds
    description: >-
      ETF and index-fund holdings, weights, and the funds that hold a given
      security
  - name: Financial Metrics
    description: Financial ratios, metrics, and key performance indicators
  - name: Macroeconomics
    description: Real-time and historical macroeconomic data like interest rates
  - name: KPIs
    description: Sector-specific operational KPIs extracted from earnings releases.
  - name: Agent Account
    description: Self-serve account creation and funding for AI agents.
  - name: Search
    description: Search financial documents with one question and get cited passages back
paths:
  /macro/gdp/snapshot:
    get:
      tags:
        - Macroeconomics
      summary: GDP (Snapshot)
      description: >-
        The most recent print of every growth and income series (12 rows:
        quarterly series on their latest quarter, monthly series on their latest
        month), or of one series when series is given, each with the change from
        the prior period and from a year earlier.
      operationId: getGDPSnapshot
      parameters:
        - name: series
          in: query
          description: >-
            Optional series id to return one row instead of all 12, e.g.
            nominal_gdp.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: GDP snapshot response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GDPSnapshotResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
components:
  schemas:
    GDPSnapshotResponse:
      type: object
      properties:
        gdp:
          type: array
          items:
            $ref: '#/components/schemas/GDPObservation'
    GDPObservation:
      type: object
      properties:
        series:
          type: string
          description: The series id, e.g. real_gdp_growth.
        date:
          type: string
          description: >-
            The reference period in YYYY-MM-DD format: the first day of the
            quarter for quarterly series (2026-07-01 for the third quarter of
            2026), the first day of the month for monthly series. Not the
            release date.
        value:
          type: number
          nullable: true
          description: >-
            The published figure in the series' units (percent, percentage
            points, billions of dollars at an annual rate), as of the latest
            estimate. Null when the period was not published.
        change_prior:
          type: number
          nullable: true
          description: >-
            value minus the prior period's value (prior quarter or prior month),
            in the same units. Null when either period was not published.
        change_year:
          type: number
          nullable: true
          description: >-
            value minus the value one year earlier (the same quarter or month a
            year back), in the same units. Null when either period was not
            published.
        change_year_pct:
          type: number
          nullable: true
          description: >-
            change_year as a percent of the year-earlier value, rounded to one
            decimal. Null when either period was not published, and always null
            for series measured in percent or percentage points, whose change is
            stated in points in change_year.
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: A short error message.
        message:
          type: string
          description: A more detailed error message.
  responses:
    BadRequestError:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Bad Request
            message: Invalid request parameters
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Unauthorized
            message: Invalid API key provided
    PaymentRequiredError:
      description: The request requires a paid subscription
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Payment Required
            message: >-
              This endpoint requires a paid subscription. Please upgrade your
              plan.
    NotFoundError:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Not Found
            message: Ticker XXXX not found
  securitySchemes:
    X-API-KEY:
      type: apiKey
      name: X-API-KEY
      description: API key for authentication.
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.