{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Executing data jobs using a RESTful API","description":"API documentation for Celonis APIs.","siteUrl":"https://developer.celonis.com/","keywords":"celonis developer portal, celonis apis, celonis api reference docs","lang":"en-US","llmstxt":{"hide":false,"description":"Celonis API documentation","sections":[{"title":"API Docs","description":"Available Celonis API Docs","includeFiles":["**/*.md"],"excludeFiles":[]},{"title":"API Specs","description":"All Celonis API specifications","includeFiles":["**/openapi.yaml"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"executing-data-jobs-using-a-restful-api","__idx":0},"children":["Executing data jobs using a RESTful API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"[https://[customerdomain].[realm].celonis.cloud/integration/ui/pools/{poolid}/data-configuration/data-jobs?jobId={jobid}](null)\n\n"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"security","__idx":1},"children":["Security"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following bearer and AppKey security settings are available:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"bearer","__idx":2},"children":["Bearer"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Type"]},": OAuth access token or apiKey."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Name"]},": OAuth access token or User-Specific API Key."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["In"]},": HEADER."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"appkey","__idx":3},"children":["AppKey"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Type"]},": apiKey"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Name"]},": Team-Specific application key"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["In"]},": HEADER"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"using-an-oauth-client","__idx":4},"children":["Using an OAuth client"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you're using an OAuth client, the following is needed:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The scope \"integration.data-pools\" must be configured."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The client must have both viewing and managing the data pool permissions enabled."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To set data pool permissions from your data pool overview page, click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Options > Permissions"]},":"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/select-permissions.94a05e94a78f2e464ba0e46a2930108e7712374dd86a3e68381a0ec0e97f2684.1df0a4ac.png","alt":"Screenshot showing the options menu for a data pool with the Permissions selection hightlighted."},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"executing-data-jobs","__idx":5},"children":["Executing data jobs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To execute a data job with a RESTful API, you also need to enter the extraction mode:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FULL"]},": All tables are extracted."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DELTA"]},": Only tables that have changed since the last extraction are included in the task."]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"POST /integration/api/v2/data-pools/{poolId}/data-jobs/{jobId}/execute?mode={mode}\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following is an example of how this API can be used in Python:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"`import requests` \\\n \\\n`tenant = 'xyz' # the name of your team (your subdomain)` \\\n`realm = 'xyz' # e.g. eu-1, us-1, eu-2` \\\n`api_key = 'xyz' # the API key` \\\n`pool_id = 'xyz' # the Data Pool ID (see above)` \\\n`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)` \\\n`data_job_mode = 'DELTA' # the mode of the Data Job (see above)` \\\n \\\n`url = \"https://{}.{}.celonis.cloud/integration/api/v2/data-pools/{}/data-jobs/{}/execute?mode={}\".format(tenant, realm, pool_id, data_job_id, data_job_mode)` \\\n \\\n`requests.post(url, headers={'authorization': \"Bearer {}\".format(api_key)})`\n"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"querying-the-status-of-a-data-job","__idx":6},"children":["Querying the status of a data job"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After executing a data job, you can query the status of that data job using the following RESTful API:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"GET /integration/api/pools/{poolId}/jobs/{jobId}\n"},"children":[]}]},"headings":[{"value":"Executing data jobs using a RESTful API","id":"executing-data-jobs-using-a-restful-api","depth":1},{"value":"Security","id":"security","depth":2},{"value":"Bearer","id":"bearer","depth":3},{"value":"AppKey","id":"appkey","depth":3},{"value":"Using an OAuth client","id":"using-an-oauth-client","depth":2},{"value":"Executing data jobs","id":"executing-data-jobs","depth":2},{"value":"Querying the status of a data job","id":"querying-the-status-of-a-data-job","depth":2}],"frontmatter":{"seo":{"title":"Executing data jobs using a RESTful API"}},"lastModified":"2026-06-05T20:49:37.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/celonis-apis/data-job-execution-api","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}