Celonis Schema API

The Schema API from Celonis — 6 operation(s) for schema.

OpenAPI Specification

celonis-schema-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: OpenAPI Specification Agents - Conversation Schema 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: Schema
paths:
  /intelligence/api/knowledge-models:
    get:
      operationId: getKnowledgeModel
      summary: Get a list of KMs
      tags:
      - Schema
      description: List of Knowledge Models defined in an EMS team
      parameters:
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/singleSortParam'
      responses:
        '200':
          description: List of Knowledge Model ids and names
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/knowledgeModelResultPage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /intelligence/api/knowledge-models/{km_id}:
    get:
      operationId: getKnowledgeModelDetails
      summary: Get the top-level KM details
      description: Knowledge Model defined in an EMS team
      tags:
      - Schema
      parameters:
      - name: km_id
        in: path
        required: true
        schema:
          type: string
          example: open-purchase-requisition.purchase-requisition-km
      responses:
        '200':
          description: Top-level Knowledge Model details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/knowledgeModelDetailedDTO'
        '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}/filters:
    get:
      operationId: getFilters
      tags:
      - Schema
      summary: Get a list of KM Filters
      description: List of Filters for the Knowledge Model
      parameters:
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/singleSortParam'
      - name: km_id
        in: path
        required: true
        schema:
          type: string
          example: open-purchase-requisition.purchase-requisition-kms
      responses:
        '200':
          description: List of Filter ids and names
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/filterResultPage'
        '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:
    get:
      operationId: getRecords
      tags:
      - Schema
      summary: Get a list of KM Records schema
      description: List of Records schema
      parameters:
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/singleSortParam'
      - name: km_id
        in: path
        required: true
        schema:
          type: string
          example: open-purchase-requisition.purchase-requisition-km
      responses:
        '200':
          description: List of Record ids and names
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/recordSchemaResultPage'
        '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}:
    get:
      operationId: getRecordDetails
      tags:
      - Schema
      summary: Get the top-level KM Record Schema details
      description: Top-level Record Schema details
      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/singleSortParam'
      responses:
        '200':
          description: Top-level Record Schema details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/recordDTO'
        '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}/kpis:
    get:
      operationId: getKpis
      tags:
      - Schema
      summary: Get a list of KM KPI's schema
      description: List of KPI's schema.
      parameters:
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/singleSortParam'
      - name: km_id
        in: path
        required: true
        schema:
          type: string
          example: open-purchase-requisition.purchase-requisition-km
      responses:
        '200':
          description: List of KPI's.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/kpiSchemaResultPage'
        '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'
components:
  schemas:
    knowledgeModelSimplifiedDTO:
      title: Knowledge Model
      description: Knowledge Model data's structure
      type: object
      properties:
        published:
          type: string
          description: Latest published date
          example: '2023-04-19 11:29:45'
      allOf:
      - $ref: '#/components/schemas/knowledgeModelIdDTO'
    schemaResultPage:
      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: string
          description: Field used to apply sorting to the requested data, + or no symbol means ASC, - means DESC
          example: +id
    knowledgeModelDetailedDTO:
      title: Knowledge Model
      description: Knowledge Model data's structure
      type: object
      properties:
        extendedKMId:
          type: string
          description: Knowledge model used as reference, KM base.
          example: open-purchase-requisition.purchase-requisition-km-base
      allOf:
      - $ref: '#/components/schemas/knowledgeModelIdDTO'
    filterDTO:
      title: Filter
      description: Filter to apply in a KM
      type: object
      properties:
        id:
          type: string
          description: Filter's Unique identifier
          example: 24M_FILTER
        name:
          type: string
          description: Human understandable Filter display name
          example: 24 Months
        description:
          type: string
          description: Human understandable Filter description
          example: Materials we purchased over the past 24 months.
    knowledgeModelResultPage:
      title: KnowledgeModel result page
      type: object
      additionalProperties: false
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/knowledgeModelSimplifiedDTO'
      allOf:
      - $ref: '#/components/schemas/schemaResultPage'
    recordIdDTO:
      title: Record Type Identifier
      description: Record Type's id and name
      type: object
      properties:
        id:
          type: string
          description: Record's Unique identifier
          example: MATERIALS
        name:
          type: string
          description: Record display name, a human understandable name
          example: Materials
        description:
          type: string
          description: Record description
          example: Materials that have been purchased.
        shortDisplayName:
          type: string
          description: Record short display name
          example: Materials
        internalNote:
          type: string
          description: Record internal note
          example: Materials
    recordFieldDTO:
      title: Record Type Field
      description: Fields for a Record
      type: object
      properties:
        id:
          type: string
          example: payment_amount
          description: Amount pending to pay
        name:
          type: string
          example: Amount in euros pending to pay
          description: human understandable name
        description:
          type: string
          description: Record field description
          example: Amount pending to pay
        shortDisplayName:
          type: string
          description: Record short display name
          example: Amount
        internalNote:
          type: string
          description: Record internal note
          example: Amount of the record
        type:
          type: string
          enum:
          - string
          - date
          - integer
          - boolean
          - number
          - datetime
          - timestamp
          - float
        format:
          type: string
          example: '#.###'
          description: Format to be applied
        unit:
          type: string
          example: euros
          description: Unit added to field value
    recordDTO:
      title: Record Type
      description: Record represents a concept inside a Knowledge Model
      type: object
      properties:
        fields:
          type: array
          items:
            $ref: '#/components/schemas/recordFieldDTO'
          example:
          - id: material_name
            name: Material Name
            description: Materials name that have been purchased.
            shortDisplayName: Materials
            internalNote: Materials
            type: string
            format: ''
            unit: ''
          - id: material_number
            name: Material Number
            description: Materials number that have been purchased.
            shortDisplayName: Materials
            internalNote: Materials
            type: string
            format: ''
            unit: ''
          - id: material_group
            name: Material Group
            description: Materials group that have been purchased.
            shortDisplayName: Materials
            internalNote: Materials
            type: string
            format: ''
            unit: ''
      allOf:
      - $ref: '#/components/schemas/recordIdDTO'
    recordSchemaResultPage:
      title: Record schema result page
      type: object
      additionalProperties: false
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/recordIdDTO'
      allOf:
      - $ref: '#/components/schemas/schemaResultPage'
    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
    knowledgeModelIdDTO:
      title: Knowledge Model Identifier
      description: Knowledge Model id and name
      type: object
      properties:
        id:
          type: string
          description: Unique Identifier of Knowledge Model
          example: open-purchase-requisition.purchase-requisition-km
        name:
          type: string
          description: Human understandable text
          example: Purchase Requisition KM
    filterResultPage:
      title: Filter schema result page
      type: object
      additionalProperties: false
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/filterDTO'
      allOf:
      - $ref: '#/components/schemas/schemaResultPage'
    kpiSchemaResultPage:
      title: KPI schema result page
      type: object
      additionalProperties: false
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/kpiDTO'
      allOf:
      - $ref: '#/components/schemas/schemaResultPage'
    authErrorDTO:
      title: Authentication Error
      type: object
      properties:
        error:
          type: string
    kpiDTO:
      title: KPI asset definition
      description: KPI structure within the knowledge model
      type: object
      properties:
        id:
          type: string
          description: KPI's Unique identifier
          example: AVG_EVENTS_PER_CASE
        name:
          type: string
          description: KPI's display name, a human understandable name
          example: Average events per case
        description:
          type: string
          description: KPI's description
          example: An average events per case
        format:
          type: string
          example: '#.###'
          description: Format to be applied
        unit:
          type: string
          example: euros
          description: Unit added to field value
        direction:
          type: string
          example: Up, Down, None
          description: Desired trend direction for the KPI progress
        target:
          type: string
          example: any value
          description: Default KPI target (Optional)
        parameters:
          type: array
          description: KPI's List of parameters
          items:
            $ref: '#/components/schemas/kpiParameterItemDTO'
            example:
            - id: parameter_1
              name: My First Parameter
              value: '1'
            - id: parameter_2
              name: My Second Parameter
              value: a
            - id: parameter_3
              name: My Third Parameter
              value: '5'
    kpiParameterItemDTO:
      title: Parameter defined for a Knowledge Model KPI
      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
        value:
          type: string
          description: Initial value for the parameter.
  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'
  parameters:
    singleSortParam:
      style: form
      explode: false
      in: query
      name: sort
      required: false
      description: Defines the strategy to proceed for case insensitive sorting. It must be just one field, and it should start with "+" to apply ASC order or "-" to apply DESC order. Non prefix will sort as ASC. Non existing field at the header will throw an error
      schema:
        type: string
        example:
        - -field1
    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.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    ApiKeyAuth:
      type: apiKey
      in: header
      name: AppKey