SOFOS offers the ability to retrieve information on substances and/or articles from another application. For this purpose, two REST endpoints are provided through which data can be requested.
The API uses 'Basic authentication', requiring username and password from SOFOS in the header. Users can also specify search parameters as a JSON string in the request body. It is important to fill out at least one parameter. The API allows you to search for list information of substances and articles using all the parameters you've provided. Any empty or omitted parameters will not be included in the search.
If one substance or article is discovered using the supplied search parameters, the result will be returned as a JSON string in the response body. If multiple or no substances or articles are identified, they will be returned as a JSON string in the response body. When correctly called, the essential structure of the response is always the same:
{
"StatusCode": int ,
"Message": "string",
"Result": {}
}
'Result' contains the search findings.
If the request is invalid (for example, an improper search parameter is provided in the body), the result will include a list of errors:
{
"Errors": [
"string"
],
"StatusCode": int,
"Message": "string",
"Result": {}
}
There are two endpoints available
Substance information
This API, for example, allows you to check whether the substance is on the SZW substances list or which GHS pictograms are linked with it.
The address of this API is: https://<the addressyour SOFOS environment>/api/v1/GetInfo/GetSubstanceInfo
(Json in body)GET {
"SubstanceId": string,
"CasNumber": string,
"SubstanceName": string,
"ExternalAPI_ID": string
}
Response (Json in body):
{
"StatusCode": int,
"Message": null,
"Result": {
"ID": string,
"SubstanceName": string,
"CasNumber": string,
"IsCMR": bool,
"IsSZW": bool,
"IsZZS": bool,
"IsPZZS": bool,
"IsBALAnnex3": bool,
"GHSImages": string,
"ExternalAPI_ID": string
}
}
Example call and response:
Call:
{
"SubstanceId": "df074de1-3b63-45e2-afb2-8cd58dea18e1",
"CasNumber":"",
"SubstanceName":"",
"ExternalAPI_ID":""
}
Response:
{
"StatusCode": 200,
"Message": null,
"Result": {
"ID": "df074de1-3b63-45e2-afb2-8cd58dea18e1",
"SubstanceName": "1,2-dichloorethaan",
"CasNumber": "107-06-2",
"IsCMR": true,
"IsSZW": true,
"IsZZS": true,
"IsPZZS": true,
"IsBALAnnex3": true,
"GHSImages": "GHS02,GHS07,GHS08",
"ExternalAPI_ID": null
}
}
Article information
This API allows users to request information regarding a substance through an article.
The address of this API is: https://<the addressyour SOFOS environment>/api/v1/GetInfo/GetArticleInfo
Call:
GET {(Json in body) {
"ArticleId": string ,
"ArticleCode": string,
"OrderCode": string,
"EAN_GTINCode": string
}
Response:
(Json in body)
{
"StatusCode": 200,
"Message": null,
"Result": {
"ID": string,
"ArticleCode": string,
"OrderCode": null,
"ArticleName": string,
"EAN_GTINCode": string,
"HasSubstance": true,
"SubstanceName": string,
"CasNumber": string,
"GHSImages": string,
"IsCMR": bool,
"IsSZW": bool,
"IsZZS": bool,
"IsPZZS": bool,
"IsBALAnnex3": bool,
"ExternalAPI_IDSubstance": string
}
}
Example call and response:
Call:
{
"ArticleId": "",
"ArticleCode":"1",
"OrderCode":"",
"EAN_GTINCode":""
}
Response:
{
"StatusCode": 200,
"Message": null,
"Result": {
"ID": "ad1ab488-02a5-4aeb-94da-169e05046444",
"ArticleCode": "1",
"OrderCode": null,
"ArticleName": "BZ ; 3-chinuclidinylbenzilaat, 3-quinuclidinyl",
"EAN_GTINCode": "566556776655",
"HasSubstance": true,
"SubstanceName": "3-CHINUCLIDINYLBENZILAAT",
"CasNumber": "",
"GHSImages": "",
"IsCMR": false,
"IsSZW": false,
"IsZZS": false,
"IsPZZS": false,
"IsBALAnnex3": bool,
"ExternalAPI_IDSubstance": null
}
}
You can also request additional information via https://<the addressyour SOFOS environment>/swagger/ui/index
List information
This API can be used to retrieve, based on a CAS number, whether a substance appears on specific lists such as SZW, ZZS, BAL Annex 3, or is regulated under other legislations such as REACH, VOC, ODS, OPCW or as drugs/opiates.
The address of this API is: https://<the address of your SOFOS environment>/api/v1/GetInfo/GetListInfo
Call:
GET {
(Json in body)
{
"CasNumber": "string"
}
Response:
(Json in body)
{
"StatusCode": 200,
"Message": null,
"Result": {
"CasNumber": "string",
"IsSZW": bool,
"IsZZS": bool,
"ZZSEmissionClass": "string",
"IsPZZS": bool,
"IsBALAnnex3": bool,
"IsVOC": bool,
"IsOPCW": bool,
"IsODS": bool,
"IsFGas": bool,
"IsReach": bool,
"IsDiisocyanate": bool,
"IsSVHC": bool,
"IsDrugs": bool,
"IsOpiates": bool,
"IsWVMC": bool
}
Example call and response:
Call:
{
"CasNumber": "50-00-0"
}
Response:
{
"StatusCode": 200,
"Message": null,
"Result": {
"CasNumber": "50-00-0",
"IsSZW": true,
"IsZZS": true,
"ZZSEmissionClass": "MVP 2",
"IsPZZS": false,
"IsBALAnnex3": true,
"IsVOC": true,
"IsOPCW": false,
"IsODS": false,
"IsFGas": false,
"IsReach": false,
"IsDiisocyanate": false,
"IsSVHC": false,
"IsDrugs": false,
"IsOpiates": false,
"IsWVMC": false
}
}
You can also request additional information via https://<the addressyour SOFOS environment>/swagger/ui/index