Collaborative Drug Discovery Slurps API
Data import jobs (slurps)
Data import jobs (slurps)
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-slurps-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 Slurps API
version: 1.0.0
servers:
- url: https://app.collaborativedrug.com/api/v1
security:
- ApiKeyAuth: []
tags:
- description: Data import jobs (slurps)
name: Slurps
paths:
/vaults/{vault_id}/slurps:
get:
description: List the active slurps (data import jobs) in the vault. Pass `show_events=true` to include the ambiguous/suspicious events and import errors raised during import.
operationId: getSlurps
parameters:
- in: path
name: vault_id
required: true
schema:
$ref: '#/components/schemas/vault_id'
- description: Include event and error details for each slurp.
in: query
name: show_events
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/slurp'
type: array
description: List of active slurps
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/error_apikey'
description: Missing or invalid API key
summary: Get slurps
tags:
- Slurps
post:
description: 'Start a new slurp (data import) by uploading a file. The request must be sent as `multipart/form-data`: the data file is the `file` part, and any import metadata is supplied as a JSON string in the `json` part. The new slurp is created in the `mapping` state; poll the slurp to follow its progress.'
operationId: createSlurp
parameters:
- in: path
name: vault_id
required: true
schema:
$ref: '#/components/schemas/vault_id'
requestBody:
content:
multipart/form-data:
schema:
properties:
file:
description: The data file to import (CSV, XLSX, SDF, etc.).
format: binary
type: string
json:
description: Import metadata (such as mapping options) encoded as a JSON string.
type: string
required:
- file
type: object
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/slurp'
description: The created slurp
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/error_apikey'
description: Missing or invalid API key
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Too many concurrent slurps for this user
summary: Create a slurp
tags:
- Slurps
/vaults/{vault_id}/slurps/{id}:
get:
description: Retrieve a single slurp. Pass `show_events=true` to include the ambiguous/suspicious events and import errors raised during import.
operationId: getSlurp
parameters:
- in: path
name: vault_id
required: true
schema:
$ref: '#/components/schemas/vault_id'
- description: Numeric identifier of the slurp
in: path
name: id
required: true
schema:
type: integer
- description: Include event and error details.
in: query
name: show_events
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/slurp'
description: The slurp
'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: Slurp not found, or vault is unauthorized
summary: Get a slurp
tags:
- Slurps
components:
schemas:
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
slurp:
description: A slurp is an asynchronous data import/processing job. After creation a slurp moves through processing and committing states until its data is committed to the vault.
properties:
ambiguous_events:
description: Ambiguous events raised during import. Only present when `show_events=true`.
items:
additionalProperties: true
type: object
type: array
ambiguous_events_count:
description: Number of ambiguous events. Only present when `show_events=true`.
type: integer
api_url:
description: Canonical API URL of this slurp.
type: string
class:
example: slurp
type: string
created_at:
format: date-time
type: string
id:
type: integer
import_errors:
description: When `show_events=true`, the array of import error events; otherwise the count of import errors.
oneOf:
- type: integer
- items:
additionalProperties: true
type: object
type: array
import_errors_count:
description: Number of import errors. Only present when `show_events=true`.
type: integer
import_warnings:
description: Count of import warnings. Present when `show_events` is not requested.
type: integer
message:
description: Present when the slurp has unresolved import errors or warnings that must be resolved in the web application.
type: string
modified_at:
format: date-time
type: string
queued_job_position:
description: Position of the slurp's job in the queue. Present only while queued.
type: integer
queued_slurp_position:
description: Position of the slurp among queued slurps. Present only while queued.
type: integer
records_committed:
description: Number of records committed so far.
type: number
records_processed:
description: Number of records processed so far.
type: number
state:
description: Current state of the slurp.
enum:
- mapping
- queued_for_processing
- processing
- processed
- queued_for_committing
- committing
- committed
- canceled
- rejected
- invalid
type: string
suspicious_events:
description: Suspicious events raised during import. Only present when `show_events=true`.
items:
additionalProperties: true
type: object
type: array
suspicious_events_count:
description: Number of suspicious events. Only present when `show_events=true`.
type: integer
total_records:
description: Total number of records in the imported file.
type: number
web_url:
description: Web application URL for resolving import errors/warnings. Accompanies `message` when present.
type: string
required:
- id
- class
- created_at
- modified_at
- state
- api_url
type: object
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
vault_id:
description: Numeric identifier of the vault
type: integer
securitySchemes:
ApiKeyAuth:
in: header
name: X-CDD-Token
type: apiKey