API Reference

Attention

The bio.tools Web API provides an easy way to access the bio.tools database.

List tools

List and search through all the available tools. Can sort, filter, and search the results.

HTTP GET

https://bio.tools/api/tool/
https://bio.tools/api/t/

Endpoint parameters

Parameter

Required

Type

Default

Description

page

No

Integer

1

Result page number

format

No

String(json, api)

json

Response media type

q

No

String

Query term, used for searching, matches all attributes

sort

No

String(lastUpdate, additionDate, name, affiliation, score)

lastUpdate

Sorts the results by choosen value (score only available when there is a query)

ord

No

String(desc, asc)

desc

Orders the results by either Ascending or Descending order

<attribute>

No

String

Filter by <attribute>. List of supported attributes below.

Filtering

To filter the results by attribute name, the attribute name has to be added as a parameter to the URL, with the value being the desired search term, e.g. ?name=signalp

Attributes

These are the attributes supported by bio.tools:

Parameter

Search behaviour

biotoolsID

Search for bio.tools tool ID (usually quoted - to get exact match)

biotoolsID=”signalp”

name

Search for tool name (quoted as needed)

name=signalp

homepage

Exact search for tool homepage URL (must be quoted)

homepage=”http://cbs.dtu.dk/services/SignalP/”

description

Search over tool description (quoted as needed)

description=”peptide cleavage”

version

Exact search for tool version (must be quoted)

version=”4.1”

topic

Search for EDAM Topic (term) (quoted as needed)

topic=”Proteomics”

topicID

Exact search for EDAM Topic (URI): must be quoted

topicID=”topic_3510”

function

Fuzzy search over function (input, operation, output, note and command)

function=”Sequence analysis”

operation

Fuzzy search for EDAM Operation (term) (quoted as needed)

operation=”Sequence analysis”

operationID

Exact search for EDAM Operation (ID) (must be quoted)

operationID=”operation_2403”

dataType

Fuzzy search over input and output for EDAM Data (term) (quoted as needed)

dataType=”Protein sequence”

dataTypeID

Exact search over input and output for EDAM Data (ID) (must be quoted)

dataTypeID=”data_2976”

dataFormat

Fuzzy search over input and output for EDAM Format (term) (quoted as needed)

dataFormat=”FASTA”

dataFormatID

Exact search over input and output for EDAM Format (ID) (must be quoted)

dataFormatID=”format_1929”

input

Fuzzy search over input for EDAM Data and Format (term) (quoted as needed)

input=”Protein sequence”

inputID

Exact search over input for EDAM Data and Format (ID) (must be quoted)

inputID=”data_2976”

inputDataType

Fuzzy search over input for EDAM Data (term) (quoted as needed)

inputDataType=”Protein sequence”

inputDataTypeID

Exact search over input for EDAM Data (ID) (must be quoted)

inputDataTypeID=”data_2976”

inputDataFormat

Fuzzy search over input for EDAM Format (term) (quoted as needed)

inputDataFormat=”FASTA”

inputDataFormatID

Exact search over input for EDAM Format (ID) (must be quoted)

inputDataFormatID=”format_1929”

output

Fuzzy search over output for EDAM Data and Format (term) (quoted as needed)

output=”Sequence alignment”

outputID

Exact search over output for EDAM Data and Format (ID) (must be quoted)

outputID=”data_0863”

outputDataType

Fuzzy search over output for EDAM Data (term) (quoted as needed)

outputDataType=”Sequence alignment”

outputDataTypeID

Exact search over output for EDAM Data (ID) (must be quoted)

outputDataTypeID=”data_0863”

outputDataFormat

Fuzzy search over output for EDAM Format (term) (quoted as needed)

outputDataFormat=”ClustalW format”

outputDataFormatID

Exact search over output for EDAM Format (ID) (must be quoted)

outputDataFormatID=”format_1982”

toolType

Exact search for tool type

toolType=”Command-line tool”

collectionID

Exact search for tool collection (normally quoted)

collectionID=”Rare Disease”

maturity

Exact search for tool maturity

maturity=Mature

operatingSystem

Exact search for tool operating system

operatingSystem=Linux

language

Exact search for programming language

language=Java

cost

Exact search for cost

cost=”Free of charge”

license

Exact search for software or data usage license (quoted as needed)

license=”GPL-3.0”

accessibility

Exact search for tool accessibility

accessibility=”Open access”

credit

Fuzzy search over credit (name, email, URL, ORCID iD, type of entity, type of role and note)

credit=”Henrik Nielsen”

creditName

Exact search for name of credited entity

creditName=”Henrik Nielsen”

creditTypeRole

Exact search for role of credited entity

creditTypeRole=Developer

creditTypeEntity

Exact search for type of credited entity

creditTypeEntity=”Funding agency”

creditOrcidID

Exact search for ORCID iD of credited entity (must be quoted)

creditOrcidID=”0000-0001-5121-2036”

publication

Fuzzy search over publication (DOI, PMID, PMCID, publication type and tool version) (quoted as needed)

publication=10.12688/f1000research.12974.1

publicationID

Exact search for publication ID (DOI, PMID or PMCID) (must be quoted)

publicationID=”10.12688/f1000research.12974.1”

publicationType

Exact search for publication type

publicationType=Primary

publicationVersion

Exact search for tool version associated with a publication (must be quoted)

publicationVersion=”1.0”

link

Fuzzy search over general link (URL, type and note) (quote as needed)

link=”Issue tracker”

linkType

Exact search for type of information found at a link

linkType=”Issue tracker”

documentation

Fuzzy search over documentation link (URL, type and note) (quote as needed)

documentation=Manual

documentationType

Exact search for type of documentation

documentationType=Manual

download

Fuzzy search over download link (URL, type, version and note) (quote as needed)

download=Binaries

downloadType

Exact search for type of download

downloadType=Binaries

downloadVersion

Exact search for tool version associated with a download (must be quoted)

downloadVersion=”1.0”

otherID

Fuzzy search over alternate tool IDs (ID value, type of ID and version)

otherID=”rrid:SCR_015644”

otherIDValue

Exact search for value of alternate tool ID (must be quoted)

otherIDValue=”rrid:SCR_015644”

otherIDType

Exact search for type of alternate tool ID

otherIDType=RRID

otherIDVersion

Exact search for tool version associated with an alternate ID (must be quoted)

otherIDVersion=”1.0”

Important

Values of the following parameters must be given in quotes to get sensible (or any) results:
  • homepage

  • version

  • topicID

  • operationID

  • dataTypeID

  • dataFormatID

  • inputID

  • inputDataTypeID

  • inputDataFormatID

  • outputID

  • outputDataTypeID

  • outputDataFormatID

  • creditOrcidID

  • publicationID

  • publicationVersion

  • downloadVersion

  • otherIDValue

  • otherIDVersion

e.g.
Values of other parameters can be quoted or unquoted:
  • Unquoted values invoke a fuzzy word search: it will search for fuzzy matches of words in the search phrase, to the target field

  • Quoted values invoke an exact phrase search; it will search for an exact match of the full-length of the search phrase, to the target field (matches to target substrings are allowed)

e.g.

Caution

The parameters are (currently) case-sensitive, e.g. you must use &biotoolsID= and not &biotoolsid

Example

curl -X GET "https://bio.tools/api/tool/?page=1&format=json&name=signalp&sort=name&ord=asc&q=protein-signal-peptide-detection"

Note

An EDAM concept ID can be specified as a concept URI or ID:
  • Concept URI e.g. http://edamontology.org/operation_2403

  • Concept ID e.g. operation_2403

In future we may add support for:
  • Concept CURIE e.g. EDAM:operation_2403

  • Numerical ID e.g. 2403

Note: URIs and IDs must be quoted, e.g. &topicID="operation_2403"

Response data

Key Name

Description

Example

count

The total tool count results for your query

2313

previous

Link to the previous page

?page=4

next

Link to the next page

?page=6

list

An array with multiple tools and their relative information

ARRAY

Tool detail

Obtain information about a single tool.

HTTP GET

https://bio.tools/api/tool/:id/
https://bio.tools/api/t/:id/
https://bio.tools/api/:id/

Endpoint Parameters

Parameter

Required

Type

Default

Description

id

Yes

String

biotoolsID

format

No

String(json, xml, api)

json

Response media type

Example

curl -X GET "https://bio.tools/api/tool/signalp/?format=json"

Caution

bio.tools supports upload/download of data in XML format compliant to biotoolsScheme v3.0.0. If you want to download in XML format you should use these endpoints (see Tool detail below):

https://bio.tools/api/tool/id/
https://bio.tools/api/t/id/
https://bio.tools/api/id/

e.g. https://bio.tools/api/tool/signalp

Were you to try to get XML format returned from a search over bio.tools

e.g. https://bio.tools/api/tool?toolid=signalp&format=xml

currently you’d get garbled / invalid XML (don’t use it!) - we’re looking at a fix.

Register a tool

Register a new tool.

Important

This method requires the user to be authenticated. Learn how to Log in / obtain token.

HTTP POST

https://bio.tools/api/tool/
https://bio.tools/api/t/

Endpoint Parameters

Parameter

Required

Type

Description

data

Yes

Tool

Tool you wish to register. See an example tool.

Note

It is possible to specify editing permissions for tools. Learn how to manage Editing permissions.

Headers

Parameter

Required

Allowed values

Description

Content-Type

Yes

String(application/json, application/xml)

Media type

Authorization

Yes

String(‘Token <authorization token>’)

Authorization header. Learn how to Log in / obtain token.

Example

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Token 028595d682541e7e1a5dcf2306eccb720dadafd7" \
-d '<resource>' "https://bio.tools/api/tool/"

Validate registering a tool

Test registering a tool without it actually being saved into the database.

Important

This method requires the user to be authenticated. Learn how to Log in / obtain token.

HTTP POST

https://bio.tools/api/tool/validate/
https://bio.tools/api/t/validate/

Endpoint Parameters

Parameter

Required

Type

Description

data

Yes

Tool

Tool you wish to validate. See an example tool.

Headers

Parameter

Required

Allowed values

Description

Content-Type

Yes

String(application/json, application/xml)

Media type

Authorization

Yes

String(‘Token <authorization token>’)

Authorization header. Learn how to Log in / obtain token.

Example

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Token 028595d682541e7e1a5dcf2306eccb720dadafd7" \
-d '<resource>' "https://bio.tools/api/tool/validate/"

Update a tool

Update a tool description.

Important

This method requires the user to be authenticated. Learn how to Log in / obtain token.

HTTP PUT

https://bio.tools/api/tool/:id/
https://bio.tools/api/t/:id/
https://bio.tools/api/:id/

Endpoint Parameters

Parameter

Required

Type

Description

id

Yes

String

biotoolsID

data

Yes

Tool

Description with which you wish to update the tool See an example tool.

Note

It is possible to specify editing permissions for tools. Learn how to manage Editing permissions.

Headers

Parameter

Required

Allowed values

Description

Content-Type

Yes

String(application/json, application/xml)

Media type

Authorization

Yes

String(‘Token <authorization token>’)

Authorization header. Learn how to Log in / obtain token.

Example

curl -X PUT -H "Content-Type: application/json" \
-H "Authorization: Token 028595d682541e7e1a5dcf2306eccb720dadafd7" \
-d '<resource>' "https://bio.tools/api/tool/SignalP"

Validate updating a tool

Test updating a tool without it actually being saved into the database.

Important

This method requires the user to be authenticated. Learn how to Log in / obtain token.

HTTP PUT

https://bio.tools/api/tool/:id/validate/
https://bio.tools/api/t/:id/validate/
https://bio.tools/api/:id/validate/

Endpoint Parameters

Parameter

Required

Type

Description

id

Yes

String

biotoolsID

data

Yes

Tool Description with which you wish to update the tool for validation See an example tool.

Headers

Parameter

Required

Allowed values

Description

Content-Type

Yes

String(application/json, application/xml)

Media type

Authorization

Yes

String(‘Token <authorization token>’)

Authorization header. Learn how to Log in / obtain token.

Example

curl -X PUT -H "Content-Type: application/json" \
-H "Authorization: Token 028595d682541e7e1a5dcf2306eccb720dadafd7" \
-d '<resource>' "https://bio.tools/api/tool/SignalP/validate/"

Editing permissions

Manage editing permissions for the registered tools.

There are currently three types of editing permissions supported by the system:

Private

A private tool can only be edited by the creator of the tool. This is the default option. In order to set this kind of permission, add the following info into the tool data:

"editPermission": {
    "type": "private"
}

Public

Public tool can be modified by any user registered in the system. In order to set this kind of permission, add the following info into the tool data:

"editPermission": {
    "type": "public"
}

Group

Specify a list of users in the system that can edit the tool. In order to set this kind of permission, add the following info into the tool data:

"editPermission": {
    "type": "private",
    "authors": [
        "registered_user_1", "registered_user_2"
    ]
}

Delete a tool

Removes a tool from the registry.

Important

This method requires the user to be authenticated. Learn how to Log in / obtain token.

HTTP DELETE

https://bio.tools/api/tool/:id/
https://bio.tools/api/t/:id/
https://bio.tools/api/:id/

Endpoint Parameters

Parameter

Required

Type

Description

id

Yes

String

biotoolsID

Headers

Parameter

Required

Allowed values

Description

Authorization

Yes

String(‘Token <authorization token>’)

Authorization header. Learn how to Log in / obtain token.

Example

curl -X DELETE \
-H "Authorization: Token 028595d682541e7e1a5dcf2306eccb720dadafd7" \
"https://bio.tools/api/tool/SignalP"

List used terms

Obtain a list of terms registered with tools for some attributes, e.g. a list of names of all tools.

HTTP GET

https://bio.tools/api/used-terms/:attribute

Endpoint Parameters

Parameter

Required

Type

Default

Description

attribute

Yes

String(name, topic, functionName, input, output, credits, all)

Attribute for which a list of used terms will be returned

format

No

String(json, xml, api)

json

Response media type

Example

curl -X GET "https://bio.tools/api/used-terms/name/?format=json"

Response data

Key Name

Description

data

A list of used terms

Create a user account

Creates a user account and emails a verification email.

HTTP POST

https://bio.tools/api/rest-auth/registration/

POST data

Key Name

Required

Type

Description

Example

username

Yes

String

Account username

username

password1

Yes

String

Password

password

password2

Yes

String

Repeated password

password

email

Yes

String

Account email. The verification email will be sent to this address

example@example.org

Headers

Parameter

Required

Allowed values

Description

Content-Type

Yes

String(application/json, application/xml)

POST data media type

Example

curl -X POST -H "Content-Type: application/json" \
-d '{"username":"username", "password1":"password", \
"password2":"password", "email":"example@example.org"}' \
"https://bio.tools/api/rest-auth/registration/"

Verify a user account

Verifies a user account based on the emailed verification key.

HTTP POST

https://bio.tools/api/rest-auth/registration/verify-email/

POST data

Key Name

Required

Type

Description

Example

key

Yes

String

Verification key from account creation email

ndwowtbpmlk5zxdxfrwgu2822xynjidhizhwosycve7hro1of156hjwdsf1f6gbn

Headers

Parameter

Required

Allowed values

Description

Content-Type

Yes

String(application/json, application/xml)

POST data media type

Example

curl -X POST -H "Content-Type: application/json" \
-d '{"key":"ndwowtbpmlk5zxdxfrwgu2822xynjidhizhwosycve7hro1of156hjwdsf1f6gbn"}' \
"https://bio.tools/api/rest-auth/registration/verify-email/"

Log in / obtain token

Logs the user in and returns an authentication token.

HTTP POST

https://bio.tools/api/rest-auth/login/

POST data

Key Name

Required

Type

Description

Example

username

Yes

String

Account username

username

password

Yes

String

Password

password

Headers

Parameter

Required

Allowed values

Description

Content-Type

Yes

String(application/json, application/xml)

POST data media type

Example

curl -X POST -H "Content-Type: application/json" \
-d '{"username":"username","password":"password"}' \
"https://bio.tools/api/rest-auth/login/"

Response data

Key Name

Description

key

Authentication token

Get user information

Return information about the logged in user account, including a list of registered tool (name, id, version, additionDate, lastUpdate)

Important

This method requires the user to be authenticated. Learn how to Log in / obtain token.

HTTP GET

https://bio.tools/api/rest-auth/user/

Endpoint Parameters

Parameter

Required

Type

Default

Description

format

No

String(json, xml, api)

json

Response media type

Headers

Parameter

Required

Allowed values

Description

Authorization

Yes

String(‘Token <authorization token>’)

Authorization header. Learn how to Log in / obtain token.

Example

curl -X GET \
-H "Authorization: Token 028595d682541e7e1a5dcf2306eccb720dadafd7" \
"https://bio.tools/api/rest-auth/user/?format=json"

Response data

Key Name

Description

username

Account username

email

Account email

resources

List of registered tools (limited to name, id, version, additionDate, lastUpdate)

Log out

Log out of the system.

Important

This method requires the user to be authenticated. Learn how to Log in / obtain token.

HTTP POST

https://bio.tools/api/rest-auth/logout/

Headers

Parameter

Required

Allowed values

Description

Authorization

Yes

String(‘Token <authorization token>’)

Authorization header. Learn how to Log in / obtain token.

Example

curl -X POST
-H "Authorization: Token 028595d682541e7e1a5dcf2306eccb720dadafd7" \
"https://bio.tools/api/rest-auth/logout/"

Reset user password

Send a password reset email.

HTTP POST

https://bio.tools/api/rest-auth/password/reset/

POST data

Key Name

Required

Type

Description

Example

email

Yes

String

Account email

example@example.org

Headers

Parameter

Required

Allowed values

Description

Content-Type

Yes

String(application/json, application/xml)

POST data media type

Example

curl -X POST -H "Content-Type: application/json" \
-d '{"email":"example@example.org"}' \
"https://bio.tools/api/rest-auth/password/reset/"

Confirm password reset

Confirm a password reset using uid and token from a password reset email.

HTTP POST

https://bio.tools/api/rest-auth/password/reset/confirm/

POST data

Key Name

Required

Type

Description

Example

uid

Yes

String

UID from password reset email

MQ

token

Yes

String

Token from password reset email

4ct-67e90a1ab4f22fbb9b9f

password1

Yes

String

New password

new_password

password2

Yes

String

New password repeated

new_password

Headers

Parameter

Required

Allowed values

Description

Content-Type

Yes

String(application/json, application/xml)

POST data media type

Example

curl -X POST -H "Content-Type: application/json" \
-d '{"uid":"MQ", "token":"4ct-67e90a1ab4f22fbb9b9f", \
"password1":"new_password", "password2":"new_password"}' \
"https://bio.tools/api/rest-auth/password/reset/confirm/"

Stats

Compile stats about a the registry.

HTTP GET

https://bio.tools/api/stats

Example

curl -X GET "https://bio.tools/api/stats"