ITU · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the ITU DataHub API

9 actions 9 updates update extends openapi/itu-datahub-openapi.yml
Authorship not recorded No authorship marker is recorded for this file. It is not presented as the provider's.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-identity-warningx-apievangelist-provenancex-apievangelist-stabilityx-apievangelist-supportx-apievangelist-termsx-apievangelist-artifactsx-apievangelist-rate-limitsx-apievangelist-cors

Targets 8

$.info
$.servers[0]
$.paths['/data/bycode/{codeID}'].get
$.paths['/idi/data/bycountryid/{countryID}'].get
$.paths['/umc/bycountryid/{countryID}'].get
$.paths['/dictionaries/getbyid/{codeID}'].get
$.components.schemas.DataPoint
$.components.schemas.Country

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the ITU DataHub API
  version: 1.0.0
extends: openapi/itu-datahub-openapi.yml
x-apievangelist-note: >-
  ITU publishes no OpenAPI, so the document this overlay extends was itself derived by API
  Evangelist from live observed responses. This overlay carries the annotations that describe the
  API's real-world operating conditions — provenance, the absence of a lifecycle contract, and the
  identifier and payload traps a consumer will hit — separately from the description of the surface
  itself.
actions:
- target: $.info
  update:
    x-apievangelist-provenance: derived from live anonymous probes, 2026-07-26
    x-apievangelist-stability: unstable-by-omission
    x-apievangelist-support: none published
    x-apievangelist-terms: no terms of programmatic use published
- target: $.info
  update:
    x-apievangelist-artifacts:
      authentication: authentication/itu-authentication.yml
      conventions: conventions/itu-conventions.yml
      errors: errors/itu-problem-types.yml
      lifecycle: lifecycle/itu-lifecycle.yml
      conformance: conformance/itu-conformance.yml
      data_model: data-model/itu-data-model.yml
      mcp: mcp/itu-mcp.yml
      skills: skills/_index.yml
- target: $.servers[0]
  update:
    x-apievangelist-rate-limits: none published; no rate-limit headers returned. Self-throttle.
    x-apievangelist-cors: 'access-control-allow-origin: * — callable directly from a browser.'
- target: $.paths['/data/bycode/{codeID}'].get
  update:
    x-apievangelist-payload-warning: >-
      Returns the full cross-country series in one unpaginated array — roughly 1.1 MB for codeID
      11624. Prefer getDataByCodeAndIso where a single country is needed.
- target: $.paths['/idi/data/bycountryid/{countryID}'].get
  update:
    x-apievangelist-identity-warning: >-
      Keys on the numeric ITU CountryID from listCountries, NOT the ISO 3166-1 code. Supplying an
      ISO code or an unknown id returns HTTP 200 with an empty array rather than an error.
- target: $.paths['/umc/bycountryid/{countryID}'].get
  update:
    x-apievangelist-identity-warning: >-
      Keys on the numeric ITU CountryID from listCountries, NOT the ISO 3166-1 code.
- target: $.paths['/dictionaries/getbyid/{codeID}'].get
  update:
    x-apievangelist-error-warning: >-
      An unknown codeID returns HTTP 500 with a raw JavaScript TypeError string in the body. Treat
      it as "no such indicator", and resolve codeIDs from getIndicatorCategories first.
- target: $.components.schemas.DataPoint
  update:
    x-apievangelist-type-warning: >-
      answer[].value is a STRING on this schema but a NUMBER on AggregatePoint. Parse defensively.
- target: $.components.schemas.Country
  update:
    x-apievangelist-naming-warning: >-
      This is the only endpoint using PascalCase field names (CountryID, IsoCode, ShortName). Every
      other DataHub response uses camelCase.