Celonis Data API
The Data API from Celonis — 2 operation(s) for data.
The Data API from Celonis — 2 operation(s) for data.
openapi: 3.0.0
info:
title: OpenAPI Specification Agents - Conversation Data API
description: AI API to chat with Celonis Agents and run their tools.
x-audience: EX
version: v1.2.0
servers:
- url: https://30f873b4-88d4-49ba-b327-6f651d7b99e6.remockly.com
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: Data
paths:
/intelligence/api/knowledge-models/{km_id}/data:
get:
operationId: getKnowledgeModelDataResult
tags:
- Data
summary: Get a list of KM data
description: Data for a Knowledge Model
parameters:
- name: km_id
in: path
required: true
schema:
type: string
example: open-purchase-requisition.purchase-requisition-km
- $ref: '#/components/parameters/filtersParam'
- $ref: '#/components/parameters/fieldsOptionalParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
- $ref: '#/components/parameters/sortParamKm'
- $ref: '#/components/parameters/filterExprParam'
- $ref: '#/components/parameters/options'
- $ref: '#/components/parameters/kpisParam'
- $ref: '#/components/parameters/searchTerm'
- $ref: '#/components/parameters/searchPrecision'
- $ref: '#/components/parameters/searchField'
responses:
'200':
description: List of Knowledge Model data
content:
application/json:
schema:
$ref: '#/components/schemas/recordResultPageDTO'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
post:
tags:
- Data
summary: Get a list of KM data with advanced filtering
description: Query Data for a Knowledge Model that is combining different Records, this endpoint allows clients to easily include more complicated queries.
operationId: getKnowledgeModelQueryResultByUsingQueryInBody
parameters:
- name: km_id
in: path
required: true
style: simple
explode: false
schema:
type: string
example: open-purchase-requisition.purchase-requisition-km
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KmQueryDataRequest'
required: true
responses:
'200':
description: List of Knowledge Model data.
content:
application/json:
schema:
$ref: '#/components/schemas/recordResultPageDTO'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/intelligence/api/knowledge-models/{km_id}/records/{record_id}/data:
get:
operationId: getRecordDataResult
tags:
- Data
summary: Get a list of KM Record data
description: Data for a Record in the Knowledge Model.
parameters:
- name: km_id
in: path
required: true
schema:
type: string
example: open-purchase-requisition.purchase-requisition-km
- name: record_id
in: path
required: true
schema:
type: string
example: MATERIALS
- $ref: '#/components/parameters/filtersParam'
- $ref: '#/components/parameters/fieldsParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
- $ref: '#/components/parameters/sortParamRecord'
- $ref: '#/components/parameters/filterExprParam'
- $ref: '#/components/parameters/options'
- $ref: '#/components/parameters/searchTerm'
- $ref: '#/components/parameters/searchPrecision'
- $ref: '#/components/parameters/searchField'
responses:
'200':
description: List of Record data.
content:
application/json:
schema:
$ref: '#/components/schemas/recordResultPageDTO'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
post:
tags:
- Data
summary: Get a list of KM Record data with advanced filtering
description: Query Data for a Record in the Knowledge Model. This endpoint allows clients to easily include more complicated queries.
operationId: getRecordDataResultByUsingQueryInBody
parameters:
- name: km_id
in: path
required: true
style: simple
explode: false
schema:
type: string
example: open-purchase-requisition.purchase-requisition-km
- name: record_id
in: path
required: true
style: simple
explode: false
schema:
type: string
example: MATERIALS
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KmQueryRecordDataRequest'
required: true
responses:
'200':
description: List of Record data.
content:
application/json:
schema:
$ref: '#/components/schemas/recordResultPageDTO'
'400':
description: Bad Request.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
'401':
description: Unauthorized access.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/authErrorDTO'
'403':
description: Forbidden.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
'404':
description: The specified resource was not found.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
'429':
description: Too Many Requests.
headers:
X-RateLimit-Limit:
description: Request limit per hour.
schema:
type: integer
format: int32
X-RateLimit-Remaining:
description: The number of requests left for the time window.
schema:
type: integer
format: int32
X-RateLimit-Reset:
description: The UTC date/time at which the current rate limit window. resets.
schema:
type: string
format: date-time
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
'500':
description: Internal Server Error.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
'503':
description: Service Unavailable.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
components:
parameters:
searchField:
in: query
name: searchField
required: false
schema:
type: string
description: The specific field within the data structure that is targeted by the search.
kpisParam:
style: form
explode: false
in: query
name: kpis
required: false
schema:
type: array
items:
type: string
description: As many kpi ids if they exists in the knowledge model
example: AVG_EVENTS_PER_CASE,FILTERED_COUNT
sortParamRecord:
style: form
explode: false
in: query
name: sort
required: false
description: 'Defines the order in which results are returned (record-level GET).
The `sortParamRecord` query parameter must be a comma-separated list of record fields.
Any value used in `sortParamRecord` **must also be included** in the `fields` parameter.
If a value appears in `sortParamRecord` but is **not** included in `fields`, the API cannot evaluate it and sorting will not be applied correctly.
If a non-existing field is provided, the request will return an error.
Sort direction is specified using optional prefixes:
- `+` for ascending order (ASC)
- `-` for descending order (DESC)
- No prefix defaults to ascending order (ASC)
**Examples**
- `sortParamRecord=+field1` (sorting in ascending order by a record field)
- `sortParamRecord=-field2,field1` (sorting in descending order by a record field and in ascending order by another record field)'
schema:
type: array
items:
type: string
example: +field1,-field2,field3
sortParamKm:
style: form
explode: false
in: query
name: sort
required: false
description: 'Defines the order in which results are returned (Knowledge Model–level GET).
The `sortParamKm` query parameter must be a comma-separated list of record fields and/or KPIs.
Any value used in `sortParamKm` **must also be included** in the `fields` or `kpis` parameters.
If a value appears in `sortParamKm` but is **not** included in `fields` or `kpis`, the API cannot evaluate it and sorting will not be applied correctly.
If a non-existing field is provided, the request will return an error.
Sort direction is specified using optional prefixes:
- `+` for ascending order (ASC)
- `-` for descending order (DESC)
- No prefix defaults to ascending order (ASC)
**Examples**
- `sortParamKm=+record1_id.field1` (sorting in ascending order by a record field)
- `sortParamKm=-record1_id.field2,kpi1` (sorting in descending order by a record field and in ascending order by a KPI)
- `sortParamKm=record1_id.field1,-kpi2` (sorting in ascending order by a record field and in descending order by a KPI)
- `sortParamKm=-kpi1` (sorting in descending order by a KPI)'
schema:
type: array
items:
type: string
example: +record1_id.field1,-record1_id.field2,kpi1
pageParam:
in: query
name: page
required: false
schema:
type: integer
minimum: 0
default: 0
description: The page number of the result, starting by 0 (first page)
pageSizeParam:
in: query
name: pageSize
required: false
schema:
type: integer
minimum: 1
default: 50
description: The number of items returned in a page.
fieldsOptionalParam:
style: form
explode: false
in: query
name: fields
required: false
allowEmptyValue: false
schema:
type: array
items:
type: string
description: A predefined filter id
example: active,approval
filtersParam:
style: form
explode: false
in: query
name: filters
required: false
schema:
type: array
items:
type: string
description: A predefined filter id
example: active_incidents,cel_and_kpi
filterExprParam:
style: form
explode: true
in: query
name: filterExpr
required: false
schema:
type: array
items:
type: string
description: Dynamic filter expressions
example: active eq true and name not eq 'John Doe'
fieldsParam:
style: form
explode: false
in: query
name: fields
required: true
allowEmptyValue: false
schema:
type: array
items:
type: string
description: A predefined filter id
example: active,approval
searchPrecision:
in: query
name: searchPrecision
required: false
schema:
type: integer
minimum: 1
maximum: 100
description: The strictness of the fuzzy matching algorithm. A lower value will return less accurate matches (more 'fuzzy').
options:
style: form
explode: false
in: query
name: options
required: false
description: "Set different **options to customize the data results** for a query. Supported options \n* **Distinct**: Enable the unique data results for a query\n"
schema:
type: array
items:
type: string
example: distinct
searchTerm:
in: query
name: searchTerm
required: false
schema:
type: string
description: The term to search for. The search will attempt to find matches that are similar to this term.
schemas:
KmRecordFieldsProjection:
maxLength: 2048
minLength: 1
type: string
description: Projection of KM Record fields expressed as a comma separated list of Record Fields names to be used.
nullable: false
example: material_name,material_number,material_group
FiltersProjection:
type: object
properties:
kmFilterNames:
type: array
description: List of predefined Knowledge Model filter names to apply.
example:
- filter1
- filter2
- filter3
items:
type: string
filterExpr:
type: array
description: List of raw filter expressions (e.g., OData syntax).
example:
- active eq true and name ne 'John Doe'
items:
type: string
description: Defines filtering criteria for the Knowledge Model query.
SearchProjection:
type: object
properties:
term:
type: string
description: The search term or keyword.
example: tot_revenue
field:
type: string
description: Optional specific field to search within. If omitted, searches across all relevant fields.
example: revenue
precision:
maximum: 100
minimum: 0
type: integer
description: The precision level for the search (e.g., fuzzy matching tolerance).
format: int32
example: 10
description: Defines search criteria for full-text search or specific field search.
SortProjectionKm:
description: 'Defines the order in which results are returned (Knowledge Model–level query body).
The `sort` property must be a comma-separated list of record fields and/or KPIs.
Any value used in `sort` **must also be included** in the `fields` or `kpis` properties.
If a value appears in `sort` but is **not** included in `fields` or `kpis`, the API cannot evaluate it and sorting will not be applied correctly.
If a non-existing field is provided, the request will return an error.
Sort direction is specified using optional prefixes:
- `+` for ascending order (ASC)
- `-` for descending order (DESC)
- No prefix defaults to ascending order (ASC)
**Examples** (string value in `projection.sort`)
- `+record1_id.field1` (sorting in ascending order by a record field)
- `-record1_id.field2,kpi1` (sorting in descending order by a record field and in ascending order by a KPI)
- `record1_id.field1,-kpi2` (sorting in ascending order by a record field and in descending order by a KPI)
- `-kpi1` (sorting in descending order by a KPI)'
type: string
minLength: 2
maxLength: 2048
nullable: true
example: +record1_id.field1,-record1_id.field2,kpi1
recordResultPageDTO:
title: Record data result page
type: object
additionalProperties: false
properties:
content:
$ref: '#/components/schemas/recordItemDTO'
allOf:
- $ref: '#/components/schemas/resultPage'
resultPage:
title: Result page
type: object
properties:
page:
type: integer
description: Page
example: 0
pageSize:
type: integer
description: Page size, defined by pageSize parameter
example: 50
total:
type: integer
description: Total elements returned in the page
example: 1
sort:
type: array
items:
type: string
example: material_number
KmQueryDataRequest:
required:
- projection
type: object
properties:
projection:
$ref: '#/components/schemas/Projection'
description: The top-level request object for querying the Knowledge Model.
Projection:
type: object
properties:
fields:
$ref: '#/components/schemas/KmRecordFieldsProjection'
filters:
$ref: '#/components/schemas/FiltersProjection'
pagination:
$ref: '#/components/schemas/KmPaginationProjection'
sort:
$ref: '#/components/schemas/SortProjectionKm'
options:
$ref: '#/components/schemas/KmOptionsProjection'
kpis:
$ref: '#/components/schemas/KpisProjection'
search:
$ref: '#/components/schemas/SearchProjection'
description: Defines the projection criteria for the Knowledge Model query.
KmRecordDataRequestProjection:
required:
- fields
type: object
properties:
fields:
$ref: '#/components/schemas/KmRecordFieldsProjection'
filters:
$ref: '#/components/schemas/FiltersProjection'
pagination:
$ref: '#/components/schemas/KmPaginationProjection'
sort:
$ref: '#/components/schemas/SortProjectionRecord'
options:
$ref: '#/components/schemas/KmOptionsProjection'
search:
$ref: '#/components/schemas/SearchProjection'
description: Defines the parameters related to the query to be executed against the Knowledge Model Record.
recordItemDTO:
title: Record Item
type: object
properties:
headers:
type: array
items:
$ref: '#/components/schemas/recordItemHeaderDTO'
example:
- id: material_name
name: Material name
type: string
format: ''
unit: ''
aggregation: 'false'
filterable: 'true'
sortable: 'true'
- id: material_number
name: Material number
type: string
format: ''
unit: ''
aggregation: 'false'
filterable: 'true'
sortable: 'true'
- id: material_group
name: Material group
type: string
format: ''
unit: ''
aggregation: 'false'
filterable: 'true'
sortable: 'true'
data:
type: array
description: List of record item, compound with name and value
items:
additionalProperties: {}
example:
- material_name: PC Installation / Configuration
material_number: I-1000
material_group: Services
KmQueryRecordDataRequest:
required:
- projection
type: object
properties:
projection:
$ref: '#/components/schemas/KmRecordDataRequestProjection'
description: The top-level request records for querying the Knowledge Model.
KmPaginationProjection:
type: object
properties:
pageNumber:
minimum: 0
type: integer
description: Page number of the result, starting by 0 (first page).
format: int32
default: 0
pageSize:
minimum: 1
type: integer
description: Page size of the result, the number of items returned in a page.
format: int32
default: 50
description: Projection of pagination parameters to be used, expressed as a page number and a page size.
errorDTO:
title: Error
type: object
description: This [RFC7807] specification is to define common error formats for those applications that need one, so that they aren't required to define their own, or worse, tempted to redefine the semantics of existing HTTP status codes. This definition was copied from https://datatracker.ietf.org/doc/html/rfc7807
properties:
title:
type: string
description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4). This definition was copied from https://datatracker.ietf.org/doc/html/rfc7807
status:
type: integer
description: The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem. This definition was copied from https://datatracker.ietf.org/doc/html/rfc7807
detail:
type: string
description: The details of the Error
errorCode:
type: string
description: Unique Identifier of the Error
type:
type: string
description: A URI reference [RFC3986] that identifies the problem type. This definition was copied from https://datatracker.ietf.org/doc/html/rfc7807
KmOptionsProjection:
maxItems: 1
minItems: 0
type: array
description: Set different options to customize the data results for a projection.
nullable: true
items:
$ref: '#/components/schemas/KmOptionsValues'
recordItemHeaderDTO:
title: Record Item Header
type: object
properties:
id:
type: string
description: Field identity to use in field list param and filterExpression param
name:
type: string
description: Human understandable text
type:
type: string
enum:
- integer
- date
- time
- datetime
- timestamp
- float
- boolean
- string
description: Possible data types.
format:
type: string
description: Format expression
unit:
type: string
description: A complementary sign for format value view
aggregation:
type: boolean
default: false
description: Indicate if a field is a aggregation/calculated information(KPI).
filterable:
type: boolean
default: false
description: Indicate if the field could be filtered.
sortable:
type: boolean
default: false
description: Indicate if the field could be sorted.
SortProjectionRecord:
description: 'Defines the order in which results are returned (record-level query body).
The `sort` property must be a comma-separated list of record fields.
Any value used in `sort` **must also be included** in the `fields` property.
If a value appears in `sort` but is **not** included in `fields`, the API cannot evaluate it and sorting will not be applied correctly.
If a non-existing field is provided, the request will return an error.
Sort direction is specified using optional prefixes:
- `+` for ascending order (ASC)
- `-` for descending order (DESC)
- No prefix defaults to ascending order (ASC)
**Examples** (string value in `projection.sort`)
- `+field1` (sorting in ascending order by a record field)
- `-field2,field1` (sorting in descending order by a record field and in ascending order by another record field)'
type: string
minLength: 2
maxLength: 2048
nullable: true
example: +field1,-field2,field3
authErrorDTO:
title: Authentication Error
type: object
properties:
error:
type: string
KpisProjection:
type: array
description: List of KPIs.
items:
type: string
KmOptionsValues:
type: string
description: "Set different **options to customize the data results** for a query. Supported options \n* **Distinct**: Enable the unique data results for a query\n"
enum:
- distinct
responses:
NotFound:
description: The specified resource was not found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
ServiceUnavailable:
description: Service Unavailable.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
Forbidden:
description: Forbidden.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
Unauthorized:
description: Unauthorized access.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/authErrorDTO'
TooManyRequests:
description: Too Many Requests.
headers:
X-RateLimit-Limit:
description: Request limit per hour.
schema:
type: integer
format: int32
X-RateLimit-Remaining:
description: The number of requests left for the time window.
schema:
type: integer
format: int32
X-RateLimit-Reset:
description: The UTC date/time at which the current rate limit window resets.
schema:
type: string
format: date-time
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
InternalError:
description: Internal Server Error.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
BadRequest:
description: Bad Request.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/errorDTO'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
ApiKeyAuth:
type: apiKey
in: header
name: AppKey