Collaborative Drug Discovery ELN Entries API

Electronic lab notebook entries

Operations 4

POST /vaults/{vault_id}/eln/entries Create an ELN entry #
POST /vaults/{vault_id}/eln/entries/query Get all or some ELN entries #
PUT /vaults/{vault_id}/eln/entries/{id} Update an ELN entry #
POST /vaults/{vault_id}/eln/entries/{id}/status Perform an ELN entry status action #

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/collaborative-drug-discovery:collaborative-drug-discovery-eln-entries-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

collaborative-drug-discovery-eln-entries-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    url: https://support.collaborativedrug.com/hc/en-us/requests/new
  description: 'Collaborative Drug Discovery provides an API (Application Programming

    Interface) that can be used for secure programmatic access to your vault

    data.'
  license:
    name: Proprietary
    url: https://support.collaborativedrug.com/hc/en-us/requests/new
  title: CDD ELN Entries API
  version: 1.0.0
servers:
- url: https://app.collaborativedrug.com/api/v1
security:
- ApiKeyAuth: []
tags:
- description: Electronic lab notebook entries
  name: ELN Entries
paths:
  /vaults/{vault_id}/eln/entries:
    post:
      description: 'The body of the POST must contain a JSON structure specifying the desired ELN entry attributes.


        Note: Files may be inserted into existing ELN entries using the POST Files API call.'
      operationId: createELN
      parameters:
      - in: path
        name: vault_id
        required: true
        schema:
          $ref: '#/components/schemas/vault_id'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/eln_create'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eln_entry_status'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_apikey'
          description: Missing or invalid API key
      summary: Create an ELN entry
      tags:
      - ELN Entries
  /vaults/{vault_id}/eln/entries/query:
    post:
      description: 'Returns a summary of all available ELN entries for the Vault specified if async=false (default).

        If async=true, returns a zip file containing the export of all available ELN entries.


        For security purposes, the GET and POST ELN Entries CDD Vault API commands documented here are only available for Vault Administrators.'
      operationId: getElnEntries
      parameters:
      - in: path
        name: vault_id
        required: true
        schema:
          $ref: '#/components/schemas/vault_id'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/eln_entries_query'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/eln_entry_status'
                type: array
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_apikey'
          description: Missing or invalid API key
      summary: Get all or some ELN entries
      tags:
      - ELN Entries
  /vaults/{vault_id}/eln/entries/{id}:
    put:
      description: Update an existing ELN entry. Only the attributes supplied in the body are changed. Content supplied in `append_to_body` (text, links, files) is appended to the existing entry body.
      operationId: updateELN
      parameters:
      - in: path
        name: vault_id
        required: true
        schema:
          $ref: '#/components/schemas/vault_id'
      - description: Numeric identifier of the ELN entry
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/eln_create'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eln_entry_status'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_apikey'
          description: Missing or invalid API key
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: ELN entry not found, or vault is unauthorized
      summary: Update an ELN entry
      tags:
      - ELN Entries
  /vaults/{vault_id}/eln/entries/{id}/status:
    post:
      description: Perform a witnessing/status action on an ELN entry (submit, approve, reject, cancel, reopen, finalize, or discard). Requires vault administrator access and write permission. The valid actions depend on whether ELN witnessing is enabled for the vault.
      operationId: elnEntryStatusAction
      parameters:
      - in: path
        name: vault_id
        required: true
        schema:
          $ref: '#/components/schemas/vault_id'
      - description: Numeric identifier of the ELN entry
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/eln_status_action'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eln_entry_status'
          description: The updated ELN entry
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Invalid or missing status_action
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_apikey'
          description: Missing or invalid API key
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: ELN entry (or witness) not found, or vault is unauthorized
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: The entry cannot transition from its current status
      summary: Perform an ELN entry status action
      tags:
      - ELN Entries
components:
  schemas:
    date:
      description: 'An ISO 8601 date, or date and time — see [Date and time formats](#date-and-time-formats). Timestamps on this field have one-second precision.

        '
      format: date
      type: string
    error:
      description: A general error response containing an error message and HTTP status code
      properties:
        code:
          description: HTTP status code
          type: integer
          example: 404
        error:
          description: Human-readable error message
          type: string
          example: Resource not found
      type: object
    eln_status_action:
      description: 'A witnessing/status action to perform on an ELN entry. The set of valid `status_action` values depends on whether ELN witnessing is enabled for the vault:


        - Witnessing enabled: `submit` (requires `witness`), `approve`, `reject` (requires `reason`), `cancel`, `reopen` (requires `reason`), `discard`.

        - Witnessing disabled: `finalize`, `reopen` (requires `reason`), `discard`.'
      example:
        status_action: submit
        witness: 6021
      properties:
        reason:
          description: Reason for the action (required for `reject` and `reopen`).
          type: string
        status_action:
          description: The action to perform.
          enum:
          - submit
          - approve
          - reject
          - cancel
          - reopen
          - finalize
          - discard
          type: string
        witness:
          description: Id of the witnessing user (required for `submit`).
          type: integer
      required:
      - status_action
      type: object
    eln_entry_status:
      properties:
        created_at:
          description: Timestamp in ISO-8601 UTC
          example: '2024-01-02T03:04:05Z'
          type: string
        id:
          description: 'The id of the entry

            '
          example: 42
          type: integer
        status:
          enum:
          - new
          - open
          - submitted
          - finalized
          type: string
        updated_at:
          description: Timestamp in ISO-8601 UTC
          example: '2024-01-02T03:04:05Z'
          type: string
      type: object
    eln_entries_query:
      properties:
        async:
          default: false
          description: 'Perform an asynchronous export

            If true, do an asynchronous export (see Async Export)

            Use if you wish to retrieve a zip file containing exports of the actual ELN entries along with any files

            attached within the ELN entries. Note: any page_size parameter used in a call that also uses the async=true parameter will be ignored. The call will return all matching entries as a zip file with their content.

            '
          type: boolean
        author:
          description: 'List of ELN author IDs. We do not match by names, you need to use the users call.

            '
          items:
            type: string
          type: array
        created_after:
          $ref: '#/components/schemas/date'
        created_before:
          $ref: '#/components/schemas/date'
        eln_entries:
          description: List of ELN entry IDs
          items:
            type: string
          type: array
        finalized_date_after:
          $ref: '#/components/schemas/date'
        finalized_date_before:
          $ref: '#/components/schemas/date'
        modified_after:
          $ref: '#/components/schemas/date'
        modified_before:
          $ref: '#/components/schemas/date'
        offset:
          default: 0
          description: Index of the first object actually returned
          type: integer
        only_ids:
          default: false
          description: Return only ELN Entry IDs
          type: boolean
        only_summary:
          default: false
          description: Return only a csv summary file, async is still recommended
          type: boolean
        page_size:
          default: 50
          description: 'Maximum number of objects to return in this call

            This parameter is ignored if async is true.

            '
          maximum: 1000
          type: integer
        projects:
          description: List of project IDs
          items:
            type: string
          type: array
        status:
          description: Status of ELN entries (open, submitted, finalized)
          enum:
          - open
          - submitted
          - finalized
          type: string
        submitted_date_after:
          $ref: '#/components/schemas/date'
        submitted_date_before:
          $ref: '#/components/schemas/date'
      type: object
    error_apikey:
      description: Whenever the given API key doesn't allow access to the given vault or the vault doesn't exist
      properties:
        code:
          default: 401
          type: integer
        error:
          default: key not authorized for access to this vault
          type: string
      type: object
    eln_create:
      description: 'Attributes used to create or update an ELN entry. The same body is accepted by `POST /eln/entries` (create) and `PUT /eln/entries/{id}` (update); on update, only the supplied fields are changed.

        '
      example:
        title: Synthesis of compound 42
        project: 7
        eln_fields:
          Reaction type: Suzuki coupling
        append_to_body:
        - type: text
          text: Procedure followed the standard protocol.
        - type: link
          url: https://app.collaborativedrug.com/vaults/1/molecules/12345
          label: Starting material CDD-12345
        - type: file
          file: 98765
      properties:
        append_to_body:
          description: 'Ordered list of content nodes appended to the body of the entry. Each node has a `type`; the supported types are:


            - `text` — a paragraph of text. Provide `text` (defaults to an empty string).

            - `link` — a hyperlink. Provide `url` (required; must be a valid http/https/ftp/mailto URL) and an optional `label` for the display text. Use this to link to a batch, molecule, protocol, or any external resource.

            - `file` — an attachment that was already uploaded. Provide `file`, the id of an accessible uploaded file. (Files can also be attached to an existing entry with the `POST /files` API.)

            '
          items:
            oneOf:
            - title: Text node
              properties:
                text:
                  description: Text content (defaults to an empty string).
                  type: string
                type:
                  const: text
                  type: string
              required:
              - type
              type: object
            - title: Link node
              properties:
                label:
                  description: Display text for the link (optional).
                  type: string
                type:
                  const: link
                  type: string
                url:
                  description: Target URL (must be a valid http/https/ftp/mailto URL).
                  type: string
              required:
              - type
              - url
              type: object
            - title: File node
              properties:
                file:
                  description: Id of an already-uploaded, accessible file.
                  type: integer
                type:
                  const: file
                  type: string
              required:
              - type
              - file
              type: object
          type: array
        eln_fields:
          additionalProperties:
            type: string
          description: 'The ELN fields of the entry

            '
          type: object
        project:
          anyOf:
          - description: Project id
            type: integer
          - description: Project name
            type: string
        title:
          description: 'The title of the entry

            '
          type: string
      type: object
    vault_id:
      description: Numeric identifier of the vault
      type: integer
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: X-CDD-Token
      type: apiKey