elog | 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.elog.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

Account.Settings.Put
Account.Settings.Update
Account.Settings.Get
Account.Settings.Delete
Accounts.List
Assets.List
Account.State
Funds.Performance

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"
   }
}

Alternative Data

There is an "alternative dataset" available over FTP as a CSV file.
  • It is updated every day between 12AM and 1AM Eastern Time.
  • From January 1, 2020 and onward, there are 50 high-quality crypto assets available. Before that timeframe, the number of assets varies.
  • The fields are the date, the crypto ticker, and then there are 11 more fields, each at a different level of risk. They are called: elog-fund-0, elog-fund-10, ..., and elog-fund-100. These elog-fund fields are the crowning jewel of the whole system. They are the weights for the assets, used for trading that day. Detailed documentation is available upon request.