ExpediChem Webservices

The new ExpediChem REST webservice has been designed to make integration as simple and quick as possible. 

The easiest was to submit chemistry is to 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, json, sdf 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. However the service does also accept the .sd/.mol file format.

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

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

If you do not specify any schedules via the selectedSchedules parameter, the service will check all the schedules for you.

You may submit up to 1000 compounds per call, with responses expected within 4-5 minutes for 1000 compounds depending on the number of schedules and input chemistry complexity.

If you need to determine the HS code / duty for more than one compound it is highly recommended that you batch compounds rather than sending them one at a time. ExpediChem 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 ExpediChem agreement allows you to check in a month. When this limit is reached the webservice will complete and return the Response ErrorText= Code4-Daily Limit on Compound Checks Reached.

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 (please contact us) from within Pipeline Pilot and a KNIME node/workflow.


Job Responses.

When the job is running the following parameters are available:

SessionID and JobID – These are generated when the Job is started and can be used with running job to get status information.

Status – This provides the current status of the job and can take the values ‘initializing’, ‘running’, ‘complete’ or ‘error’.

StatusCode – This provides information about the result of the job whilst it is running and once it has finished. Possible returned statuscodes are:


Status Code


0 or 1

The webservice call is being made to the server to start the job


Job is running


Job was stopped by the client or administrator


Job completed normally with success. This also returns in the message the number of checks you have remaining ChecksLeft = xxxxxx. This could be the checks remaining that day or credits left on your account


Job completed with an error – This can be caused by incorrect input such as the wrong parameters or incorrectly formatted REST call. However, if caused by one of the following issues then specific code message is placed in the message field. 

Code1-One concurrent query only

You may only have 1 concurrent webservice call. Please wait for that to finish. Hint: - Avoid lots of small calls or 1 of 2 compounds. There is a few second start-up time for any calls. It is more efficient to send larger number of compounds to be processed at once

Code2-User not authorized

Your login is not authorized to use webservices (probably only the web browser). Please contact Scitegrity or use a different login

Code3-No Credits Available

Please contact Scitegrity to purchase more

Code4-Compound Checks Limit Reached

Your daily check limit has been reached. Please wait until tomorrow or contact Scitegrity to increase your daily limit.


The process ID associated with the running job crashed or has otherwise disappeared. This is likely due to a problem with the CS2 server. If this occurs repeatedly please contact Scitegrity.


Job failed to start.


The job is queued – The job has been sent as is currently in the queue waiting to be run


Lost connection with the server


Once status code 6 has been received you can then download the output results file. This is available in JSON, XML, TXT and SDF formats.

Please see our POSTMAN documentation and examples for what each field returned means

For testing you can run a search on the smiles string CNC(C)Cc1ccc2OCOc2c1. This returns the results for MDMA.  Clc1cc(C(c2c(O)c(c3cc2)nc(C)cc3)Nc4cc(C)ccn4)ccc1 is an example of a compound not Controlled anywhere (Controlled Status  = No). Neither will not count as a search against your account.

Bookmark and Share