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.