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 using the example below:
[https://[customerdomain].[realm].celonis.cloud/integration/ui/pools/{poolid}/data-configuration/data-jobs?jobId={jobid}](null)
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 :
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 that data job using the following RESTful API:
GET /integration/api/pools/{poolId}/jobs/{jobId}