Table of Contents
API Instructions for API v1

Command Line API



Acquiring an API Key

In order to query the API, you will need to have an API Key. Currently, API access is private: if you don't have a key, you will have to request one.

If you would like a key, please reach out to our team:

James (Jim) Griffioen: griff@netlab.uky.edu
Vikram Gazula: gazula@uky.edu
Sandesh Lamichhane: sla302@uky.edu



Using the API

The URL for accessing our API is: https://sds-api.ccs.uky.edu/api/v1

The basic syntax for querying the API is as follows:

Query Software:
curl https://sds-api.ccs.uky.edu/api/v1 -H "Content-Type: application/json" -H "X-API-Key: your_api_key"
-d '{"software": ["software_name"]}'


Note that all query responses are sorted alphabetically by software name.
Here is a breakdown of this command:

Command Description Required/Optional
curl (Client for URL) is a tool for transferring data through network protocols. Wget and other similar commands will also work. Required
https://sds-api.ccs.uky.edu/api/v1 This is the 'Path' to the API. Required
-H "Content-Type: application/json" Informs the api server the datatype for your request. You will never have to change this Required
-H "X-API-Key: your_api_key"{API_KEY} Once you've obtained an API Key from us, you will need to replace 'your_api_key' your actual key each time you query the API.
Without a valid key, your request will be denied.
It is also case-sensitive.
Required
"software": ["software_name"] This is the data you will be requesting from the api server. Replace 'software' with the name of you software you are requesting data for. This should be formatted as: "software_name1", "software_namen"

For example, if you want to grab information for gaussian and abacas, your query will be: "software": ["gaussian", "abacas"]

The values are not case sensitive, i.e. 'Gaussian' and 'gaussian' will be treated the same.
Required

By default, queries extract all the information about a software. However, if you are only interested in certain fields, there are some optional flags you may add to your query.

Flag Description Required/Optional
"columns": ["column_name"] Include this if you are only interested in getting data from certain columns.
Format as: -d '{ "software": ["software_name"], "columns": ["column_name1", "column_name2"] }'

NOTE: the software_name column is always shown.
Optional
"exclude": true/false As an alternative, if you are interested in all but a few specific columns, you can exclude them instead.
Default is false
Format as: -d '{ "software": ["abaqus"], "columns": ["software_description", "software_name"], "exclude": true}'

Optional
"fuzz_software": true/false Flag to use fuzzy search to find matching software name
Default is false
Format as: -d '{ "software": ["search_term"], "fuzz_software":true }'

To perform a fuzzy search for the term blas: -d '{ "software": ["blas"], "fuzz_software": true }' This will return all entries for software that contain "blas", such as: blas, blast+, kblas-gpu, openblas, etc.

Note that all data returned will be sorted alphabetically based on software name in the following order: exact matches -> starts with -> contains -> other
Optional



API Examples

Example query that will retrieve all the information in our database about 7z (remember to replace your_api_key with your personal API Key):

curl https://sds-api.ccs.uky.edu/api/v1 -H "Content-Type: application/json" -H "X-API-Key: your_api_key" -d '{"software":["7z"]}'

Example of a query that will retrieve information on abaqus and blast+, excluding some of the AI-generated information:

curl https://sds-api.ccs.uky.edu/api/v1 -H "Content-Type: application/json" -H "X-API-Key: your_api_key" -d '{"software":["abaqus", "blast+"], "columns":["ai_description"], "exclude":true}'

Example query to perform a fuzzy search:

curl https://sds-api.ccs.uky.edu/api/v1 -H "Content-Type: application/json" -H "X-API-Key: your_api_key" -d '{"software":["blas"], "fuzz_software":true}'