Trading Economics Historical API
Full historical time series behind every indicator - by country and indicator with optional date ranges, by ticker, plus latest-updates endpoints for syncing revisions - capped at 10,000 rows per request.
Full historical time series behind every indicator - by country and indicator with optional date ranges, by ticker, plus latest-updates endpoints for syncing revisions - capped at 10,000 rows per request.
openapi: 3.0.1
info:
title: Trading Economics API
description: >-
REST API for Trading Economics economic data covering 196 countries -
economic indicators (interest rates, inflation, GDP, unemployment, and
15,000+ other series), the economic calendar, proprietary macro forecasts,
full historical time series, live market quotes, and company financials.
Authenticate with an API client key passed as the `c` query parameter
(format `key:secret`) or as an `Authorization` header. Output defaults to
JSON and can be switched with `f=json|csv|html`. Live streaming is a
separate WebSocket surface at wss://stream.tradingeconomics.com described
in the companion AsyncAPI document.
termsOfService: https://tradingeconomics.com/terms-of-service.aspx
contact:
name: Trading Economics
url: https://tradingeconomics.com/contact.aspx
version: '1.0'
externalDocs:
description: Trading Economics API Documentation
url: https://docs.tradingeconomics.com
servers:
- url: https://api.tradingeconomics.com
security:
- clientKeyQuery: []
- clientKeyHeader: []
paths:
/country/{country}:
get:
operationId: getIndicatorsByCountry
tags:
- Indicators
summary: Latest indicator values for one or more countries.
description: >-
Returns a snapshot of the latest values for all economic indicators for
the given country (or comma-separated countries), including interest
rates, inflation, GDP, and unemployment. Optionally filter to a
category group such as `gdp` with the `group` parameter.
parameters:
- name: country
in: path
required: true
description: Country name, or comma-separated list (e.g. `mexico,sweden`).
schema:
type: string
example: mexico
- name: group
in: query
required: false
description: Filter results to a category group (e.g. `gdp`).
schema:
type: string
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Indicator'
/country/all/{indicator}:
get:
operationId: getCountriesByIndicator
tags:
- Indicators
summary: Latest values of one indicator across all countries.
description: >-
Returns the latest value of a single indicator - such as `interest
rate`, `inflation rate`, or `gdp` - for every country covered,
supporting cross-country comparison of macroeconomic series.
parameters:
- name: indicator
in: path
required: true
description: Indicator name (e.g. `interest rate`, `gdp`).
schema:
type: string
example: interest rate
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Indicator'
/country/ticker/{ticker}:
get:
operationId: getIndicatorByTicker
tags:
- Indicators
summary: Latest indicator value by Trading Economics ticker.
parameters:
- name: ticker
in: path
required: true
description: Trading Economics indicator ticker (e.g. `usurtot`).
schema:
type: string
example: usurtot
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Indicator'
/credit-ratings:
get:
operationId: getCreditRatings
tags:
- Indicators
summary: Sovereign credit ratings for all countries.
parameters:
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreditRating'
/credit-ratings/country/{country}:
get:
operationId: getCreditRatingsByCountry
tags:
- Indicators
summary: Sovereign credit ratings for one or more countries.
parameters:
- name: country
in: path
required: true
description: Country name, or comma-separated list (e.g. `mexico,sweden`).
schema:
type: string
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreditRating'
/calendar:
get:
operationId: getCalendar
tags:
- Economic Calendar
summary: Upcoming and recent economic calendar events.
description: >-
Returns scheduled economic events - central bank interest rate
decisions, CPI, GDP, employment releases, and more - with actual,
previous, consensus forecast, and Trading Economics forecast values.
Filter by importance (1=low, 2=medium, 3=high). Limited to 1,000 rows
per request.
parameters:
- name: importance
in: query
required: false
description: Event importance filter (1=low, 2=medium, 3=high).
schema:
type: integer
enum: [1, 2, 3]
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CalendarEvent'
/calendar/country/{countries}/{startDate}/{endDate}:
get:
operationId: getCalendarByCountryAndDate
tags:
- Economic Calendar
summary: Calendar events by country and date range.
description: >-
Returns calendar events for the given countries (use `All` for every
country) between two dates, optionally filtered by importance.
parameters:
- name: countries
in: path
required: true
description: Country name(s) comma-separated, or `All`.
schema:
type: string
example: All
- name: startDate
in: path
required: true
schema:
type: string
format: date
example: '2026-07-01'
- name: endDate
in: path
required: true
schema:
type: string
format: date
example: '2026-07-31'
- name: importance
in: query
required: false
schema:
type: integer
enum: [1, 2, 3]
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CalendarEvent'
/calendar/events/country/{countries}:
get:
operationId: getCalendarEventsByCountry
tags:
- Economic Calendar
summary: Calendar event types available for one or more countries.
parameters:
- name: countries
in: path
required: true
description: Country name, or comma-separated list (e.g. `china,canada`).
schema:
type: string
example: china
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CalendarEvent'
/calendar/calendarid/{ids}:
get:
operationId: getCalendarEventsById
tags:
- Economic Calendar
summary: Calendar events by calendar ID.
parameters:
- name: ids
in: path
required: true
description: Comma-separated calendar IDs (e.g. `174108,160025,160030`).
schema:
type: string
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CalendarEvent'
/calendar/updates:
get:
operationId: getCalendarUpdates
tags:
- Economic Calendar
summary: Recently updated calendar events.
parameters:
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CalendarEvent'
/markets/commodities:
get:
operationId: getMarketsCommodities
tags:
- Markets
summary: Current quotes for commodities.
parameters:
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketQuote'
/markets/currency:
get:
operationId: getMarketsCurrencies
tags:
- Markets
summary: Current quotes for currency pairs.
parameters:
- name: cross
in: query
required: false
description: Filter crosses of a base currency (e.g. `EUR`).
schema:
type: string
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketQuote'
/markets/index:
get:
operationId: getMarketsIndexes
tags:
- Markets
summary: Current quotes for stock market indexes.
parameters:
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketQuote'
/markets/crypto:
get:
operationId: getMarketsCrypto
tags:
- Markets
summary: Current quotes for cryptocurrencies.
parameters:
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketQuote'
/markets/bond:
get:
operationId: getMarketsBonds
tags:
- Markets
summary: Current government bond yields.
description: >-
Returns government bond yields. Filter by maturity with `type` (1M,
3M, 6M, 52W, 2Y, 3Y, 5Y, 7Y, 10Y, 15Y, 20Y, 30Y) and by country with
`country` - the market-side complement to policy interest rate series.
parameters:
- name: type
in: query
required: false
description: Bond maturity (e.g. `10Y`).
schema:
type: string
enum: [1M, 3M, 6M, 52W, 2Y, 3Y, 5Y, 7Y, 10Y, 15Y, 20Y, 30Y]
- name: country
in: query
required: false
description: Filter by country (e.g. `france`).
schema:
type: string
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketQuote'
/markets/symbol/{symbols}:
get:
operationId: getMarketsBySymbol
tags:
- Markets
summary: Current quotes for specific market symbols.
parameters:
- name: symbols
in: path
required: true
description: Comma-separated market symbols (e.g. `aapl:us,indu:ind`).
schema:
type: string
example: aapl:us
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketQuote'
/markets/historical/{symbols}:
get:
operationId: getMarketsHistorical
tags:
- Markets
summary: Daily historical prices for market symbols.
parameters:
- name: symbols
in: path
required: true
description: Comma-separated market symbols.
schema:
type: string
- name: d1
in: query
required: false
description: Start date (yyyy-mm-dd).
schema:
type: string
format: date
- name: d2
in: query
required: false
description: End date (yyyy-mm-dd).
schema:
type: string
format: date
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketHistoricalPrice'
/markets/intraday/{symbols}:
get:
operationId: getMarketsIntraday
tags:
- Markets
summary: Intraday prices for market symbols.
parameters:
- name: symbols
in: path
required: true
description: Comma-separated market symbols.
schema:
type: string
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketHistoricalPrice'
/markets/search/{term}:
get:
operationId: searchMarkets
tags:
- Markets
summary: Search market instruments by term.
parameters:
- name: term
in: path
required: true
schema:
type: string
- name: category
in: query
required: false
description: Restrict search to a category (e.g. `index`, `bond`).
schema:
type: string
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MarketQuote'
/forecast/country/{countries}:
get:
operationId: getForecastsByCountry
tags:
- Forecasts
summary: Indicator forecasts for one or more countries.
description: >-
Returns multi-quarter forecasts for all economic indicators of the
given countries, built with the Trading Economics proprietary global
macro model and analyst expectations.
parameters:
- name: countries
in: path
required: true
description: Country name, or comma-separated list (e.g. `mexico,sweden`).
schema:
type: string
example: mexico
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Forecast'
/forecast/indicator/{indicators}:
get:
operationId: getForecastsByIndicator
tags:
- Forecasts
summary: Forecasts for one or more indicators across countries.
parameters:
- name: indicators
in: path
required: true
description: Indicator name(s), comma-separated (e.g. `interest rate,gdp`).
schema:
type: string
example: interest rate
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Forecast'
/forecast/country/{countries}/indicator/{indicators}:
get:
operationId: getForecastsByCountryAndIndicator
tags:
- Forecasts
summary: Forecasts by country and indicator.
parameters:
- name: countries
in: path
required: true
schema:
type: string
example: mexico,sweden
- name: indicators
in: path
required: true
schema:
type: string
example: gdp,population
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Forecast'
/forecast/ticker/{tickers}:
get:
operationId: getForecastsByTicker
tags:
- Forecasts
summary: Forecasts by Trading Economics ticker.
parameters:
- name: tickers
in: path
required: true
description: Comma-separated tickers (e.g. `usurtot,wgdpchin`).
schema:
type: string
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Forecast'
/historical/country/{countries}/indicator/{indicators}:
get:
operationId: getHistoricalByCountryAndIndicator
tags:
- Historical
summary: Historical time series by country and indicator.
description: >-
Returns the historical time series for the given countries and
indicators (both comma-separatable). Limited to 10,000 rows per
request.
parameters:
- name: countries
in: path
required: true
schema:
type: string
example: mexico
- name: indicators
in: path
required: true
schema:
type: string
example: gdp
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/HistoricalValue'
/historical/country/{countries}/indicator/{indicators}/{startDate}/{endDate}:
get:
operationId: getHistoricalByCountryIndicatorAndDates
tags:
- Historical
summary: Historical time series by country, indicator, and date range.
parameters:
- name: countries
in: path
required: true
schema:
type: string
example: mexico,sweden
- name: indicators
in: path
required: true
schema:
type: string
example: gdp,population
- name: startDate
in: path
required: true
schema:
type: string
format: date
example: '2015-01-01'
- name: endDate
in: path
required: true
schema:
type: string
format: date
example: '2015-12-31'
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/HistoricalValue'
/historical/ticker/{ticker}/{startDate}:
get:
operationId: getHistoricalByTicker
tags:
- Historical
summary: Historical time series by ticker from a start date.
parameters:
- name: ticker
in: path
required: true
schema:
type: string
example: usurtot
- name: startDate
in: path
required: true
schema:
type: string
format: date
example: '2015-03-01'
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/HistoricalValue'
/historical/latest:
get:
operationId: getHistoricalLatest
tags:
- Historical
summary: Recently released or revised indicator values.
parameters:
- name: country
in: query
required: false
schema:
type: string
- name: date
in: query
required: false
schema:
type: string
format: date
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/HistoricalValue'
/historical/updates:
get:
operationId: getHistoricalUpdates
tags:
- Historical
summary: Recently updated historical records.
parameters:
- name: d1
in: query
required: false
description: Start date filter (yyyy-mm-dd).
schema:
type: string
format: date
- name: d2
in: query
required: false
description: End date filter (yyyy-mm-dd).
schema:
type: string
format: date
- name: lu
in: query
required: false
description: Last-update date filter (yyyy-mm-dd).
schema:
type: string
format: date
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/HistoricalValue'
/financials/category/{category}:
get:
operationId: getFinancialsByCategory
tags:
- Financials
summary: Company financials snapshot by category.
parameters:
- name: category
in: path
required: true
description: Financial category (e.g. `assets`).
schema:
type: string
example: assets
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Financial'
/financials/symbol/{symbol}:
get:
operationId: getFinancialsBySymbol
tags:
- Financials
summary: Company financials snapshot by stock symbol.
parameters:
- name: symbol
in: path
required: true
description: Stock symbol (e.g. `aapl:us`).
schema:
type: string
example: aapl:us
- $ref: '#/components/parameters/format'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Financial'
components:
parameters:
format:
name: f
in: query
required: false
description: Output format. JSON is the default for most endpoints.
schema:
type: string
enum: [json, csv, html]
securitySchemes:
clientKeyQuery:
type: apiKey
in: query
name: c
description: >-
API client credentials in `key:secret` format passed as the `c` query
parameter. Obtain a key by subscribing to a plan at
developer.tradingeconomics.com.
clientKeyHeader:
type: apiKey
in: header
name: Authorization
description: API client credentials passed in the Authorization header.
schemas:
Indicator:
type: object
description: Latest value of an economic indicator for a country.
properties:
Country:
type: string
example: Mexico
Category:
type: string
example: Interest Rate
Title:
type: string
example: Mexico Interest Rate
LatestValue:
type: number
LatestValueDate:
type: string
format: date-time
PreviousValue:
type: number
PreviousValueDate:
type: string
format: date-time
Source:
type: string
Unit:
type: string
example: percent
Frequency:
type: string
example: Daily
HistoricalDataSymbol:
type: string
example: MXONBR
CategoryGroup:
type: string
example: Money
LastUpdate:
type: string
format: date-time
CreditRating:
type: object
description: Sovereign credit rating assessment for a country.
properties:
Country:
type: string
TE:
type: string
description: Trading Economics credit rating score.
TE_Outlook:
type: string
SP:
type: string
description: Standard and Poor's rating.
SP_Outlook:
type: string
Moodys:
type: string
Moodys_Outlook:
type: string
Fitch:
type: string
Fitch_Outlook:
type: string
CalendarEvent:
type: object
description: A scheduled economic calendar event.
properties:
CalendarId:
type: string
Date:
type: string
format: date-time
Country:
type: string
Category:
type: string
example: Interest Rate
Event:
type: string
example: Fed Interest Rate Decision
Reference:
type: string
ReferenceDate:
type: string
Actual:
type: string
Previous:
type: string
Forecast:
type: string
description: Average forecast among economists surveyed.
TEForecast:
type: string
description: Trading Economics proprietary forecast.
Importance:
type: integer
description: 1=low, 2=medium, 3=high.
Ticker:
type: string
Unit:
type: string
LastUpdate:
type: string
format: date-time
MarketQuote:
type: object
description: Current quote for a market instrument.
properties:
Symbol:
type: string
example: EURUSD:CUR
Ticker:
type: string
Name:
type: string
Country:
type: string
Date:
type: string
format: date-time
Last:
type: number
Group:
type: string
DailyChange:
type: number
DailyPercentualChange:
type: number
WeeklyChange:
type: number
MonthlyChange:
type: number
YearlyChange:
type: number
YTDChange:
type: number
yesterday:
type: number
lastWeek:
type: number
lastMonth:
type: number
lastYear:
type: number
unit:
type: string
MarketHistoricalPrice:
type: object
description: Historical or intraday price bar for a market symbol.
properties:
Symbol:
type: string
Date:
type: string
format: date-time
Open:
type: number
High:
type: number
Low:
type: number
Close:
type: number
Forecast:
type: object
description: Multi-quarter forecast for an economic indicator.
properties:
Country:
type: string
Category:
type: string
example: Interest Rate
Title:
type: string
LatestValue:
type: number
LatestValueDate:
type: string
format: date-time
Forecast1:
type: number
description: Forecast for the next quarter.
Forecast2:
type: number
Forecast3:
type: number
Forecast4:
type: number
ForecastDate1:
type: string
ForecastDate2:
type: string
ForecastDate3:
type: string
ForecastDate4:
type: string
HistoricalDataSymbol:
type: string
HistoricalValue:
type: object
description: One observation in an indicator's historical time series.
properties:
Country:
type: string
Category:
type: string
DateTime:
type: string
format: date-time
Value:
type: number
Frequency:
type: string
HistoricalDataSymbol:
type: string
LastUpdate:
type: string
format: date-time
Financial:
type: object
description: Company fundamentals record.
properties:
Symbol:
type: string
example: AAPL:US
Name:
type: string
Country:
type: string
Category:
type: string
Sector:
type: string
Value:
type: number
Unit:
type: string
Date:
type: string
format: date-time