{
"swagger": "2.0",
"info": {
"description": "REST API webservice for lazar and nano-lazar. \n*lazar* (lazy structure–activity relationships) is a modular framework for predictive toxicology. With activated Authentication & Authorization, subjectid authorization token are obligatory for designated services.\n",
"version": "1.0.0",
"title": "Lazar & Nano-Lazar REST Service",
"contact": {
"name": "in silico toxicology gmbh",
"email": "service@in-silico.ch",
"url": "www.in-silico.ch"
},
"license": {
"name": "GNU GENERAL PUBLIC LICENSE",
"url": "https://github.com/opentox/lazar-rest/blob/master/LICENSE"
}
},
"host": "enm.in-silico.ch",
"basePath": "/",
"schemes": [
"https"
],
"paths": {
"/model": {
"get": {
"tags": [
"model"
],
"description": "Get a list of all prediction models",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"text/uri-list",
"application/json"
]
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"text/uri-list",
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"404": {
"$ref": "#/responses/404"
},
"500": {
"$ref": "#/responses/500"
}
}
}
},
"/model/{id}": {
"get": {
"tags": [
"model"
],
"description": "Get model representation",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"application/json"
]
},
{
"$ref": "#/parameters/id"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
},
"post": {
"tags": [
"model"
],
"description": "Predict a compound",
"parameters": [
{
"name": "identifier",
"in": "formData",
"description": "SMILES identifier or comma seperated list of SMILES identifiers",
"required": true,
"type": "string"
},
{
"$ref": "#/parameters/id"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/model/{id}/nanoparticle": {
"post": {
"tags": [
"model"
],
"description": "Predict a nanoparticle",
"parameters": [
{
"name": "core",
"in": "formData",
"description": "core",
"required": true,
"type": "string"
},
{
"name": "coating",
"in": "formData",
"description": "coating",
"required": true,
"type": "string"
},
{
"name": "physchem",
"in": "formData",
"description": "physchem descriptors. key-value hash of physchem descriptors.",
"required": true,
"type": "string"
},
{
"$ref": "#/parameters/id"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/report": {
"get": {
"tags": [
"report"
],
"description": "Get a list of QMRF reports",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"text/uri-list",
"application/json"
]
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"text/uri-list",
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"404": {
"$ref": "#/responses/404"
},
"500": {
"$ref": "#/responses/500"
}
}
}
},
"/report/{id}": {
"get": {
"tags": [
"report"
],
"description": "Get a QMRF report prototype",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"application/xml"
]
},
{
"$ref": "#/parameters/id"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"application/xml"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/dataset": {
"get": {
"tags": [
"dataset"
],
"description": "Get a list of all datasets",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"text/uri-list",
"application/json"
]
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"text/uri-list",
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"404": {
"$ref": "#/responses/404"
},
"500": {
"$ref": "#/responses/500"
}
}
}
},
"/dataset/{id}": {
"get": {
"tags": [
"dataset"
],
"description": "Get dataset representation",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"application/json",
"text/csv"
]
},
{
"$ref": "#/parameters/id"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"application/json",
"text/csv"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/dataset/{id}/{attribute}": {
"get": {
"tags": [
"dataset"
],
"description": "Get dataset representation",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"application/json"
]
},
{
"name": "attribute",
"in": "path",
"description": "requested attribute",
"required": true,
"type": "string",
"enum": [
"compounds",
"nanoparticles",
"substances",
"features"
]
},
{
"$ref": "#/parameters/id"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/substance": {
"get": {
"tags": [
"substance"
],
"description": "Get a list of all substances",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"text/uri-list",
"application/json"
]
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"text/uri-list",
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"404": {
"$ref": "#/responses/404"
},
"500": {
"$ref": "#/responses/500"
}
}
}
},
"/substance/{id}": {
"get": {
"tags": [
"substance"
],
"description": "Get substance representation",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"application/json"
]
},
{
"$ref": "#/parameters/id"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/nanoparticle": {
"get": {
"tags": [
"nanoparticle"
],
"description": "Get a list of all nanoparticles",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"text/uri-list",
"application/json"
]
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"text/uri-list",
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"404": {
"$ref": "#/responses/404"
},
"500": {
"$ref": "#/responses/500"
}
}
}
},
"/nanoparticle/{id}": {
"get": {
"tags": [
"nanoparticle"
],
"description": "Get nanoparticle representation",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"application/json"
]
},
{
"$ref": "#/parameters/id"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/feature": {
"get": {
"tags": [
"feature"
],
"description": "Get a list of all features",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"text/uri-list",
"application/json"
]
}
],
"produces": [
"text/uri-list",
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"404": {
"$ref": "#/responses/404"
},
"500": {
"$ref": "#/responses/500"
}
}
}
},
"/feature/{id}": {
"get": {
"tags": [
"feature"
],
"description": "Get feature representation",
"parameters": [
{
"name": "acept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"application/json"
]
},
{
"$ref": "#/parameters/id"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/validation": {
"get": {
"tags": [
"validation"
],
"description": "Get a list of all validation types",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"text/uri-list",
"application/json"
]
}
],
"produces": [
"text/uri-list",
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"404": {
"$ref": "#/responses/404"
},
"500": {
"$ref": "#/responses/500"
}
}
}
},
"/validation/{validationtype}": {
"get": {
"tags": [
"validation"
],
"description": "Get all validations of a validation type",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"text/uri-list",
"application/json"
]
},
{
"$ref": "#/parameters/valtype"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"text/uri-list",
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/validation/{validationtype}/{id}": {
"get": {
"tags": [
"validation"
],
"description": "Get validation representation",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"application/json"
]
},
{
"$ref": "#/parameters/valtype"
},
{
"$ref": "#/parameters/id"
},
{
"$ref": "#/parameters/subjectid"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"403": {
"$ref": "#/responses/403"
},
"404": {
"$ref": "#/responses/404"
}
}
}
},
"/compound/descriptor": {
"get": {
"tags": [
"compound",
"descriptor"
],
"description": "Get a list of all descriptors",
"parameters": [
{
"name": "accept",
"in": "header",
"description": "requested Content-Type",
"required": true,
"type": "string",
"enum": [
"text/plain",
"application/json"
]
}
],
"produces": [
"text/plain",
"application/json"
],
"responses": {
"200": {
"$ref": "#/responses/200"
},
"400": {
"$ref": "#/responses/400"
},
"401": {
"$ref": "#/responses/401"
},
"404": {
"$ref": "#/responses/404"
},
"500": {
"$ref": "#/responses/500"
}
}
},
"post": {
"tags": [
"compound",
"descriptor"
],
"summary": "Descriptor calculation",
"description": "Calculate descriptors for a single compound as SMILES string
curl example:
curl -Lk -X POST -i -H \"accept:application/json\" -F \"identifier=O=C1NC(=O)NC=C1\" -F \"descriptor=Openbabel.MW,JoeLib.LogP\" https://enm.in-silico.ch/compound/descriptor.", "parameters": [ { "name": "accept", "in": "header", "description": "requested Content-Type", "required": true, "type": "string", "enum": [ "text/csv", "application/json" ], "default": "text/csv" }, { "name": "identifier", "in": "formData", "description": "SMILES identifier", "required": true, "type": "string" }, { "name": "descriptor", "in": "formData", "description": "array of descriptors", "required": true, "type": "array", "items": { "type": "string" } }, { "$ref": "#/parameters/subjectid" } ], "produces": [ "text/csv", "application/json" ], "responses": { "200": { "$ref": "#/responses/200" }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" }, "404": { "$ref": "#/responses/404" }, "500": { "$ref": "#/responses/500" } } } }, "/compound/descriptor/{descriptor}": { "get": { "tags": [ "compound", "descriptor" ], "description": "Get a list of a descriptors", "parameters": [ { "name": "accept", "in": "header", "description": "requested Content-Type", "required": true, "type": "string", "enum": [ "text/plain", "application/json" ] }, { "name": "descriptor", "in": "path", "description": "descriptor name or ID", "required": true, "type": "string" } ], "produces": [ "text/plain", "application/json" ], "responses": { "200": { "$ref": "#/responses/200" }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" }, "404": { "$ref": "#/responses/404" }, "500": { "$ref": "#/responses/500" } } } }, "/compound/{InChI}": { "get": { "tags": [ "compound" ], "description": "Get compound representation", "parameters": [ { "$ref": "#/parameters/InChI" }, { "name": "accept", "in": "header", "description": "requested Content-type", "required": true, "type": "string", "enum": [ "application/json", "chemical/x-daylight-smiles", "chemical/x-inchi", "chemical/x-mdl-sdfile", "chemical/x-mdl-molfile", "image/png", "image/svg+xml", "text/plain" ] } ], "produces": [ "application/json", "chemical/x-daylight-smiles", "chemical/x-inchi", "chemical/x-mdl-sdfile", "chemical/x-mdl-molfile", "image/png", "image/svg+xml", "text/plain" ], "responses": { "200": { "$ref": "#/responses/200" }, "400": { "$ref": "#/responses/400" } } } }, "/api/api.json": { "get": { "tags": [ "api" ], "description": "Get swagger api in JSON", "produces": [ "application/json" ], "responses": { "200": { "$ref": "#/responses/200" }, "400": { "$ref": "#/responses/400" }, "500": { "$ref": "#/responses/500" } } } }, "/aa/authenticate": { "post": { "tags": [ "authentication" ], "description": "Authentication against OpenSSO. Returns token. Requires Username and Password.", "operationId": "login", "consumes": [ "text/plain" ], "produces": [ "text/plain" ], "parameters": [ { "in": "formData", "name": "username", "description": "username", "required": true, "type": "string" }, { "in": "formData", "name": "password", "description": "password", "required": true, "type": "string", "format": "password" } ], "responses": { "200": { "$ref": "#/responses/200" }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" } } } }, "/aa/logout": { "post": { "description": "Devalidates a token. Requires Subjectid.", "operationId": "logout", "tags": [ "authentication" ], "consumes": [ "text/plain" ], "produces": [ "text/plain" ], "parameters": [ { "in": "formData", "name": "subjectid", "description": "subjectid", "required": true, "type": "string" } ], "responses": { "200": { "$ref": "#/responses/200" }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" } } } } }, "parameters": { "id": { "name": "id", "in": "path", "description": "id", "required": true, "type": "string" }, "InChI": { "name": "InChI", "in": "path", "description": "InChI String", "required": true, "type": "string" }, "valtype": { "name": "validationtype", "in": "path", "description": "validation type", "required": true, "type": "string" }, "subjectid": { "in": "header", "name": "subjectid", "description": "authorization token", "required": false, "type": "string" } }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Resource Not Found" }, "500": { "description": "Server Error" } }, "tags": [ { "name": "algorithm", "description": "Algorithm" }, { "name": "api", "description": "Swagger API representation in JSON" }, { "name": "authentication", "description": "minimal Authentication service" }, { "name": "descriptor", "description": "Descriptor" }, { "name": "model", "description": "Lazar Model Service" }, { "name": "compound", "description": "Compound" }, { "name": "dataset", "description": "Dataset" }, { "name": "validation", "description": "Validation" }, { "name": "substance", "description": "Substance" }, { "name": "nanoparticle", "description": "Nanoparticle" }, { "name": "feature", "description": "Feature" }, { "name": "report", "description": "QMRF Reporting" } ] }