Response Format

Helix uses a simple envelope to wrap virtually all responses. Envelope definition is as follows:

Property

Description

data

The data requested. Differs depending upon the route called. May be an object, a list of
objects, or null. If null, data property will be absent from the response. Will never be
a string, number, or date.

errors

A list of error objects. If no error occurred, this will be an empty list. A
single request can cause multiple errors. Each error object contains a code property and
a message property. The message property may change depending upon the culture, request
parameter values, etc. code is guaranteed to never change, and that value should be used
to drive logic within your application.

requestId

A globally unique string that identifies this particular request. Useful for
troubleshooting errors or tracking down problems historically. It is recommended this
value be stored somewhere on the caller's end when logging request/response pairs as it
enables Helix support to easily identify the exact request associated with your issue.

status

The overall status of the response. Reflects exactly the http status. Useful if your
client code only wants to inspect the actual body, and not the status portion of the raw
http response.

throttle

Throttling information emitted only if you are past 80% of the throttling limit, or if you
have surpassed the throttling limit.

Here is an example response body from a Helix request.

{
   "data":[
      {
         "accountId":12345,
         "name":"My savings account",
         "type":"Savings"
      }
   ],
   "errors":[
      
   ],
   "requestId":"2dd82a44-02b0-49cb-94e3-ca454bcdd276",
   "status":200,
   "throttle":{
      "periodEndsAt":"2019-08-22T19:16:46.773+00:00",
      "periodLengthInSeconds":1,
      "periodRequestLimit":15,
      "requestsRemainingInPeriod":2,
      "warningThreshold":0.2
   }
}