API Information for Controlled Substance Squared

The new Controlled Substances Squared Business plan REST webservice has been designed to make integration as simple and quick as possible.

Please note, there are seperate webservices for the Cloud Enterprise Edition and On prem versions.


For the Business plan, you simply send a list of SMILES or INCHI strings ‘FileContent’ as part of the body of the REST call, then poll the webservice for a completed response. You can then download the results as either xml, sdf, json or .txt files. You can assign your own ID (e.g COMP-1234) along with the SMILES or INCHI string by including it after the string e.g 

Cc1[nH]c(cc1C(=O)Nc2ccccc2)c3ccccc3 Comp-1234

Any results returned will then also include the Comp-1234 ID.

Australia Group AG
Austria AT
Belgium BE
Brazil BR
Canada CA
Chemical Weapons Convention CWC
China CN
Denmark DK
European Union EU
Finland FI
France FR
Germany DE
India IN
Ireland IE
Italy IT
Japan JP
Mexico MX
Montreal Ozone Protocol OZ
Netherlands NL
Poland PL
Rotterdam Convention PIC
Singapore SN
Slovakia SK
Spain ES
Sweden SE
Switzerland CH
Taiwan TW
United Kingdom UK
United States of America USA
Wassenaar Arrangement WAS
World Anti-Doping Agency WAD

If you do not specify any Jurisdictions, the service will check all the jurisdictions you have licensed. Alternatively, you can specify the Countries=<x> parameter to choose the countries/jurisdictions that you are interested in from the ones you currently licence (E.g Countries=UK,Countries=USA). The current jurisdictions covered and their codes are shown to the right


You can also choose whether to include precursor laws. The default is for them to be included, but they can be turned off with the parameter IncludePrecursors=False.


You may submit up to 1000 compounds per call, with responses expected within 1-2 minutes for 1000 compounds depending on the number of jurisdictions selected and input chemistry complexity.


If you need to determine the controlled status for more than one compound it is highly recommended that you batch compounds rather than sending them one at a time. CS2 Search is far more efficient like this and you cannot start a new call until the previous completes or errors.


You can perform checks on as many compounds as your Controlled Substances Squared Hosted agreement allows you to check in a month. When this limit is reached the webservice will complete and return the Response code that no further checks are possible


Please see our POSTMAN documentation and examples. From this you can generate the code for cURL, Jquery, Ruby, Python, Node, PHP and Go. You can also download the example calls created by Scitegrity by pressing the orange ’Run in Postman’ button in the top left-hand corner of the documentation page (this requires the POSTMAN client to be installed). We also have a Pipeline Pilot component that can be used to call the service from within Pipeline Pilot and a KNIME node/workflow.