Introduction
Welcome to the Kiewit Enterprise API. The Enterprise API is designed to be the easiest way to connect Kiewit's data to our applications. Some examples of the types of use cases the Enterprise API facilitates are:
Pull data from the Enterprise API to build workflows in Microsoft Flow
Pull employee and equipment data for mobile applications
Use the Enterprise API to safely post data to our back-end ERP system
Base URLs
The base URL for application calls are as follows:
Development - https://dev-api.kiewit.com
QA - https://qa-api.kiewit.com
Production - https://api.kiewit.com
Pagination
Offset and Limit parameters are implemented on all endpoints which can return more than one result. By default $limit is set to 5000.
Filtering
Only specific attributes can be used for filtering, and those attributes depend on the resource. Individual resource documentation defines what filters are available.
Date filtering
In many cases, date filter will automatically be implemented as "less than" the provided date. In these cases, it will be listed in the documentation for the endpoint. Unless otherwise stated, date filters will function as "key date".
HTTP Response Codes
The Enterprise API suite implements the following response codes:
Success:
200 OK
GET requests - The resource has been fetched and is transmitted in the message body.
POST and PUT requests - The resource describing the result of the action is transmitted in the message body.
201 Created
The request has succeeded and the resource has been created
202 Accepted
The request has been successfully received but not processed yet. 202 responses will be accompanied with a link that the API consumer can use to check the request status and/or access the response data.
Failure:
400 Bad Request
The request is has invalid syntax.
401 Unauthorized
Either a token was not provided, or the token provided was invalid - expired, or incorrect audience, tenant or scope.
403 Forbidden
The API user (or application) does not have sufficient permissions to access this resource.
404 Not Found
The path parameter requested does not exist.
409 Conflict
Commonly found for PUT requests, the post body has a conflict with the existing data in the source system.
429 Too Many Requests
The API user has his the threshold for the time period. Wait until the period elapses, and try again.
500 Internal Server Error
The API is either down or having issues. Please check the front page of the portal to see if the issue has been logged, otherwise open a ticket.
504 Gateway Timeout
The API has timed out. Please try again and if the issue persists, open a ticket.
Resource Type
Resource type is implemented as a filter to improve performance. When Resource Type is not provided, the API will default to "Basic" resource type, which will only return minimal fields. The values for resource type are:
Basic: returns only the most basic fields. Implemented on every endpoint that provides this filter.
Full: returns the entire response body. Implemented on every endpoint that provides this filter.
Sensitive: includes sensitive data. Implemented only when sensitive data may be provided.
Multiple resource types can be provided at in one call, comma separated.
Batch Post
SAP has limitations on URL size, as such, for calls which will entail a URL length that exceeds SAP's character limit, the API implements a batch post. This allows the API to pass the filter data in the body of the request, as opposed to in the URL. These calls are POST calls, but will function as GETs. They are called in the background by the GET call, and thus API users should never need to call them directly. These calls will be noted in the API documentation.