Skip to main content

Celonis Product Documentation

Executing data jobs using a RESTful API

Using RESTful APIs, you can both execute a data job and query the status of existing data jobs. For both requests you need the data pool ID (poolId) and data job ID (jobId) . These can be retrieved from the URL of the respective data jobs, with an example displayed below:

https://[customerdomain].[realm].celonis.cloud/integration/ui/pools/{poolid}/data-configuration/data-jobs?jobId={jobid}

Security

The following bearer and AppKey security settings are available:

Bearer
  • Type: OAuth access token or apiKey.

  • Name: OAuth access token or User-Specific API Key.

  • In: HEADER.

AppKey
  • Type: apiKey

  • Name: Team-Specific application key

  • In: HEADER

Using an OAuth client

If you're using an OAuth client, the following is needed:

  • The scope 'integration.data-pools' must be configured.

  • The client must have both viewing and managing the data pool permissions enabled.

    To set data pool permissions from your data pool overview page, click Options - Permissions:

    data_pool_permissions.png
Executing data jobs

To execute a data job with a RESTful API, you also need to enter the extraction mode:

  • FULL: All tables are extracted.

  • DELTA: Only tables that have changed since the last extraction are included in the task.

POST /integration/api/v2/data-pools/{poolId}/data-jobs/{jobId}/execute?mode={mode}

The following is an example of how this API can be used in Python:

import requests

tenant = 'xyz' # the name of your team (your subdomain)
realm = 'xyz' # e.g. eu-1, us-1, eu-2
api_key = 'xyz' # the API key
pool_id = 'xyz' # the Data Pool ID (see above)
data_job_id = 'xyz' # the Data Job ID (see above)url = "https://{}.{}.celonis.cloud/integration/api/v2/data-pools/{}/data-jobs/{}/execute?mode={}".format(tenant, realm, pool_id, data_job_id, data_job_mode)
data_job_mode = 'DELTA' # the mode of the Data Job (see above)

url = "https://{}.{}.celonis.cloud/integration/api/v2/data-pools/{}/data-jobs/{}/execute?mode={}".format(tenant, realm, pool_id, data_job_id, data_job_mode)

requests.post(url, headers={'authorization': "Bearer {}".format(api_key)})
Querying the status of a data job

After executing a data job, you can query the status of a data job using the following RESTful API:

GET /integration/api/pools/{poolId}/jobs/{jobId}