Response Format

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

PropertyDescription
dataThe 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.
errorsA 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.
requestIdA 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.
statusThe 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.
throttleThrottling 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
   }
}