World Health Organization (WHO) ICD10 API

The ICD10 API from World Health Organization (WHO) — 4 operation(s) for icd10.

Operations 4

GET /icd/release/10 Lists the available ICD-10 releases #
GET /icd/release/10/{code} Lists the available ICD-10 releases for the requested category #
GET /icd/release/10/{releaseId} This endpoint returns basic information on the released version of ICD-10 together with the chapters in it #
GET /icd/release/10/{releaseId}/{code} This endpoint returns information on the category together with its children categories #

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/who-icd10-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

who-icd10-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ICD Foundation ICD10 API
  description: "\n<p>\nICD-API is a REST API that allows programmatic access to the International Classification of Diseases (ICD).\n</p><p>\nFor most users that require accessing the ICD-11 statistical classification with codes, you need to use the <b>Linearization</b> endpoints with the linearizationId set to <b>mms</b>\n</p><p>\n<b>Foundation</b> endpoints provide information on the Foundation Component of ICD-11. \n</p><p>\n<b>ICD10</b> endpoints serves ICD-10 releases. Please note that functionality on the ICD-10 endpoints are limited. (i.e. the search is not provided)\n</p><p>\nFor more information on the API please see the <a href=\"https://icd.who.int/icdapi\">ICD-API home page </a>\n</p>\n"
  license:
    name: ' ICD-11 Terms of Use and License Agreement '
    url: https://icd.who.int/en/docs/icd11-license.pdf
  version: v2.6.0
servers:
- url: https://ghoapi.azureedge.net/api
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- oauth2:
  - icdapi_access
tags:
- name: ICD10
paths:
  /icd/release/10:
    get:
      tags:
      - ICD10
      summary: Lists the available ICD-10 releases
      operationId: GetICD10Releases
      parameters:
      - name: API-Version
        in: header
        description: "Version of the API. Values are like v1,v2.\n For example, if you provide value v2, the API will respond in the format of the version 2 of the API"
        required: true
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: "ICD-API is multi-lingual. By changing this header, you may make the API respond in different languages\nLanguages will be available as the translations of ICD-11 completes. \nThe values are language codes such as en, es, zh, etc."
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiVersion'
        '401':
          description: Unauthorized
  /icd/release/10/{code}:
    get:
      tags:
      - ICD10
      summary: Lists the available ICD-10 releases for the requested category
      operationId: GetAvailableReleasesForICD10Entity
      parameters:
      - name: code
        in: path
        description: ICD-10 category code. For blocks the code range
        required: true
        schema:
          type: string
      - name: API-Version
        in: header
        description: "Version of the API. Values are like v1,v2.\n For example, if you provide value v2, the API will respond in the format of the version 2 of the API"
        required: true
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: "ICD-API is multi-lingual. By changing this header, you may make the API respond in different languages\nLanguages will be available as the translations of ICD-11 completes. \nThe values are language codes such as en, es, zh, etc."
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiVersion'
        '401':
          description: Unauthorized
        '404':
          description: Not Found
  /icd/release/10/{releaseId}:
    get:
      tags:
      - ICD10
      summary: This endpoint returns basic information on the released version of ICD-10 together with the chapters in it
      operationId: GetICD10Release
      parameters:
      - name: releaseId
        in: path
        description: The id for the release. For ICD-10, this is generally the year e.g. 2016
        required: true
        schema:
          type: string
      - name: API-Version
        in: header
        description: "Version of the API. Values are like v1,v2.\n For example, if you provide value v2, the API will respond in the format of the version 2 of the API"
        required: true
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: "ICD-API is multi-lingual. By changing this header, you may make the API respond in different languages\nLanguages will be available as the translations of ICD-11 completes. \nThe values are language codes such as en, es, zh, etc."
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TopLevel'
        '401':
          description: Unauthorized
        '404':
          description: Not Found
  /icd/release/10/{releaseId}/{code}:
    get:
      tags:
      - ICD10
      summary: This endpoint returns  information on the category together with its children categories
      operationId: GetICD10Entity
      parameters:
      - name: releaseId
        in: path
        description: The id for the release. For ICD-10, this is generally the year e.g. 2016
        required: true
        schema:
          type: string
      - name: code
        in: path
        description: ICD-10 category code. For blocks the code range
        required: true
        schema:
          type: string
      - name: API-Version
        in: header
        description: "Version of the API. Values are like v1,v2.\n For example, if you provide value v2, the API will respond in the format of the version 2 of the API"
        required: true
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: "ICD-API is multi-lingual. By changing this header, you may make the API respond in different languages\nLanguages will be available as the translations of ICD-11 completes. \nThe values are language codes such as en, es, zh, etc."
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ICD10Entity'
        '401':
          description: Unauthorized
        '404':
          description: Not Found
components:
  schemas:
    MultiVersion:
      type: object
      properties:
        title:
          $ref: '#/components/schemas/LanguageSpecificText'
        latestRelease:
          type:
          - string
          - 'null'
          description: Latest release available for this linearization
        release:
          type:
          - array
          - 'null'
          items:
            type: string
          description: List of available releases for this linearization
      additionalProperties: false
      description: 'Class representing available versions of a given classification or classification entity

        This is used when the request is made without a relase id (or minor version)'
    TopLevel:
      type: object
      properties:
        '@context':
          type:
          - string
          - 'null'
          description: JSON-LD Context for the endpoint
        '@id':
          type:
          - string
          - 'null'
          description: unique id for the classification
        title:
          $ref: '#/components/schemas/LanguageSpecificText'
        definition:
          $ref: '#/components/schemas/LanguageSpecificText'
        child:
          type:
          - array
          - 'null'
          items:
            type: string
          description: List of top level entities
        releaseDate:
          type:
          - string
          - 'null'
          description: Release date
        releaseId:
          type:
          - string
          - 'null'
          description: Release identifier for this particular release of the classification
        browserUrl:
          type:
          - string
          - 'null'
          description: 'ICD Browser is a web site that allows users see the ICD in its hierarchical structure at the same time providing search and post-coordination features.

            Browser URL property provides a direct link to the classification in the WHO''s on-line ICD Browser.'
      additionalProperties: false
      description: Shared superclass for Foundation and Linearization top level in API response. Used only for swagger docs.
    LanguageSpecificText:
      type: object
      properties:
        '@language':
          type:
          - string
          - 'null'
          description: Language code for the string
        '@value':
          type:
          - string
          - 'null'
          description: Label in the given language
      additionalProperties: false
      description: Language specific text as used in JSON-LD
    ICD10Entity:
      type: object
      properties:
        title:
          $ref: '#/components/schemas/LanguageSpecificText'
        definition:
          $ref: '#/components/schemas/LanguageSpecificText'
        longDefinition:
          $ref: '#/components/schemas/LanguageSpecificText'
        fullySpecifiedName:
          $ref: '#/components/schemas/LanguageSpecificText'
        source:
          type:
          - string
          - 'null'
          description: URI of the foundation entity that this entity is derived from
        code:
          type:
          - string
          - 'null'
          description: Code for the ICD-11 category
        note:
          $ref: '#/components/schemas/LanguageSpecificText'
        codingHint:
          $ref: '#/components/schemas/LanguageSpecificText'
        classKind:
          type:
          - string
          - 'null'
          description: 'Class kind for the category. It could be one of the following

            - chapter : if the entity is a chapter. (i.e. at the top level of the classification

            - block : huger level entity which don''t have codes

            - category : An ICD entity that bears a code'
        child:
          type:
          - array
          - 'null'
          items:
            type: string
          description: List of URIs for the child entities
        parent:
          type:
          - string
          - 'null'
          description: List of URIs for the parent entity
        indexTerm:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Term'
          description: "ICD-11 Index terms are generated from the terms (titles, inclusions, narrower terms) included in the entity\nas well as from the foundation entities under the linearization shore line. The IndexTerm property includes \nall of the index terms of a linearization entity in one place."
        inclusion:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Term'
          description: List of inclusions for this entity
        exclusion:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Term'
          description: List of exclusions for this entity
        browserUrl:
          type:
          - string
          - 'null'
          description: 'ICD Browser is a web site that allows users see the ICD in its hierarchical structure at the same time providing search and post-coordination features.

            Browser URL property provides a direct link to the classification in the WHO''s on-line ICD Browser.'
      additionalProperties: false
      description: Class representing an ICD-10 Entity
    Term:
      type: object
      properties:
        label:
          $ref: '#/components/schemas/LanguageSpecificText'
        foundationReference:
          type:
          - string
          - 'null'
          description: 'In some cases such as in exclusions or index terms, the term itself could be coming from another entity in the classification

            In these cases foundationReference holds the foundation URI for that entity

            Index terms generated from foundation entities that are not located in the linearization have this reference'
        linearizationReference:
          type:
          - string
          - 'null'
          description: 'In some cases such as in exclusions or index terms, the term itself could be coming from another entity in the classification

            In these cases linearizationReference holds the linearization (or release) URI for that entity'
        deprecated:
          type: boolean
          description: If the term has been deprecated, this flag is set to true
      additionalProperties: false
      description: Class representing a term with language specific label and optional cross references
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://icdaccessmanagement.who.int/connect/token
          scopes:
            icdapi_access: ''