Rest API Essentials

API version: v1

Note to the reader

This document is directed at employees at PeoplePath' customers or their partners, trying to integrate functionality with the PeoplePath platform. The document is technical in nature and assumes that the reader is well known to the HTTP protocol, REST, JSON and OAuth.

This document contains a description of PeoplePath's REST API based on the HTTP protocol granting access to the module endpoints.

Please keep in mind, that this API will be further developed and enhanced by new features. Don't rely on order of tags in resource JSON, also new items will be added to resource JSON. Of course, all development will respect backward compatibility of API.

This document contains description of general principles used in PeoplePath REST API. Detailed, up to date documentation of method calls and resources is available online-as described in this document.

In case you need assistance in understanding and implementing our API, please do not hesitate to contact customer support at support@peoplepath.com.

URI Templates

The following URI Templates describe how to construct URIs to identify resources exposed via our REST API. All URIs in this document point to your instance of our product.

Your instance of the API is available at
https://us.intraworlds.com/talents_us/rest/

API rate limit

PeoplePath REST API rate limit is defined to 1 000 requests per hour for development purposes. For our partners, the value can be adjusted individually.

API Documentation

Version

The documentation is divided into parts by versions of our REST API. Each version then contains modules and resources documentation.

The documentation for selected version is available at:
https://us.intraworlds.com/talents_us/rest/v<version>/info
e.g. https://us.intraworlds.com/talents_us/rest/v1/info

Module

The documentation for one module can be then received by adding module to URL.
https://us.intraworlds.com/talents_us/rest/v1/<module>/info
e.g. https://us.intraworlds.com/talents_us/rest/v1/users/info

Module documentation contains description common for all available resources and general info of the module.

Resource

Resources are identified with prefix URI:
URI: /<module>/<uri-to-resource>

Resource documentation consists of description with general information about resources provided by resource. Bellow description are displayed available parameters.

Request Authentication

Authenticate with your instance using OAuth 2.0 Client Credentials grant type.

The specification can be found on:
https://oauth.net/2/

Client ID and Client Secret

The Client ID and Client Secret for your application will be provided by PeoplePath upon request.

Getting Access Token

To obtain an Access Token, the Client sends an HTTP POST request to the Server's Access Token URL.

Access Token URL
The Access Token URL currently valid for this instance is:
https://us.intraworlds.com/talents_us/oauth/token
Required request parameters:
Required headers:
Example:

Credentails_base64 = base64(<client id>:<client secret>)
curl -H'Authorization: Basic <Credentails_base64>' --data 'grant_type=client_credentials&scope=api' https://us.intraworlds.com/talents_us/oauth/token

Authenticating requests

Each request must contain an HTTP header with the Access token. Exact syntax:
Authorization: Bearer <Access token>
Example:

curl -H'Authorization: Bearer <access_token>' https://us.intraworlds.com/talents_us/rest/v1/users/af

Do not obtain a new Access token for each individual request. Instead, store the Access Token and use it for requests until the token expires. Only then obtain a new one.

Operations

This section describes the semantics of operations in our REST API.

GET

The HTTP request method GET is used to retrieve the representation of the resource. The response to such a request contains an JSON representation of the resource, or an error message in case something went wrong, in the response body.

POST

The HTTP request method POST is used to create new resources. The response to such a request contains the JSON with newly created resource, or an error message in case an error occurred, in the response body.

PUT

The HTTP request method PUT is used to update existing resources. The response to such a request contains the new JSON representation of the updated fields, or an error message in case an error occurred, in the response body.

DELETE

The HTTP request method DELETE is used to delete an existing resource. The response to such a request contains HTTP response code 200 OK in case of success, or an error message in the response body when something went wrong.

I18n, L10n

In general, the API communicates with default language setting of API user (user logged in).

This can be changed by adding header to HTTP request.


IW-Language: DE

The set of available languages depends on portal configuration. The language is typically represented by the ISO country code. Additionally we are using internal codes for some specific languages (for example DE is the German language and D2 is an informal German language).

Network

Networks are the main entities in the portal. In general, the API communicates with API user's default network.

This can be changed by adding header to HTTP request.


IW-Network-Id: 1

The set of available networks depends on portal configuration. If you want to work in a specific network then the header must be used in all requests.

Parameters

URI parameters

In the resource URI prescription are URI parameters inserted into {}. The value in {} is replaced in request mostly by resource identifier.

Resource example:
/<resource>/{id}

Request parameters

Regular HTTP request parameters are expected after ? character in URI. Used e.g. for filtering options. The parameters are characterized by following options:

JSON attributes

Describe attributes of JSON in request body when using POST or PUT operations.

Parameters documentation

The parameters are characterized by following options:

Response Representation

We support JSON representation of the response. Bellow is attached JSON example.

{ "foo" : "value", "bar" : [] }

List responses

When getting list of entities, we support

Response Codes

The HTTP response codes are main indicators of the result of the operation.

Status Code Description
200 OK Request was successfully processed.
201 Created New resource was created.
400 Bad Request HTTP request had a bad structure. This response code can be returned because of the following reasons: malformed input JSON, missing some required fields in the request, etc.
401 Unauthorized Missing or bad OAuth parameters: unknown OAuth Consumer, invalid request signature, etc. Requester was denied access to the resource because it does not have permission to access the given network.
403 Forbidden This indicates authorization issue or invalid CSRF token.
404 Not Found Resource not found.
409 Conflict The server understood the request, but is refusing to fulfill it, because of conflict in versions.
413 Request Entity Too Large The length of entity is out off the limit.
500 Internal Server Error Some sort of an internal error occurred. When this happens, please contact customer support.
501 Not Implemented Requested feature or operation is not implemented.