IMF Data Structure API

Retrieve dataset metadata including dataflows, data structures, codelists, and concept schemes

Operations 4

GET /structure/dataflow/all/*/+ List all available IMF dataflows (datasets) #
GET /structure/datastructure/{agency}/{dsd_id}/+ Retrieve data structure definition (DSD) for a dataflow #
GET /structure/codelist/{agency}/{codelist_id}/+ Retrieve a codelist for a dimension #
GET /structure/conceptscheme/{agency}/{scheme_id}/+ Retrieve a concept scheme #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/imf-structure-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

imf-structure-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: IMF SDMX 3.0 Data Structure API
  description: 'The International Monetary Fund (IMF) SDMX 3.0 Data API provides programmatic access

    to hundreds of IMF statistical datasets.'
  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: Structure
  description: Retrieve dataset metadata including dataflows, data structures, codelists, and concept schemes
paths:
  /structure/dataflow/all/*/+:
    get:
      summary: List all available IMF dataflows (datasets)
      description: 'Returns all available dataflow definitions from the IMF SDMX API.

        Each dataflow represents a dataset such as IFS, WEO, FM, GFS, MFS, etc.

        Use the dataflow ID to query data and retrieve data structures.'
      operationId: listDataflows
      tags:
      - Structure
      parameters:
      - name: Accept
        in: header
        description: Response format
        schema:
          type: string
          default: application/json
      responses:
        '200':
          description: List of available dataflows
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      dataflows:
                        type: array
                        items:
                          $ref: '#/components/schemas/Dataflow'
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /structure/datastructure/{agency}/{dsd_id}/+:
    get:
      summary: Retrieve data structure definition (DSD) for a dataflow
      description: 'Returns the data structure definition for a specific dataset, including

        all dimensions, measures, attributes, and their positions.

        Use this to understand how to build query keys for data requests.'
      operationId: getDataStructure
      tags:
      - Structure
      parameters:
      - name: agency
        in: path
        required: true
        description: The agency that owns the data structure (e.g., IMF.STA, IMF)
        schema:
          type: string
          example: IMF.STA
      - name: dsd_id
        in: path
        required: true
        description: The data structure definition identifier
        schema:
          type: string
          example: DSD_GFS
      responses:
        '200':
          description: Data structure definition
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      dataStructures:
                        type: array
                        items:
                          $ref: '#/components/schemas/DataStructure'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /structure/codelist/{agency}/{codelist_id}/+:
    get:
      summary: Retrieve a codelist for a dimension
      description: 'Returns all valid codes and their labels for a specified codelist.

        Codelists are used to identify valid values for dimensions such as

        COUNTRY (country codes), FREQUENCY (A=Annual, Q=Quarterly, M=Monthly),

        and indicator codes specific to each dataset.'
      operationId: getCodelist
      tags:
      - Structure
      parameters:
      - name: agency
        in: path
        required: true
        description: The agency that owns the codelist
        schema:
          type: string
          example: IMF.STA
      - name: codelist_id
        in: path
        required: true
        description: The codelist identifier (e.g., CL_COUNTRY, CL_FREQ)
        schema:
          type: string
          example: CL_COUNTRY
      responses:
        '200':
          description: Codelist with codes and labels
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      codelists:
                        type: array
                        items:
                          $ref: '#/components/schemas/Codelist'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /structure/conceptscheme/{agency}/{scheme_id}/+:
    get:
      summary: Retrieve a concept scheme
      description: 'Returns concept definitions used to describe the meaning of dimensions

        and attributes in IMF datasets.'
      operationId: getConceptScheme
      tags:
      - Structure
      parameters:
      - name: agency
        in: path
        required: true
        description: The agency that owns the concept scheme
        schema:
          type: string
          example: IMF
      - name: scheme_id
        in: path
        required: true
        description: The concept scheme identifier
        schema:
          type: string
          example: CS_IFS
      responses:
        '200':
          description: Concept scheme with concept definitions
          content:
            application/json:
              schema:
                type: object
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
        code:
          type: integer
        correlationId:
          type: string
        path:
          type: string
    Dataflow:
      type: object
      description: An IMF dataset definition
      properties:
        id:
          type: string
          description: Unique dataflow identifier (e.g., IFS, GFS, FM)
          example: FM
        name:
          type: string
          description: Human-readable dataset name
          example: Fiscal Monitor
        description:
          type: string
          description: Detailed dataset description
        version:
          type: string
          description: Dataflow version
          example: 8.0.1
        agencyID:
          type: string
          description: Owning agency identifier
          example: IMF.STA
        structure:
          type: string
          description: URN reference to the associated data structure definition
    Dimension:
      type: object
      description: A dimension in an IMF dataset structure
      properties:
        id:
          type: string
          description: Dimension identifier (e.g., COUNTRY, FREQUENCY, TIME_PERIOD)
          example: COUNTRY
        position:
          type: integer
          description: Position in the dot-separated key string
          example: 2
        type:
          type: string
          description: Dimension type
          enum:
          - Dimension
          - TimeDimension
          - Measure
        conceptIdentity:
          type: string
          description: URN reference to the concept definition
    DataStructure:
      type: object
      description: Data structure definition for an IMF dataset
      properties:
        id:
          type: string
          description: Data structure identifier
        agencyID:
          type: string
          description: Owning agency
        dataStructureComponents:
          type: object
          properties:
            dimensionList:
              type: object
              properties:
                dimensions:
                  type: array
                  items:
                    $ref: '#/components/schemas/Dimension'
                timeDimensions:
                  type: array
                  items:
                    $ref: '#/components/schemas/Dimension'
            measureList:
              type: object
              properties:
                measures:
                  type: array
                  items:
                    $ref: '#/components/schemas/Dimension'
    Codelist:
      type: object
      description: A list of valid codes for a dimension
      properties:
        id:
          type: string
          description: Codelist identifier
          example: CL_COUNTRY
        agencyID:
          type: string
        codes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Code value
                example: USA
              name:
                type: string
                description: Human-readable code label
                example: United States
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
externalDocs:
  description: IMF Data Help - Using JSON RESTful Web Service
  url: https://datahelp.imf.org/knowledgebase/articles/667294-using-json-restful-web-service