OpenClinica

OpenClinica is a clinical-trial electronic data capture (EDC) and clinical data management platform used to build studies, capture case report form (CRF) data, schedule study events, and manage participants across sites. It ships as a free, open-source Community Edition (LGPL) and as a fully supported, hosted Enterprise Edition. OpenClinica exposes a documented REST web services API - authenticated with OAuth 2.0 bearer tokens - for programmatically adding and updating participants (single and bulk), scheduling and updating study events, and importing and retrieving clinical data. Data is interchanged using the CDISC ODM (Operational Data Model) standard as XML or JSON, so studies remain portable and standards-based.

6 APIs 0 Features
Clinical TrialsElectronic Data CaptureEDCClinical Data ManagementCDISC ODMHealthcareOpen Source

APIs

OpenClinica Authentication API

Obtain an OAuth 2.0 bearer access token by POSTing credentials to the OpenClinica user-service token endpoint. The returned token is passed as an Authorization Bearer header on ...

OpenClinica Participants API

Add or update study participants at study or site level, list participants scoped to a study or site, and extract participant contact information. Participants are the human sub...

OpenClinica Study Events API

Schedule (create) and update study events for a participant - the visits or time points at which case report forms are collected. Supports single-event operations and bulk creat...

OpenClinica Clinical Data API

Import and retrieve clinical (case report form) data using the CDISC ODM standard as XML or JSON. Retrieval can return study metadata and/or clinical data including audit logs, ...

OpenClinica ODM Metadata API

Read the ODM metadata that describes a study's design - event definitions, forms, item groups, and items - qualified by a study OID. The requesting user must have read privilege...

OpenClinica Bulk Operations API

Add or update a bulk list of participants in a single request and review the outcome of asynchronous bulk actions through the bulk actions log. Used for high-volume participant ...

Collections

Pricing Plans

Rate Limits

Openclinica Rate Limits

4 limits

RATE LIMITS

FinOps

Resources

🔗
TrustCenter
TrustCenter
🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: OpenClinica REST API
  version: '4.0'
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Obtain an OAuth 2.0 access token.
      type: http
    http:
      method: POST
      url: https://{{subdomain}}.build.openclinica.io/user-service/api/oauth/token
      auth:
        type: none
      body:
        type: text
        data: grant_type=password&username=&password=
    docs: POST credentials to obtain a bearer access token used on all subsequent calls.
- info:
    name: Participants
    type: folder
  items:
  - info:
      name: Get participants at study level.
      type: http
    http:
      method: GET
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/studies/{{studyOID}}/participants
    docs: Lists participants enrolled in a study.
  - info:
      name: Add or update a participant at study level.
      type: http
    http:
      method: POST
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/studies/{{studyOID}}/participants
      body:
        type: json
        data: '{"subjectKey":"SUBJ-001","enrollmentDate":"2026-07-05"}'
    docs: Creates or updates a single participant at the study level.
  - info:
      name: Get participants at site level.
      type: http
    http:
      method: GET
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/studies/{{studyOID}}/sites/{{siteOID}}/participants
    docs: Lists participants enrolled at a specific site.
  - info:
      name: Add or update a participant at site level.
      type: http
    http:
      method: POST
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/studies/{{studyOID}}/sites/{{siteOID}}/participants
      body:
        type: json
        data: '{"subjectKey":"SUBJ-001","enrollmentDate":"2026-07-05"}'
    docs: Creates or updates a single participant at a specific site.
  - info:
      name: Extract participant contact information.
      type: http
    http:
      method: POST
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/studies/{{studyOID}}/sites/{{siteOID}}/participants/extractParticipantsInfo
      body:
        type: json
        data: '{}'
    docs: Retrieves participant contact information as an asynchronous extract.
- info:
    name: Study Events
    type: folder
  items:
  - info:
      name: Create (schedule) a single study event.
      type: http
    http:
      method: POST
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/studies/{{studyOID}}/sites/{{siteOID}}/events
      body:
        type: json
        data: '{"subjectKey":"SUBJ-001","studyEventOID":"SE_VISIT1","startDate":"2026-07-05"}'
    docs: Schedules a single study event for a participant at a site.
  - info:
      name: Update a single study event.
      type: http
    http:
      method: PUT
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/studies/{{studyOID}}/sites/{{siteOID}}/events
      body:
        type: json
        data: '{"subjectKey":"SUBJ-001","studyEventOID":"SE_VISIT1","status":"completed"}'
    docs: Updates an existing study event for a participant at a site.
  - info:
      name: Bulk create or update study events.
      type: http
    http:
      method: POST
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/studies/{{studyOID}}/events
      body:
        type: json
        data: '{"events":[{"subjectKey":"SUBJ-001","studyEventOID":"SE_VISIT1","startDate":"2026-07-05"}]}'
    docs: Schedules or updates study events for multiple participants (modeled).
- info:
    name: Clinical Data
    type: folder
  items:
  - info:
      name: Retrieve clinical data as CDISC ODM.
      type: http
    http:
      method: GET
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/{{studyOID}}/:participantOID/:studyEventOID/:formOID
      params:
      - name: participantOID
        value: SS_SUBJ001
        type: path
        description: The participant OID.
      - name: studyEventOID
        value: SE_VISIT1
        type: path
        description: The study event OID.
      - name: formOID
        value: F_DEMOG
        type: path
        description: The form OID.
      - name: includeDNs
        value: 'true'
        type: query
        description: Include discrepancy notes (queries).
    docs: Retrieves participant clinical data as CDISC ODM XML or JSON, optionally with audits and discrepancy notes.
  - info:
      name: Import clinical data (CDISC ODM).
      type: http
    http:
      method: POST
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata
      body:
        type: xml
        data: <ODM><ClinicalData StudyOID="S_STUDY01"></ClinicalData></ODM>
    docs: Imports clinical data using a CDISC ODM document (modeled).
- info:
    name: Metadata
    type: folder
  items:
  - info:
      name: Read ODM study metadata.
      type: http
    http:
      method: GET
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/metadata/{{studyOID}}
    docs: Reads the ODM metadata describing a study's design (modeled path).
- info:
    name: Bulk Operations
    type: folder
  items:
  - info:
      name: Add or update a bulk list of participants.
      type: http
    http:
      method: POST
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/clinicaldata/studies/{{studyOID}}/participants/bulk
      body:
        type: json
        data: '{"participants":[{"subjectKey":"SUBJ-001"},{"subjectKey":"SUBJ-002"}]}'
    docs: Adds or updates a list of participants in a single request (modeled).
  - info:
      name: Retrieve the bulk actions log.
      type: http
    http:
      method: GET
      url: https://{{subdomain}}.build.openclinica.io/pages/auth/api/bulkActionsLog
    docs: Returns the log of asynchronous bulk operations and their status (modeled path).