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.

For customers using enterprise and on-prem versions of CS2, please see our enterprise postman documentation

 

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.

Argentina AR
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
Indonesia ID
Ireland IE
Italy IT
Japan JP
Mexico MX
Montreal Ozone Protocol OZ
Netherlands NL
Poland PL
Rotterdam Convention PIC
Saudi Arabia SA
Singapore SN
Slovakia SK
Spain ES
Sweden SE
Switzerland CH
Taiwan TW
UN (INCB) UN
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

The Controlled Statuses returned can be:-

Controlled – this is controlled in the country – full information on why, schedule, law etc is also returned.

Possibly Controlled – An analogue "hit" where the legislation controls all analogues. It can also apply if you have entered a molecule “flat" (without stereochemistry) and the stereochemistry is key to determining if it is controlled – although this is rare and only applies to a few examples.

Not Controlled – Specifically exempted from control or was previously controlled and is not no longer controlled – information regarding why is also returned. It can also apply if the compounds result has been overridden (an Enterprise feature)

No – This is specific to webservice calls and bulk file checks via the UI. The selected compound is not a controlled in any of the selected jurisdictions. This makes returned data processing easy and reduces payload size as we are not having to return “not controlled” for each jurisdiction (35+), which when running millions of chemicals soon add up!

Other feilds that are returned are documented in this json schema file

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.