medidata · Capability

Medidata Rave EDC REST API

Medidata Rave provides electronic data capture (EDC) APIs for clinical trial data collection and management. APIs enable access to study designs, case report forms, patient data, queries, and audit trails for clinical research organizations and pharmaceutical companies.

Run with Naftiko MedidataAPI

What You Can Do

GET
Liststudies — List studies
/
GET
Listsubjects — List subjects in a study
/{studyOID}/Subjects
POST
Createsubject — Create or update a subject
/{studyOID}/Subjects
GET
Getsubject — Get subject details
/{studyOID}/Subjects/{subjectKey}
GET
Getsubjectclinicaldata — Get clinical data (CRF data) for a subject
/{studyOID}/Subjects/{subjectKey}/ClinicalData
POST
Submitclinicaldata — Submit clinical data for a subject
/{studyOID}/Subjects/{subjectKey}/ClinicalData
GET
Listqueries — List data queries
/{studyOID}/Queries
GET
Getauditrecords — Get audit trail records
/{studyOID}/AuditRecords
GET
Listsites — List study sites
/{studyOID}/Sites

MCP Tools

liststudies

List studies

read-only idempotent
listsubjects

List subjects in a study

read-only idempotent
createsubject

Create or update a subject

getsubject

Get subject details

read-only idempotent
getsubjectclinicaldata

Get clinical data (CRF data) for a subject

read-only idempotent
submitclinicaldata

Submit clinical data for a subject

listqueries

List data queries

read-only idempotent
getauditrecords

Get audit trail records

read-only idempotent
listsites

List study sites

read-only idempotent

Capability Spec

medidata-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Medidata Rave EDC REST API
  description: Medidata Rave provides electronic data capture (EDC) APIs for clinical trial data collection and management.
    APIs enable access to study designs, case report forms, patient data, queries, and audit trails for clinical research
    organizations and pharmaceutical companies.
  tags:
  - Medidata
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: medidata
    baseUri: https://medidatatrials.medidata.com/RaveWebServices/studies
    description: Medidata Rave EDC REST API HTTP API.
    authentication:
      type: basic
      username: '{{MEDIDATA_USERNAME}}'
      password: '{{MEDIDATA_PASSWORD}}'
    resources:
    - name: resource
      path: /
      operations:
      - name: liststudies
        method: GET
        description: List studies
        inputParameters:
        - name: include
          in: query
          type: string
          description: Include additional metadata (e.g., include=subjectCount)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studyoid-subjects
      path: /{studyOID}/Subjects
      operations:
      - name: listsubjects
        method: GET
        description: List subjects in a study
        inputParameters:
        - name: studyOID
          in: path
          type: string
          required: true
          description: Study OID (e.g., Mediflex(Dev))
        - name: Status
          in: query
          type: string
        - name: SiteID
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createsubject
        method: POST
        description: Create or update a subject
        inputParameters:
        - name: studyOID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studyoid-subjects-subjectkey
      path: /{studyOID}/Subjects/{subjectKey}
      operations:
      - name: getsubject
        method: GET
        description: Get subject details
        inputParameters:
        - name: studyOID
          in: path
          type: string
          required: true
        - name: subjectKey
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studyoid-subjects-subjectkey-clinicaldata
      path: /{studyOID}/Subjects/{subjectKey}/ClinicalData
      operations:
      - name: getsubjectclinicaldata
        method: GET
        description: Get clinical data (CRF data) for a subject
        inputParameters:
        - name: studyOID
          in: path
          type: string
          required: true
        - name: subjectKey
          in: path
          type: string
          required: true
        - name: formOID
          in: query
          type: string
          description: Filter to a specific form OID
        - name: EventRepeatKey
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: submitclinicaldata
        method: POST
        description: Submit clinical data for a subject
        inputParameters:
        - name: studyOID
          in: path
          type: string
          required: true
        - name: subjectKey
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studyoid-queries
      path: /{studyOID}/Queries
      operations:
      - name: listqueries
        method: GET
        description: List data queries
        inputParameters:
        - name: studyOID
          in: path
          type: string
          required: true
        - name: Status
          in: query
          type: string
        - name: SiteID
          in: query
          type: string
        - name: SubjectKey
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studyoid-auditrecords
      path: /{studyOID}/AuditRecords
      operations:
      - name: getauditrecords
        method: GET
        description: Get audit trail records
        inputParameters:
        - name: studyOID
          in: path
          type: string
          required: true
        - name: SubjectKey
          in: query
          type: string
        - name: SiteID
          in: query
          type: string
        - name: StartDate
          in: query
          type: string
        - name: EndDate
          in: query
          type: string
        - name: PageSize
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studyoid-sites
      path: /{studyOID}/Sites
      operations:
      - name: listsites
        method: GET
        description: List study sites
        inputParameters:
        - name: studyOID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: medidata-rest
    description: REST adapter for Medidata Rave EDC REST API.
    resources:
    - path: /
      name: liststudies
      operations:
      - method: GET
        name: liststudies
        description: List studies
        call: medidata.liststudies
        outputParameters:
        - type: object
          mapping: $.
    - path: /{studyOID}/Subjects
      name: listsubjects
      operations:
      - method: GET
        name: listsubjects
        description: List subjects in a study
        call: medidata.listsubjects
        with:
          studyOID: rest.studyOID
        outputParameters:
        - type: object
          mapping: $.
    - path: /{studyOID}/Subjects
      name: createsubject
      operations:
      - method: POST
        name: createsubject
        description: Create or update a subject
        call: medidata.createsubject
        with:
          studyOID: rest.studyOID
        outputParameters:
        - type: object
          mapping: $.
    - path: /{studyOID}/Subjects/{subjectKey}
      name: getsubject
      operations:
      - method: GET
        name: getsubject
        description: Get subject details
        call: medidata.getsubject
        with:
          studyOID: rest.studyOID
          subjectKey: rest.subjectKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /{studyOID}/Subjects/{subjectKey}/ClinicalData
      name: getsubjectclinicaldata
      operations:
      - method: GET
        name: getsubjectclinicaldata
        description: Get clinical data (CRF data) for a subject
        call: medidata.getsubjectclinicaldata
        with:
          studyOID: rest.studyOID
          subjectKey: rest.subjectKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /{studyOID}/Subjects/{subjectKey}/ClinicalData
      name: submitclinicaldata
      operations:
      - method: POST
        name: submitclinicaldata
        description: Submit clinical data for a subject
        call: medidata.submitclinicaldata
        with:
          studyOID: rest.studyOID
          subjectKey: rest.subjectKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /{studyOID}/Queries
      name: listqueries
      operations:
      - method: GET
        name: listqueries
        description: List data queries
        call: medidata.listqueries
        with:
          studyOID: rest.studyOID
        outputParameters:
        - type: object
          mapping: $.
    - path: /{studyOID}/AuditRecords
      name: getauditrecords
      operations:
      - method: GET
        name: getauditrecords
        description: Get audit trail records
        call: medidata.getauditrecords
        with:
          studyOID: rest.studyOID
        outputParameters:
        - type: object
          mapping: $.
    - path: /{studyOID}/Sites
      name: listsites
      operations:
      - method: GET
        name: listsites
        description: List study sites
        call: medidata.listsites
        with:
          studyOID: rest.studyOID
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: medidata-mcp
    transport: http
    description: MCP adapter for Medidata Rave EDC REST API for AI agent use.
    tools:
    - name: liststudies
      description: List studies
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: medidata.liststudies
      with:
        include: tools.include
      inputParameters:
      - name: include
        type: string
        description: Include additional metadata (e.g., include=subjectCount)
      outputParameters:
      - type: object
        mapping: $.
    - name: listsubjects
      description: List subjects in a study
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: medidata.listsubjects
      with:
        studyOID: tools.studyOID
        Status: tools.Status
        SiteID: tools.SiteID
      inputParameters:
      - name: studyOID
        type: string
        description: Study OID (e.g., Mediflex(Dev))
        required: true
      - name: Status
        type: string
        description: Status
      - name: SiteID
        type: string
        description: SiteID
      outputParameters:
      - type: object
        mapping: $.
    - name: createsubject
      description: Create or update a subject
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: medidata.createsubject
      with:
        studyOID: tools.studyOID
      inputParameters:
      - name: studyOID
        type: string
        description: studyOID
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getsubject
      description: Get subject details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: medidata.getsubject
      with:
        studyOID: tools.studyOID
        subjectKey: tools.subjectKey
      inputParameters:
      - name: studyOID
        type: string
        description: studyOID
        required: true
      - name: subjectKey
        type: string
        description: subjectKey
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getsubjectclinicaldata
      description: Get clinical data (CRF data) for a subject
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: medidata.getsubjectclinicaldata
      with:
        studyOID: tools.studyOID
        subjectKey: tools.subjectKey
        formOID: tools.formOID
        EventRepeatKey: tools.EventRepeatKey
      inputParameters:
      - name: studyOID
        type: string
        description: studyOID
        required: true
      - name: subjectKey
        type: string
        description: subjectKey
        required: true
      - name: formOID
        type: string
        description: Filter to a specific form OID
      - name: EventRepeatKey
        type: string
        description: EventRepeatKey
      outputParameters:
      - type: object
        mapping: $.
    - name: submitclinicaldata
      description: Submit clinical data for a subject
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: medidata.submitclinicaldata
      with:
        studyOID: tools.studyOID
        subjectKey: tools.subjectKey
      inputParameters:
      - name: studyOID
        type: string
        description: studyOID
        required: true
      - name: subjectKey
        type: string
        description: subjectKey
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listqueries
      description: List data queries
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: medidata.listqueries
      with:
        studyOID: tools.studyOID
        Status: tools.Status
        SiteID: tools.SiteID
        SubjectKey: tools.SubjectKey
      inputParameters:
      - name: studyOID
        type: string
        description: studyOID
        required: true
      - name: Status
        type: string
        description: Status
      - name: SiteID
        type: string
        description: SiteID
      - name: SubjectKey
        type: string
        description: SubjectKey
      outputParameters:
      - type: object
        mapping: $.
    - name: getauditrecords
      description: Get audit trail records
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: medidata.getauditrecords
      with:
        studyOID: tools.studyOID
        SubjectKey: tools.SubjectKey
        SiteID: tools.SiteID
        StartDate: tools.StartDate
        EndDate: tools.EndDate
        PageSize: tools.PageSize
      inputParameters:
      - name: studyOID
        type: string
        description: studyOID
        required: true
      - name: SubjectKey
        type: string
        description: SubjectKey
      - name: SiteID
        type: string
        description: SiteID
      - name: StartDate
        type: string
        description: StartDate
      - name: EndDate
        type: string
        description: EndDate
      - name: PageSize
        type: integer
        description: PageSize
      outputParameters:
      - type: object
        mapping: $.
    - name: listsites
      description: List study sites
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: medidata.listsites
      with:
        studyOID: tools.studyOID
      inputParameters:
      - name: studyOID
        type: string
        description: studyOID
        required: true
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    MEDIDATA_USERNAME: MEDIDATA_USERNAME
    MEDIDATA_PASSWORD: MEDIDATA_PASSWORD