Collaborative Drug Discovery provides an API (Application Programming Interface) that can be used for secure programmatic access to your vault data. Using the API, client applications such as Microsoft Office, Pipeline Pilot, Knime and others can be configured to directly access and process chemical and biological data from the CDD Vault.
The CDD API provides fine-grained read access to individual objects (eg, molecules, batches, protocols) and collections of objects. Objects are exported using [the JSON representation framework](https://en.wikipedia.org/wiki/JSON).
The API supports creation and modification of objects. These are done through POST and PUT calls, respectively.
For both POSTs and PUTs, the body of the HTTPS request is a JSON dictionary in a format similar to that returned from a GET. However, only a subset of fields are allowed. For PUTs, fields in the stored object that are not specified in the JSON should not be affected. For some resources, making a PUT call with an empty projects array (`"projects": `) will delete the object.
- **Non-registration vaults**
In non-registration vaults, batches and molecules are created separately.
- **Registration vaults**
In registration vaults, you cannot create molecules independently from batches. Therefore, the POST molecule HTTP call is not supported. Instead, to create a new object you must do a POST of a batch with a contained molecule specification (which can be a new or existing molecule).