INOVAYT | API Documentation
Standard API using REST and JSON

Overview

This API is essentially a suite of methods that can be called over HTTP.
  • The URL is:  https://api.inovayt.com/MethodNameHere
  • The HTTP header contains the necessary authentication.
  • The HTTP method is POST and the body contains JSON.
  • The HTTP result contains JSON.
  • The HTTP status code is always 200.

Methods

Proteins.Search
Proteins.Meta
Proteins.Clusters
Proteins.StructureForSequence
Proteins.SequenceForStructure

Asynchronous Calls

Any method above can also be called with "asynchronous_mode" set to true to mean that the result should contain a unique token that looks something like this:   {"asynchronous_token": "aZ..."}

The result above can then later be passed as the argument to method Asynchronous.GetResultForToken to get the final/real result. If the result is not ready yet, an appropriate error result is returned.

When "asynchronous_mode" is set to true, the property "asynchronous_callback" may also be set. It is a URL to call on your server when the result is ready (so that you don't have to perform any polling). The call to the URL is an HTTP POST and the body is exactly the same as what is returned in the initial call (the JSON shown above that includes the token).

Authentication

"Basic Access Authentication" is used for all API calls. You will be issued a user name and a password, which should be used when forming the required HTTP header.
So, for example, if your user name is "UserA" and your password is "ZbJ058gm", you could use either of the following in the HTTP header:
  authorization: Basic VXNlckE6WmJKMDU4Z20=
  authorization: UserA:ZbJ058gm

Error Handling

When some type of error occurs with your call, an error result is returned.
In each call that you make, the first thing you should do is check the success bit and behave accordingly.
HTTP status codes are not mixed in at all with the API itself.
You will generally just receive a status code of 200. It is always possible that the communication over HTTP could fail or some very unexpected result could occur, but all of that is outside the scope of the API.
A successful result looks something like this:
{
   "success": true,
   "result": {...}
}
An error result has the same structure and looks something like this:
{
   "success": false,
   "result":
   {
      "code": "property.missing",
      "message": "A required property is missing.",
      "detail": "begin_date"
   }
}