cdisc SDTM API

Study Data Tabulation Model standards

OpenAPI Specification

cdisc-sdtm-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: CDISC Library ADaM SDTM API
  description: The CDISC Library API is a REST API that delivers CDISC standards metadata to software applications that automate standards-based processes. It uses linked data to provide access to SDTM, ADaM, and other clinical data standards. Responses are available in JSON, XML, ODM, CSV, and Excel formats. Access requires a CDISC Library account and an API key obtained from the CDISC Library API Management (APIM) Developer Portal.
  version: 1.0.0
  contact:
    name: CDISC Library Support
    url: https://jira.cdisc.org/servicedesk/customer/portal/2
  license:
    name: CDISC License
    url: https://www.cdisc.org/cdisc-library
servers:
- url: https://library.cdisc.org/api
  description: CDISC Library Production API
- url: https://library.cdisc.org/api/cosmos/v2
  description: CDISC Biomedical Concepts API v2
security:
- apiKey: []
tags:
- name: SDTM
  description: Study Data Tabulation Model standards
paths:
  /mdr/sdtm:
    get:
      operationId: listSdtmVersions
      summary: List all SDTM standard versions
      description: Returns all published versions of the SDTM (Study Data Tabulation Model) standard.
      tags:
      - SDTM
      responses:
        '200':
          description: List of SDTM versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /mdr/sdtm/{version}:
    get:
      operationId: getSdtmVersion
      summary: Get SDTM standard by version
      description: Returns the SDTM standard metadata for a specific version (e.g., 3-3, 3-4).
      tags:
      - SDTM
      parameters:
      - name: version
        in: path
        required: true
        description: SDTM version string (e.g., 3-3, 3-4, 2-0)
        schema:
          type: string
          example: 3-3
      responses:
        '200':
          description: SDTM standard metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Standard'
        '404':
          $ref: '#/components/responses/NotFound'
  /mdr/sdtm/{version}/classes:
    get:
      operationId: listSdtmClasses
      summary: List SDTM domain classes for a version
      description: Returns all domain classes (Events, Findings, Interventions, etc.) for the specified SDTM version.
      tags:
      - SDTM
      parameters:
      - name: version
        in: path
        required: true
        schema:
          type: string
          example: 3-3
      responses:
        '200':
          description: List of SDTM domain classes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassList'
        '404':
          $ref: '#/components/responses/NotFound'
  /mdr/sdtm/{version}/datasets:
    get:
      operationId: listSdtmDatasets
      summary: List SDTM datasets (domains) for a version
      description: Returns all SDTM domains for the specified version, such as AE, CM, DM, EX.
      tags:
      - SDTM
      parameters:
      - name: version
        in: path
        required: true
        schema:
          type: string
          example: 3-3
      responses:
        '200':
          description: List of SDTM domains
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatasetList'
  /mdr/sdtm/{version}/datasets/{dataset}:
    get:
      operationId: getSdtmDataset
      summary: Get SDTM dataset (domain) specification
      description: Returns the full specification for a single SDTM domain including all variables.
      tags:
      - SDTM
      parameters:
      - name: version
        in: path
        required: true
        schema:
          type: string
          example: 3-3
      - name: dataset
        in: path
        required: true
        description: SDTM domain abbreviation (e.g., AE, CM, DM)
        schema:
          type: string
          example: AE
      responses:
        '200':
          description: SDTM domain specification
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Dataset:
      type: object
      properties:
        name:
          type: string
          example: AE
        label:
          type: string
          example: Adverse Events
        description:
          type: string
        datasetClass:
          type: string
          example: Events
        variables:
          type: array
          items:
            $ref: '#/components/schemas/Variable'
    Variable:
      type: object
      properties:
        name:
          type: string
          example: AETERM
        label:
          type: string
          example: Reported Term for the Adverse Event
        dataType:
          type: string
          enum:
          - Char
          - Num
          - date
          - datetime
          - partialDate
          - partialDatetime
        length:
          type: integer
        codelistSubmissionValues:
          type: array
          items:
            type: string
        role:
          type: string
          enum:
          - Identifier
          - Topic
          - Record Qualifier
          - Result Qualifier
          - Synonym Qualifier
          - Variable Qualifier
          - Timing
          - Rule
        core:
          type: string
          enum:
          - Required
          - Expected
          - Permissible
          - Conditionally Required
    DatasetList:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            datasets:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    example: AE
                  label:
                    type: string
                    example: Adverse Events
                  href:
                    type: string
                    format: uri
    ClassList:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            classes:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    example: Events
                  label:
                    type: string
                  href:
                    type: string
                    format: uri
    VersionList:
      type: object
      properties:
        _links:
          type: object
        _embedded:
          type: object
          properties:
            versions:
              type: array
              items:
                type: object
                properties:
                  version:
                    type: string
                  href:
                    type: string
                    format: uri
                  effectiveDate:
                    type: string
                    format: date
    Error:
      type: object
      properties:
        message:
          type: string
        statusCode:
          type: integer
        timestamp:
          type: string
          format: date-time
    Standard:
      type: object
      properties:
        name:
          type: string
        label:
          type: string
        description:
          type: string
        version:
          type: string
        effectiveDate:
          type: string
          format: date
        registrationStatus:
          type: string
          enum:
          - Final
          - Provisional
          - Draft
        _links:
          type: object
  responses:
    NotFound:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: api-key
      description: API key obtained from CDISC Library API Management Developer Portal at https://api.developer.library.cdisc.org/