ITU

ITU Data API

Indicator time series, by indicator, country and region aggregate.

Operations 3

GET /data/bycode/{codeID} Get an indicator time series for every country #
GET /data/bycode/{codeID}/byiso/{iso} Get an indicator time series for one country #
GET /aggregation/bycodeid/{codeID}/byregionid/{regionID} Get a regional aggregate series for an indicator #

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/itu-data-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

itu-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ITU DataHub Data API
  version: '2'
  summary: Undocumented public JSON API behind the ITU DataHub ICT statistics portal.
  description: ITU publishes **no** OpenAPI, no reference documentation, and no terms of programmatic use for this API.
  contact:
    name: ITU ICT Data & Analytics Division
    email: indicators@itu.int
    url: https://datahub.itu.int/
  license:
    name: ITU Terms of Use
    url: https://www.itu.int/en/about/Pages/terms-of-use.aspx
  x-apievangelist-provenance:
    method: derived
    derived_from: live anonymous HTTP probes + the public DataHub client bundle
    probed: '2026-07-26'
    provider_published_spec: false
    note: Derived by API Evangelist from observed responses. ITU has not published, reviewed, or endorsed this description.
servers:
- url: https://api.datahub.itu.int/v2
  description: Production (AWS API Gateway + CloudFront). Anonymous.
tags:
- name: Data
  description: Indicator time series, by indicator, country and region aggregate.
paths:
  /data/bycode/{codeID}:
    get:
      operationId: getDataByCode
      tags:
      - Data
      summary: Get an indicator time series for every country
      description: Returns the full observed time series for one indicator across every country — one record per country-year, each with the value, the reporting source, and any data note. Responses are large (the Internet-users series returns roughly 1.1 MB).
      parameters:
      - $ref: '#/components/parameters/codeID'
      responses:
        '200':
          description: The time series. An unknown `codeID` returns HTTP 200 with an empty array rather than a 404 — observed on `codeID=999999999`.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DataPoint'
              examples:
                internetUsersAruba:
                  summary: First element of the live response for codeID 11624
                  value:
                  - codeID: 11624
                    shortName: Aruba
                    dataID: 4790044
                    dataNote: ''
                    dataYear: 2000
                    code: i99H
                    dataSource: Servicio di Telecomunicacion di Aruba (SETAR).
                    answer:
                    - value: '15.4428229480349'
                      id: 4790044
                    countryID: 4
                    isoCode: ABW
  /data/bycode/{codeID}/byiso/{iso}:
    get:
      operationId: getDataByCodeAndIso
      tags:
      - Data
      summary: Get an indicator time series for one country
      description: Returns the observed time series for one indicator filtered to a single country by its ISO 3166-1 alpha-3 code. The country-scoped form of `getDataByCode`, and the practical way to use this API without downloading the whole series.
      parameters:
      - $ref: '#/components/parameters/codeID'
      - $ref: '#/components/parameters/iso'
      responses:
        '200':
          description: The country time series. An unrecognised ISO code returns HTTP 200 with an empty array — observed on `iso=ZZZ`.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DataPoint'
              examples:
                internetUsersUSA:
                  value:
                  - codeID: 11624
                    shortName: United States
                    answer:
                    - value: '43.0791626375201'
                      id: 4792974
                    dataID: 4792974
                    code: i99H
                    isoCode: USA
                    dataNote: ''
                    dataYear: 2000
                    countryID: 244
                    dataSource: ITU estimate.
  /aggregation/bycodeid/{codeID}/byregionid/{regionID}:
    get:
      operationId: getRegionalAggregate
      tags:
      - Data
      summary: Get a regional aggregate series for an indicator
      description: Returns the ITU-computed regional aggregate for one indicator and one region — one record per year with the aggregate value and, where applicable, the percentage form.
      parameters:
      - $ref: '#/components/parameters/codeID'
      - $ref: '#/components/parameters/regionID'
      responses:
        '200':
          description: The regional aggregate series.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AggregatePoint'
              examples:
                arabStates2005:
                  value:
                  - codeID: 11624
                    code: i99H
                    regionID: 647
                    regionName: Arab States
                    classID: 177
                    dataYear: 2005
                    dataID: 71287
                    databaseID: 1
                    answer:
                    - value: 8.6
                    answersPercentage:
                    - value: 8.6
                    createDate: '2024-04-24T18:20:23.000Z'
                    updateDate: '2025-11-17T13:13:18.000Z'
                    numberOfAnswer: null
                    internalNote: null
components:
  schemas:
    DataPoint:
      type: object
      description: One country-year observation of an indicator.
      properties:
        dataID:
          type: integer
        codeID:
          type: integer
        code:
          type: string
        countryID:
          type: integer
        isoCode:
          type: string
        shortName:
          type: string
        dataYear:
          type: integer
        dataSource:
          type: string
          description: The reporting source
          e.g. a national regulator or "ITU estimate.".: null
        dataNote:
          type: string
        answer:
          type: array
          description: The observed value. Values are returned as strings on this endpoint.
          items:
            type: object
            properties:
              value:
                type: string
              id:
                type: integer
    AggregatePoint:
      type: object
      description: One region-year aggregate of an indicator, computed by ITU.
      properties:
        dataID:
          type: integer
        codeID:
          type: integer
        code:
          type: string
        regionID:
          type: integer
        regionName:
          type: string
        classID:
          type: integer
        databaseID:
          type: integer
        dataYear:
          type: integer
        answer:
          type: array
          items:
            type: object
            properties:
              value:
                type: number
        answersPercentage:
          type: array
          items:
            type: object
            properties:
              value:
                type: number
        numberOfAnswer:
          type:
          - integer
          - 'null'
        internalNote:
          type:
          - string
          - 'null'
        createDate:
          type: string
          format: date-time
        updateDate:
          type: string
          format: date-time
  parameters:
    iso:
      name: iso
      in: path
      required: true
      description: ISO 3166-1 alpha-3 country code, from `listCountries`.
      schema:
        type: string
        minLength: 3
        maxLength: 3
      example: USA
    regionID:
      name: regionID
      in: path
      required: true
      description: The region identifier, from `listRegions`.
      schema:
        type: integer
      example: 3
    codeID:
      name: codeID
      in: path
      required: true
      description: The DataHub indicator identifier, from `getIndicatorCategories`.
      schema:
        type: integer
      example: 11624
externalDocs:
  description: ITU DataHub portal (the only human surface for this API)
  url: https://datahub.itu.int/