API Standards


The RequestTrackingID is a unique identifier (guid) that is generated for every API request, response, and error. It is sent to the application consuming the APIs. During troubleshooting, the RequestTrackingId helps tie all the system points of contact together and can be leveraged to trace through the different system logs for a particular request, response, or error.

All the SEI APIs will return the following standard structure in the event of an error:

{

"code": "gateway.authentication.failure",

"message": "Gateway Authentication Failed, Please validate Credentials",

"trackingId": "6cfbfd80-60ef-04bb-8b67-95f164846a3d",

"transient": "false",

"errors": [{

"field": "",

"location": "",

"reason": ""

}]

}

code A semantic code which will be used by SEI Technical Operations to troubleshoot the issue.
message Message accompanies the error explaining the reason behind the failure.
trackingId A unique identifier marrying the request response together across systems. This id should be used for logging purposes by the application.
transient Indicates if the error is temporary and the original request can be retrieved without any modifications.
errors.field The name of the field where the error has occurred.
errors.location The location of the invalid field.
errors.message A message indicating the reason for the failed request.

SEI APIs do not have any custom restriction on the length of the query parameters entered for an API. Restriction on data length for GET vs POST HTTP methods are the following:

GET POSTS
While retrieving data using the GET method it adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) No restrictions

https://www.w3schools.com/tags/ref_httpmethods.asp

For more information on browser induced character limitations please refer to:

http://stackoverflow.com/questions/812925/what-is-the-maximum-possible-length-of-a-query-string

SEI APIs perform cursor based pagination. 

Cursors are base64 encoded result of other sequential properties on the entity, typically just the id or row_num.

Example of the paging object returned in the API response:

{

"paging": {

"totalCount": 8301,

"limit": 15,

"first": "before={base64 encoded value}&after={base64 encoded value}",

"last": "before={base64 encoded value}&after={base64 encoded value}",

"previous": "before={base64 encoded value}&after={base64 encoded value}",

"next": "before={base64 encoded value}&after={base64 encoded value}",

"self": "before={base64 encoded value}&after={base64 encoded value}"

}

}

SEI uses the URI to manage different versions of the same API, e.g., https://api.seic.com/v1/.  The API documentation in the Developer Portal will indicate any change in the API versions through denoting v1, v2, etc. In the future, SEI will send out a communication through the blog to its users when a new version or new API is released.

  • Any URL included in SEI API response under the "data" object is always referenced using the href attribute.

  • Relationships are modeled as links (array) where each link has two attributes : rel and href

    • The “rel” attribute will reflect the name of the relationship

    • The “href” attribute will be a URL to access the relationship data 

SEI uses the 5 standard REST API methods. The API method is the procedure in which the particular API will retrieve information for the App Developer. Based on the API, SEI APIs may support any one or multiple types of API methods mentioned below:

GET The GET method is used to retrieve information from the given server using a given URI. Requests using GET should only retrieve data and should have no other effect on the data.
POST A POST request is used to send data to the server, for example, customer information, file upload, etc. using HTML forms.
PUT Replaces all current representations of the target resource with the uploaded content.
DELETE Removes all current representations of the target resource given by a URI.
PATCH Replaces a particular representation of the target resource with the uploaded content