{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Configure a Reporting API request","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":"configure-a-reporting-api-request","__idx":0},"children":["Configure a Reporting API request"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configure-an-extractor-using-a-template","__idx":1},"children":["Configure an extractor using a template"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Jumpstart your configuration by creating a custom extractor by uploading the extractor template in Celonis that you can ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/assets/template_for_reporting_api_extractor.861cd1e2178c3e7b6e504ba92cbc162d3cff603b5c40408251f3d7ffa0a5f1d6.e31bf237.json","title":"Template","download":""},"children":["download here"]},". If you do not want to use the extractor template in Celonis and prefer to manully configure your extractor, proceed to the next section."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["New custom REST API extractor"]}," window, select the \"Import From File\" option and upload the template."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/new_rest_api_extractor.f40825b35f96a234bec3a77a8405b0ed231a6cef3fd07fd186f1aee909360db3.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After the extractor is created, you will find that the Endpoint has been configured for you, including \"elements\", \"facets\", and an example \"hierarchy\" for the Processes facet."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/extractor_endpoint_menu.d017c32a1e8b30beefc18d05460fd9a4170725aabaf15c03cd0498bc18d3f54f.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To create the connection with your environment, go to the “Data connection” tab and fill in the empty fields using the values listed below."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/new_data_connection.570fa9658df4c4abf382994c9c76fe530ac73b387ae1f9da835d01537114046b.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Field Name"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Details"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Expected Value"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Name"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The name of your connection."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not prefilled, free-text value."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API URL"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["URL that identifies the API provider."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enter the URL for your specific region:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["https://api-reporting.symbio.cloud/ - Europe region (default)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["https://api-reporting.us-1.symbio.cloud/ - U.S. region"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["https://api-reporting.jp-1.symbio.cloud/ - Japan region"]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tenant ID"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This is a unique ID to identify your data location. Currently it can only be found by opening either the Navigator or Admin App and checking the URL of the page after it has fully loaded."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not prefilled, you can find it via:",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"the first GUID of the Navigator URL: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://navigator.symbio.cloud/celonis/c592ade4-4a5a-4804-a6e0-267f6a164fc6"]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["or"]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"the “tenant” section of the Admin App URL: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://admin.symbio.cloud/?company=celonis&tenant=c592ade4-4a5a-4804-a6e0-267f6a164fc6"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API Key"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The API key can be generated using the Admin App within the “Reporting” section."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not prefilled, API key format."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once your connection is configured, you will need to wait for the fullfetch cycle to run overnight before any data is shown or the nested tables are displayed. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#after-the-connection-is-created"},"children":["After the connection is created"]}," below for more inforation."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information on setting up this connection, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.celonis.com/en/extractor-builder.html#UUID-e3ab34e4-c36b-2d37-dc2d-89deaf0b6591_section-idm4558546643555234170238912261"},"children":["Creating a custom REST API extractor / using a pre-built template"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configure-an-extractor-using-an-api-connection","__idx":2},"children":["Configure an extractor using an API connection"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This section provides an example of how a custom connection would look when using the Reporting API."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In Data integration, the user can go to the Extractor builder and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.celonis.com/en/extractor-builder.html#UUID-e3ab34e4-c36b-2d37-dc2d-89deaf0b6591_section-idm4558546643555234170238912261"},"children":["build their own extractor"]}," based on an API. Here, we will use our API to set up the connection."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To use the API connection, your configuration should look like this:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Select “API Key Authentication” as the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authentication Method"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/authentication.ce83e9743e9797e92f8554fa66928d0769f96d68dae2c2a3427bf211ea0c6c60.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/variables.5ae9f6fa8ac77552ad050e025b34a8805f8095b0d6b45c2060bb489443d43fdc.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API URL"]}," field, add the applicable value from the table below based on your region."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"available-api-domains","__idx":3},"children":["Available API Domains"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The server region of the reporting API will match the region of your Admin App URL."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Domain Region"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Value"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Description"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Europe"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["https://api-reporting.symbio.cloud/"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["For customers deployed to the Europe region."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["U.S."]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["https://api-reporting.us-1.symbio.cloud/"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["For customers deployed to the US region."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Japan"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["https://api-reporting.jp-1.symbio.cloud/"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["For customers deployed to the Japan region."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/data-connection.b020a97becae606fc447e4cb60f642fed9db7d410363e3fd48a37a946aad4447.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pagination Method"]}," section, enter \"skip\" as Offset Parameter and \"take\" as Limit Parameter. Then set a default limit. Note that the maximum limit is 100, which will be applied if no limit is set."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/pagination.36744de3359d5a818c6c20424624a55f5cbe15ec27d779a2adc85d29943490a1.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"after-the-connection-is-created","__idx":4},"children":["After the connection is created"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After creating a successful connection, you will initially not see any data and you will not find all the nested tables. Since the API is based on the fullfetch cycle, you will need to wait overnight before you start to see data coming through. Make sure to check the extractor after this cycle has run and click the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Generate Response"]}," button to see all nested tables."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/generate_response_button.e60241cab395d08b68ca3729de60cb7d5c3c2cf633f14a434d1f34c3b8523acb.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In some cases, you might see that your extraction failed even though your extraction connection test was successful. You might see a warning in your logs that looks like this:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/failed_extraction.a4144c273e04b1f0bbcc0bab70d541e186fc5779fc98756d4c94d6d2cdd2e8c0.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To resolve this issue, add more time to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Socket Timeline"]}," field within your extraction configuration. This should allow you to extract the data."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/socket_timeout.acb58cd197194bc6cc80ba0c23c5dfaa1004ecb713e2204681b018de3b6426e5.ae2b079c.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example-data-transformation","__idx":5},"children":["Example Data transformation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With this data connection, you can then create transformation to make usable data tables. Here is an example transformation script:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sql","header":{"controls":{"copy":{}}},"source":"CREATE OR REPLACE VIEW Element AS\nSELECT\n   -- Unique ID for the Element\n   CASE\n       WHEN T.source_table = 'elements' THEN T.original_id                  -- For non-versionable elements\n       WHEN T.source_table = 'elements$versions' THEN T.original_version_id -- For versionable elements\n       WHEN T.source_table IN ('elements$content', 'elements$versions$content') THEN T.original_id -- For content items (their own 'id' is unique GUID)\n   END AS _id,\n   T.source_table, -- Helps identify where the record originated ('elements', 'elements$versions', 'elements$content', 'elements$versions$content')\n   T.original_id, -- Original 'id' from the source table (PK for elements and content)\n   T.original_version_id, -- Original 'versionId' from elements$versions (PK for versions)\n   T.parent_fk_id, -- Original FK from content tables to their parent element/version\n\n   T.supportsVariants,\n   T.supportsVersions, -- FALSE for content objects\n   T.containerPermaLink,\n   T.facetName,\n   T.permaLink,\n   T.type,\n   T.variantId,\n   T.creationId,\n\n   -- Common Attributes (renamed for consistency)\n   T.attributes_changedOn,\n   T.attributes_createdOn,\n   T.attributes_gotoUrl,\n   T.attributes_name,\n   T.attributes_state1,\n   T.attributes_description,\n\n   -- Attributes specific to elements$versions (will be NULL for non-versioned elements and all content)\n   T.attributes_isReleased,\n   T.attributes_isLastInProcessOrReleased,\n   T.attributes_majorVersion,\n   T.attributes_minorVersion,\n   T.attributes_reviewDate,\n   T.attributes_validFrom,\n   T.attributes_validUntil,\n   T.attributes_version,\n   T.attributes_reasonForRevision,\n   T.attributes_imageUrl,\n   T.attributes_stereotype,\n   T.attributes_id_from_version, -- The 'id' attribute from versions\n   T.stereotype -- The 'stereotype' column from elements$versions\n\nFROM (\n   -- Data from 'elements' table (non-versionable parent elements)\n   SELECT\n       'elements' AS source_table,\n       e.id AS original_id,\n       NULL AS original_version_id,\n       NULL AS parent_fk_id,\n       e.supportsVariants,\n       e.supportsVersions,\n       e.containerPermaLink,\n       e.facetName,\n       e.permaLink,\n       e.type,\n       e.variantId,\n       e.creationId,\n       e.\"attributes$changedOn$127\" AS attributes_changedOn,\n       e.\"attributes$createdOn$127\" AS attributes_createdOn,\n       e.\"attributes$gotoUrl$1033\" AS attributes_gotoUrl,\n       e.\"attributes$name$1033\" AS attributes_name,\n       e.\"attributes$state1$127\" AS attributes_state1,\n       e.\"attributes$description$1033\" AS attributes_description,\n       NULL AS attributes_isReleased,\n       NULL AS attributes_isLastInProcessOrReleased,\n       NULL AS attributes_majorVersion,\n       NULL AS attributes_minorVersion,\n       NULL AS attributes_reviewDate,\n       NULL AS attributes_validFrom,\n       NULL AS attributes_validUntil,\n       NULL AS attributes_version,\n       NULL AS attributes_reasonForRevision,\n       NULL AS attributes_imageUrl,\n       NULL AS attributes_stereotype,\n       NULL AS attributes_id_from_version,\n       NULL AS stereotype\n   FROM\n       elements AS e\n   WHERE\n       e.supportsVersions IS FALSE -- Only non-versionable top-level elements\n\n   UNION ALL\n\n   -- Data from 'elements$versions' table (versionable parent elements - specific versions)\n   SELECT\n       'elements$versions' AS source_table,\n       ev.id AS original_id, -- This is the FK to elements.id, but versionId is the primary identifier for this record\n       ev.versionId AS original_version_id,\n       NULL AS parent_fk_id,\n       NULL as supportsVariants,\n       NULL as supportsVersions,\n       ev.containerPermaLink,\n       ev.facetName,\n       ev.permaLink,\n       ev.type,\n       ev.variantId,\n       ev.creationId,\n       ev.\"attributes$changedOn$127\" AS attributes_changedOn,\n       ev.\"attributes$createdOn$127\" AS attributes_createdOn,\n       ev.\"attributes$gotoUrl$1033\" AS attributes_gotoUrl,\n       ev.\"attributes$name$1033\" AS attributes_name,\n       ev.\"attributes$state1$127\" AS attributes_state1,\n       ev.\"attributes$description$1033\" AS attributes_description,\n       ev.\"attributes$isReleased$127\" AS attributes_isReleased,\n       ev.\"attributes$isLastInProcessOrReleased$127\" AS attributes_isLastInProcessOrReleased,\n       ev.\"attributes$majorVersion$127\" AS attributes_majorVersion,\n       ev.\"attributes$minorVersion$127\" AS attributes_minorVersion,\n       ev.\"attributes$reviewDate$127\" AS attributes_reviewDate,\n       ev.\"attributes$validFrom$127\" AS attributes_validFrom,\n       ev.\"attributes$validUntil$127\" AS attributes_validUntil,\n       ev.\"attributes$version$127\" AS attributes_version,\n       ev.\"attributes$reasonForRevision$127\" AS attributes_reasonForRevision,\n       ev.\"attributes$imageUrl$127\" AS attributes_imageUrl,\n       ev.\"attributes$stereotype$127\" AS attributes_stereotype,\n       ev.\"attributes$id$127\" AS attributes_id_from_version,\n       ev.stereotype\n   FROM\n       \"elements$versions\" AS ev\n   WHERE\n       ev.versionId IS NOT NULL -- Only valid versions\n...\n\n) AS T;\n\nCREATE OR REPLACE VIEW Content AS\nSELECT\n   -- Parent Element's _id (from 'elements' or 'elements$versions' in the unified Element view)\n   (SELECT _id FROM Element WHERE source_table = 'elements' AND original_id = ec.elements_id) AS parent__id,\n   -- Content Element's _id (from 'elements$content' in the unified Element view)\n   (SELECT _id FROM Element WHERE source_table = 'elements$content' AND original_id = ec.id) AS content__id\nFROM\n   \"elements$content\" AS ec\nWHERE\n   ec.elements_id IS NOT NULL -- Only include if it has a valid parent link\n\nUNION ALL\n\nSELECT\n   -- Parent Element's _id (from 'elements$versions' in the unified Element view)\n   (SELECT _id FROM Element WHERE source_table = 'elements$versions' AND original_version_id = evc.\"elements$versions_versionId\") AS parent__id,\n   -- Content Element's _id (from 'elements$versions$content' in the unified Element view)\n   (SELECT _id FROM Element WHERE source_table = 'elements$versions$content' AND original_id = evc.id) AS content__id\nFROM\n   \"elements$versions$content\" AS evc\nWHERE\n   evc.\"elements$versions_versionId\" IS NOT NULL; -- Only include if it has a valid parent link\n\n","lang":"sql"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example-report-building","__idx":6},"children":["Example Report building"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With the connection and transformation set up, you then are able to make use of the data within your Analytical tools. Here is an example of how it could look like using Celonis Views."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/example-report.5d1acde0296ddcff45d770ad654720d2f7a40772d63835dab97591bc349bd649.ae2b079c.png","alt":""},"children":[]}]}]},"headings":[{"value":"Configure a Reporting API request","id":"configure-a-reporting-api-request","depth":1},{"value":"Configure an extractor using a template","id":"configure-an-extractor-using-a-template","depth":2},{"value":"Configure an extractor using an API connection","id":"configure-an-extractor-using-an-api-connection","depth":2},{"value":"Available API Domains","id":"available-api-domains","depth":3},{"value":"After the connection is created","id":"after-the-connection-is-created","depth":2},{"value":"Example Data transformation","id":"example-data-transformation","depth":2},{"value":"Example Report building","id":"example-report-building","depth":2}],"frontmatter":{"seo":{"title":"Configure a Reporting API request"}},"lastModified":"2026-04-14T22:25:07.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/cpm/reporting/configure","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}