Collaborative Drug Discovery Collections API
Collections of molecules
Collections of molecules
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/collaborative-drug-discovery:collaborative-drug-discovery-collections-api"
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.
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: 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