openapi: 3.0.3
info:
title: IMF SDMX 3.0 Data API
description: 'The International Monetary Fund (IMF) SDMX 3.0 Data API provides programmatic access
to hundreds of IMF statistical datasets. Data is freely available with no authentication
required. Datasets include International Financial Statistics (IFS), World Economic
Outlook (WEO), Fiscal Monitor (FM), Government Finance Statistics (GFS), Monetary and
Financial Statistics (MFS), Balance of Payments (BOP), and many more.
The API follows the SDMX 3.0 (Statistical Data and Metadata eXchange) standard.
Responses are available in JSON format.
Rate limit: 50 requests per second (application-based via User-Agent header).
'
version: '3.0'
contact:
name: IMF Data Help
url: https://datahelp.imf.org
email: sdmx@imf.org
license:
name: IMF Data License
url: https://www.imf.org/external/terms.htm
termsOfService: https://www.imf.org/external/terms.htm
servers:
- url: https://api.imf.org/external/sdmx/3.0
description: IMF SDMX 3.0 API (current)
- url: http://dataservices.imf.org/REST/SDMX_JSON.svc
description: IMF SDMX JSON 2.1 API (legacy)
tags:
- name: Data
description: Retrieve actual statistical data observations from IMF datasets
paths:
/data/dataflow/{agency}/{dataflow_id}/+/{key}:
get:
summary: Retrieve data observations from an IMF dataset
description: 'Returns time-series data observations for the specified dataflow filtered
by the dimension key. The key is a dot-separated string where each position
corresponds to a dimension in the dataset''s data structure definition (DSD),
in positional order. Use ''+'' to specify multiple values for a dimension and
''*'' or blank to wildcard a dimension.
Examples:
- `A.USA.PCPI` - Annual, USA, Consumer Price Index
- `A+Q.USA+GBR.*` - Annual and Quarterly, USA and UK, all indicators
- `*.*.NGDP_RPCH` - All frequencies and countries, Real GDP Growth
Time filtering is supported via query parameters for IMF.STA datasets.
'
operationId: getData
tags:
- Data
parameters:
- name: agency
in: path
required: true
description: The agency owning the dataflow (e.g., IMF.STA, all)
schema:
type: string
example: IMF.STA
- name: dataflow_id
in: path
required: true
description: The dataflow identifier (e.g., IFS, GFS, FM, WEO, MFS, BOP)
schema:
type: string
example: IFS
- name: key
in: path
required: true
description: Dot-separated dimension key with + for multiple values and * for wildcard
schema:
type: string
example: A.USA.PCPI
- name: dimensionAtObservation
in: query
description: Specify which dimension varies at the observation level
schema:
type: string
default: TIME_PERIOD
example: TIME_PERIOD
- name: attributes
in: query
description: Level of attribute detail to include in response
schema:
type: string
default: dsd
enum:
- none
- obs
- series
- dataset
- dsd
- all
- name: measures
in: query
description: Which measures to return
schema:
type: string
default: all
- name: c[TIME_PERIOD]
in: query
description: 'Time period filter using SDMX comparison operators.
Format: ge:YYYY-{freq}N+le:YYYY-{freq}N
Examples: ge:2010-A1+le:2020-A1 (annual), ge:2010-Q1+le:2020-Q4 (quarterly)
'
schema:
type: string
example: ge:2010-A1+le:2023-A1
responses:
'200':
description: SDMX JSON data message with observations
content:
application/json:
schema:
$ref: '#/components/schemas/DataMessage'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
components:
responses:
TooManyRequests:
description: Rate limit exceeded (50 requests/second per application)
headers:
Retry-After:
schema:
type: integer
description: Seconds to wait before retrying
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Invalid request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
DataMessage:
type: object
description: SDMX 3.0 JSON data message containing observations
properties:
data:
type: object
properties:
dataSets:
type: array
items:
type: object
description: Dataset with series and observations
structures:
type: array
items:
type: object
description: Structure references for interpreting the data
meta:
type: object
description: Metadata about the response including schema and preparation timestamp
Error:
type: object
properties:
message:
type: string
code:
type: integer
correlationId:
type: string
path:
type: string
externalDocs:
description: IMF Data Help - Using JSON RESTful Web Service
url: https://datahelp.imf.org/knowledgebase/articles/667294-using-json-restful-web-service