World Bank Indicators API

The Indicators API from World Bank — 5 operation(s) for indicators.

Operations 5

GET /country/all/indicator/{indicator_id} Get indicator data for all countries #
GET /country/{country_code}/indicator/{indicator_id} Get indicator data for a specific country #
GET /indicator List all indicators #
GET /indicator/{indicator_id} Get indicator metadata #
GET /topic/{topic_id}/indicator List indicators by topic #

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/worldbank-indicators-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

worldbank-indicators-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: World Bank Indicators API
  description: The World Bank Indicators API provides programmatic access to nearly 16,000 time series development indicators.
  contact:
    name: World Bank Data Help Desk
    url: https://datahelpdesk.worldbank.org
    email: data@worldbank.org
  license:
    name: Creative Commons Attribution 4.0
    url: https://creativecommons.org/licenses/by/4.0/
servers:
- url: https://api.worldbank.org/v2
  description: World Bank API v2
tags:
- name: Indicators
paths:
  /country/all/indicator/{indicator_id}:
    get:
      summary: Get indicator data for all countries
      description: Returns time series data for the specified indicator across all countries. Common indicators include SP.POP.TOTL (Population), NY.GDP.MKTP.CD (GDP), SP.DYN.IMRT.IN (Infant mortality), SE.ADT.LITR.ZS (Literacy rate).
      operationId: getIndicatorAllCountries
      tags:
      - Indicators
      parameters:
      - name: indicator_id
        in: path
        description: World Bank indicator code (e.g., SP.POP.TOTL, NY.GDP.MKTP.CD)
        required: true
        schema:
          type: string
      - name: date
        in: query
        description: 'Date range filter. Single year (2010), range (2010:2020), or monthly (2010M01:2010M12) or quarterly (2010Q1:2010Q4).

          '
        required: false
        schema:
          type: string
      - name: format
        in: query
        description: Response format
        required: false
        schema:
          type: string
          enum:
          - json
          - xml
          - jsonp
          default: json
      - name: page
        in: query
        description: Page number
        required: false
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        description: Records per page (max 1000)
        required: false
        schema:
          type: integer
          default: 50
          maximum: 1000
      - name: mrv
        in: query
        description: Returns the most recent values for the specified number of years
        required: false
        schema:
          type: integer
      - name: gap_fill
        in: query
        description: Fills missing values with the previous non-empty value when used with mrv
        required: false
        schema:
          type: string
          enum:
          - Y
          - N
      - name: frequency
        in: query
        description: Frequency of returned data (M=monthly, Q=quarterly, Y=yearly)
        required: false
        schema:
          type: string
          enum:
          - M
          - Q
          - Y
      responses:
        '200':
          description: Indicator data for all countries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IndicatorResponse'
  /country/{country_code}/indicator/{indicator_id}:
    get:
      summary: Get indicator data for a specific country
      description: Returns time series data for the specified indicator for a single country. Supports date filtering, pagination, and most-recent-value queries.
      operationId: getIndicatorByCountry
      tags:
      - Indicators
      parameters:
      - name: country_code
        in: path
        description: ISO 3166-1 country code (e.g., US, USA, CN, CHN, AFG, ALB)
        required: true
        schema:
          type: string
      - name: indicator_id
        in: path
        description: World Bank indicator code (e.g., SP.POP.TOTL, NY.GDP.MKTP.CD)
        required: true
        schema:
          type: string
      - name: date
        in: query
        description: Date range filter (single year, range, monthly, or quarterly)
        required: false
        schema:
          type: string
      - name: format
        in: query
        description: Response format
        required: false
        schema:
          type: string
          enum:
          - json
          - xml
          - jsonp
          default: json
      - name: page
        in: query
        description: Page number
        required: false
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        description: Records per page (max 1000)
        required: false
        schema:
          type: integer
          default: 50
          maximum: 1000
      - name: mrv
        in: query
        description: Most recent values - number of years
        required: false
        schema:
          type: integer
      - name: frequency
        in: query
        description: Data frequency (M=monthly, Q=quarterly, Y=yearly)
        required: false
        schema:
          type: string
          enum:
          - M
          - Q
          - Y
      responses:
        '200':
          description: Indicator data for the specified country
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IndicatorResponse'
  /indicator:
    get:
      summary: List all indicators
      description: Returns a paginated list of all available World Bank indicators with metadata.
      operationId: listIndicators
      tags:
      - Indicators
      parameters:
      - name: format
        in: query
        description: Response format
        required: false
        schema:
          type: string
          enum:
          - json
          - xml
          default: json
      - name: page
        in: query
        description: Page number
        required: false
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        description: Records per page (max 1000)
        required: false
        schema:
          type: integer
          default: 50
          maximum: 1000
      responses:
        '200':
          description: List of indicators
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                  - $ref: '#/components/schemas/PaginationData'
                  - type: array
                    items:
                      $ref: '#/components/schemas/Indicator'
  /indicator/{indicator_id}:
    get:
      summary: Get indicator metadata
      description: Returns metadata for a specific indicator including name, source, and topic classification.
      operationId: getIndicator
      tags:
      - Indicators
      parameters:
      - name: indicator_id
        in: path
        description: World Bank indicator code (e.g., SP.POP.TOTL)
        required: true
        schema:
          type: string
      - name: format
        in: query
        description: Response format
        required: false
        schema:
          type: string
          enum:
          - json
          - xml
          default: json
      responses:
        '200':
          description: Indicator metadata
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                  - $ref: '#/components/schemas/PaginationData'
                  - type: array
                    items:
                      $ref: '#/components/schemas/Indicator'
  /topic/{topic_id}/indicator:
    get:
      summary: List indicators by topic
      description: Returns a list of indicators belonging to a specific topic.
      operationId: listIndicatorsByTopic
      tags:
      - Indicators
      parameters:
      - name: topic_id
        in: path
        description: Topic ID (1-21, e.g., 1=Agriculture, 2=Aid Effectiveness)
        required: true
        schema:
          type: integer
      - name: format
        in: query
        description: Response format
        required: false
        schema:
          type: string
          enum:
          - json
          - xml
          default: json
      - name: page
        in: query
        description: Page number
        required: false
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        description: Records per page
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: List of indicators for the specified topic
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                  - $ref: '#/components/schemas/PaginationData'
                  - type: array
                    items:
                      $ref: '#/components/schemas/Indicator'
components:
  schemas:
    IndicatorValue:
      type: object
      description: A single data point for an indicator
      properties:
        indicator:
          type: object
          properties:
            id:
              type: string
              description: Indicator code
              example: SP.POP.TOTL
            value:
              type: string
              description: Indicator name
              example: Population, total
        country:
          type: object
          properties:
            id:
              type: string
              description: Country code
              example: US
            value:
              type: string
              description: Country name
              example: United States
        countryiso3code:
          type: string
          description: ISO 3166-1 alpha-3 country code
          example: USA
        date:
          type: string
          description: Year or date period of measurement
          example: '2022'
        value:
          type:
          - number
          - 'null'
          description: Numeric value of the indicator
          example: 335893238
        unit:
          type: string
          description: Unit of measurement
          example: ''
        obs_status:
          type: string
          description: Observation status code
          example: ''
        decimal:
          type: integer
          description: Number of decimal places for display
          example: 0
    Indicator:
      type: object
      description: World Bank development indicator metadata
      properties:
        id:
          type: string
          description: Indicator code
          example: SP.POP.TOTL
        name:
          type: string
          description: Indicator name
          example: Population, total
        unit:
          type: string
          description: Unit of measurement
          example: ''
        source:
          $ref: '#/components/schemas/ClassificationRef'
        sourceNote:
          type: string
          description: Methodological notes about the indicator
        sourceOrganization:
          type: string
          description: Organization that collects this data
          example: (1) United Nations Population Division.
        topics:
          type: array
          items:
            $ref: '#/components/schemas/ClassificationRef'
    ClassificationRef:
      type: object
      description: Reference to a World Bank classification category
      properties:
        id:
          type: string
          description: Classification code
          example: NAC
        iso2code:
          type: string
          description: ISO 2-character code
          example: XU
        value:
          type: string
          description: Human-readable classification name
          example: North America
    PaginationData:
      type: object
      description: Pagination metadata returned as the first element of the response array
      properties:
        page:
          type: integer
          description: Current page number
          example: 1
        pages:
          type: integer
          description: Total number of pages
          example: 10
        per_page:
          type: integer
          description: Records per page
          example: 50
        total:
          type: integer
          description: Total number of records
          example: 500
        sourceid:
          type:
          - string
          - 'null'
          description: Source identifier
          example: '2'
        sourcename:
          type:
          - string
          - 'null'
          description: Source name
          example: World Development Indicators
        lastupdated:
          type:
          - string
          - 'null'
          description: Date of last data update
          example: '2024-06-28'
    IndicatorResponse:
      type: array
      description: Standard World Bank API response containing pagination data and indicator values
      items:
        oneOf:
        - $ref: '#/components/schemas/PaginationData'
        - type: array
          items:
            $ref: '#/components/schemas/IndicatorValue'