Skip to main content

Celonis Product Documentation

Process data model API

The process data model API allows you to completely or partially reload your data models, ensuring that the latest data from your source system is available. This is a RESTful API that allows you run GET requests to retrieve information and POST requests to trigger the data model loads.

To use this API, you need both the data pool ID and data model ID, both of which can be found from your URL when viewing that area of the Celonis Platform.

Data pool ID

Your data pool ID will be in the following format: 
Data model ID

Your data model ID will be in the following format:

To connect to and use the process data model API, you have the following authentication methods available:

  • OAuth client (recommended): Create an OAuth client by clicking Admin & Settings and selecting Applications.

    The OAuth client needs to have the scope ‘’ to use all of the APIs above. In addition, the client needs to be granted Edit permissions on the corresponding data pool.

  • Application key: Create an application key in Admin & Settings as a team admin. The application key requires Edit permissions on the corresponding data pool. For more information, see: Application keys.

  • API key: Using API keys is an effective and secure method of communicating between your and external systems, such as an identity provider. They are created within an individual user profile in your Celonis Platform, with the key’s permissions mirroring those of the user who created them. For security reasons, an API key is only displayed at the time it is created. Therefore you must create a new key if you no longer have access to any you create. For more information, see: API keys.

Using a RESTful API, you can trigger a complete data model load (complete load) with this POST request:

POST /integration/api/v1/data-pools/{poolId}/data-models/{dataModelId}/load

If you only want to update a subset of tables, you can also use a partial reload. This does a complete reload of the specified tables and a reload from cache for the rest.

For this you need to query the table list first:

GET /integration/api/v1/data-pools/{poolId}/data-models/{dataModelId}/tables

This will return the following response parameters:

  • id: The ID of the table configuration in the data model (required for the partial data model reload).

  • dataModelId: The ID of the data model.

  • dataSourceId: The ID of the data connection if applicable.

  • name: The name of the table.

  • alias: The alias of the table.

  • aliasOrName: The alias if it is defined or the name of the table.

After you have noted the IDs of the table which you would like to sync, you can execute the following:

POST /integration/api/v1/data-pools/{poolId}/data-models/{dataModelId}/load/partial-sync

In the body of this request, you need to specify the tables as a list of IDs:

["table_id1", "table_id2"]

In order to query information about the last data model load, the following endpoint can be used:

GET /integration/api/v1/data-pools/{poolId}/data-models/{dataModelId}/last-load

This is an example how this API can be used in Python:

import requests

realm = 'xyz' # e.g. eu-1, us-1, eu-2
tenant = 'xyz' # the name of your team (your subdomain)
api_key = 'xyz' # the API key
pool_id = 'xyz' # the Data Pool ID (see above)
data_model_id = 'xyz' # the Data Model ID (see above)

url = "https://{}.{}{}/data-models/{}/load".format(tenant, realm, pool_id, data_model_id), headers={'authorization': "Bearer {}".format(api_key)})