Collaborative Drug Discovery Collections API

Collections of molecules

Operations 5

POST /vaults/{vault_id}/collections Create a collection #
POST /vaults/{vault_id}/collections/query Get multiple collections #
DELETE /vaults/{vault_id}/collections/{collection_id} Delete a collection #
GET /vaults/{vault_id}/collections/{collection_id} Get a single collection #
PUT /vaults/{vault_id}/collections/{collection_id} Update a collection #

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-collections-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-collections-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 Collections API
  version: 1.0.0
servers:
- url: https://app.collaborativedrug.com/api/v1
security:
- ApiKeyAuth: []
tags:
- description: Collections of molecules
  name: Collections
paths:
  /vaults/{vault_id}/collections:
    post:
      description: Create a collection, the name should be unique unless you want to overwrite an existing collection.
      operationId: createCollection
      parameters:
      - in: path
        name: vault_id
        required: true
        schema:
          $ref: '#/components/schemas/vault_id'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/collection_create'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/collection'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_apikey'
          description: Missing or invalid API key
      summary: Create a collection
      tags:
      - Collections
  /vaults/{vault_id}/collections/query:
    post:
      description: Get the information from multiple collections. We still support the now deprecated GET queries on the enpoint without 'query' in it and passing query parameters in the URL. It is highly recommended that you switch your applications to the POST queries described here.
      operationId: getCollections
      parameters:
      - in: path
        name: vault_id
        required: true
        schema:
          $ref: '#/components/schemas/vault_id'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/collections_query'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/collection'
                type: array
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_apikey'
          description: Missing or invalid API key
      summary: Get multiple collections
      tags:
      - Collections
  /vaults/{vault_id}/collections/{collection_id}:
    delete:
      description: Delete a collection. The molecules in the collection are not affected.
      operationId: deleteCollection
      parameters:
      - in: path
        name: vault_id
        required: true
        schema:
          $ref: '#/components/schemas/vault_id'
      - description: Numeric identifier of the collection
        in: path
        name: collection_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: The collection was deleted
        '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: Collection not found, or vault is unauthorized
      summary: Delete a collection
      tags:
      - Collections
    get:
      description: Get the information about a single collection
      operationId: getCollection
      parameters:
      - in: path
        name: vault_id
        required: true
        schema:
          $ref: '#/components/schemas/vault_id'
      - in: path
        name: collection_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/collection'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_apikey'
          description: Missing or invalid API key
      summary: Get a single collection
      tags:
      - Collections
    put:
      description: ''
      operationId: updateCollection
      parameters:
      - in: path
        name: vault_id
        required: true
        schema:
          $ref: '#/components/schemas/vault_id'
      - in: path
        name: collection_id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/collection_update'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/collection'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_apikey'
          description: Missing or invalid API key
      summary: Update a collection
      tags:
      - Collections
components:
  schemas:
    collection_create:
      properties:
        class:
          enum:
          - user collection
          example: user collection
          type: string
        created_at:
          format: date
          type: string
        modified_at:
          format: date
          type: string
        molecules:
          description: 'The list of molecules in the collection.

            '
          items:
            type: integer
          type: array
        name:
          example: Rare compounds
          type: string
        owner:
          example: Jacob Bloom
          type: string
      type: object
    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
    collection:
      allOf:
      - properties:
          id:
            description: Id is also valid during creation/update but must match the id in the URL
            example: 42
            type: integer
        type: object
      - $ref: '#/components/schemas/collection_create'
    collection_update:
      properties:
        molecules:
          description: 'The list of molecules to add to the collection. Note that you cannot remove molecules from a collection. You have to recreate the collection without the molecule.

            '
          items:
            type: integer
          type: array
      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
    collections_query_common:
      properties:
        async:
          description: If true, do an asynchronous export. Use for large data sets. You will get an export id that you can use with the async export function.
          type: boolean
        include_molecule_ids:
          description: If true, include the ids of the molecules in the collection.
          type: boolean
        offset:
          description: 'The offset of the first collection in the result set. The offset is 0-based. That is, the first collection in the result set has offset 0.

            '
          type: integer
        only_ids:
          description: If true, only return the ids of the matching collections.
          type: boolean
        page_size:
          default: 50
          description: 'The maximum number of objects to return in this call.

            Default is 50, maximum is 1000. If the response exceeds the page_size,

            we strongly recommend using the async option instead of downloading multiple chunks.

            Note: any page_size parameter used in an API call that also uses the async=true

            parameter will be ignored. The async call will return all valid data once executed.

            '
          type: integer
        projects:
          description: 'Array of project ids. Defaults to all available projects.

            '
          items:
            type: integer
          type: array
      type: object
    collections_query:
      oneOf:
      - allOf:
        - properties:
            collections:
              description: 'The list of collections id to return

                '
              type: array
              items:
                type: integer
          type: object
        - $ref: '#/components/schemas/collections_query_common'
      - allOf:
        - $ref: '#/components/schemas/collections_query_common'
        - properties:
            created_after:
              $ref: '#/components/schemas/date'
            created_before:
              $ref: '#/components/schemas/date'
            modified_after:
              $ref: '#/components/schemas/date'
            modified_before:
              $ref: '#/components/schemas/date'
            type:
              description: 'The type of collection user collections are private, vault collections are shared with project members.

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