The access token is passed with all API calls.

When implementing APIs using the new Elite ID authentication, the third party must also provide the 3E Tenant ID (Instance ID).

Base URLS for 3E APIs

Following are the base URLs for 3E APIs to be used by third parties when authenticating with an Elite ID token:

API

URL Suffix

Environment

Example

3E REST API

/{env}/3e/v1/

Preview

https://api.elite.com/preview/3e/v1/

Live

https://api.elite.com/3e/v1/

3E OData API

/{env}/3e/odata/

Preview

https://api.elite.com/preview/3e/odata/

Live

https://api.elite.com/3e/odata/

3E DI OData API

/{env}/3e/v1/

Preview

https://api.elite.com/preview/3e/datainsights/odata/

Live

https://api.elite.com/3e/datainsights/odata/

How to make API Calls using Elite ID

Once the third party is provided with the base URL for the environment and the corresponding Instance ID, then the third-party application must invoke the 3E APIs using the new X-3E-InstanceId header parameter. Format for API calls is shown below:

For REST API

curl --location --request <HTTP METHOD> 'https://api.elite.com/{env}/3e/v1/<endpoint>' `

--header 'Content-Type: application/json' `

--header 'Authorization: Bearer <access_token>' `

--header 'X-3E-InstanceId: <InstanceId>'

For OData API

curl --location --request <HTTP METHOD> 'https://api.elite.com/{env}/3e/odata/<endpoint>' `

--header 'Content-Type: application/json' `

--header 'Authorization: Bearer <access_token>' `

--header 'X-3E-InstanceId: <InstanceId>'

Note: For the Live environment /{env} should be removed from the URL.

For DI OData API

curl --location --request <HTTP METHOD> 'https://api.elite.com/{env}/3e/datainsights/odata/<endpoint>' `

--header 'Content-Type: application/json' `

--header 'Authorization: Bearer <access_token>' `

--header 'X-3E-InstanceId: <InstanceId>'

SAMPLE CALLS

As an example, let’s assume the firm has the following Instance IDs:

Using the GET ./timekeeper call, the new X-3E-InstanceId parameter is shown in the following sample cURL calls:

For Stage (Preview) Environment

curl --location --request GET 'https://api.elite.com/preview/3e/v1/timekeeper?TimekeeperIndex=3320' `

--header 'Content-Type: application/json' `

--header 'Authorization: Bearer <access_token>' `

--header 'X-3E-InstanceId: wzh8osomtuytmxrpulkgxa'

curl --location --request GET 'https://api.elite.com/preview/3e/odata/Timekeeper(3320)' `

--header 'Content-Type: application/json' `

--header 'Authorization: Bearer <access_token>' `

--header 'X-3E-InstanceId: wzh8osomtuytmxrpulkgxa'

curl --location --request GET 'https://api.elite.com/preview/3e/datainsights/odata/trs_Activity' `

--header 'Content-Type: application/json' `

--header 'Authorization: Bearer <access_token>' `

--header 'X-3E-InstanceId: wzh8osomtuytmxrpulkgxa'

For Production Environment

curl --location --request GET 'https://api.elite.com/3e/v1/timekeeper?TimekeeperIndex=3320' `

--header 'Content-Type: application/json' `

--header 'Authorization: Bearer <access_token>' `

--header 'X-3E-InstanceId: ebm7ewi88k6qqse70zhqwg'

curl --location --request GET 'https://api.elite.com/3e/odata/Timekeeper(3320)' `

--header 'Content-Type: application/json' `

--header 'Authorization: Bearer <access_token>' `

--header 'X-3E-InstanceId: ebm7ewi88k6qqse70zhqwg'

curl --location --request GET 'https://api.elite.com/3e/datainsights/odata/trs_Activity' `

--header 'Content-Type: application/json' `

--header 'Authorization: Bearer <access_token>' `

--header 'X-3E-InstanceId: ebm7ewi88k6qqse70zhqwg'

Note: It Is recommended that these commands are executed from PowerShell 7.3.6 or above. Please use curl.exe to force PowerShell to use curl instead of Invoke-WebRequest to avoid errors.