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 anda message property. The message property may change depending upon the culture, requestparameter values, etc. code is guaranteed to never change, and that value should be usedto 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
}
}