Flowable Process Engine API

The Flowable Process Engine API is the primary programmatic interface for interacting with Flowable. From a configured ProcessEngine, applications obtain a set of services that cover the full BPM lifecycle: RepositoryService for deploying and managing process definitions, RuntimeService for starting and signaling process instances, TaskService for human task assignment and completion, IdentityService for users and groups, HistoryService for audit and reporting queries, ManagementService for jobs and engine metadata, FormService for start and task forms, and DynamicBpmnService for runtime modifications. The API supports both fluent typesafe queries and native SQL queries.

OpenAPI Specification

flowable-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Flowable REST API
  version: "1.0.0"
  description: >-
    Minimal OpenAPI description of the Flowable REST API, which exposes the
    Flowable Process Engine over HTTP for managing BPMN deployments, process
    definitions, process instances, tasks, and CMMN cases.
  x-generated-from: https://www.flowable.com/open-source/docs/bpmn/ch14-REST
  x-generated-by: claude-crawl-2026-05-08
servers:
  - url: https://flowable.example.com/flowable-rest/service
    description: Default Flowable REST service base
tags:
  - name: Deployments
  - name: ProcessDefinitions
  - name: Models
  - name: ProcessInstances
  - name: Tasks
  - name: CMMN
paths:
  /repository/deployments:
    get:
      tags: [Deployments]
      summary: List deployments
      operationId: listDeployments
      responses:
        "200":
          description: A list of deployments
          content:
            application/json:
              schema:
                type: object
    post:
      tags: [Deployments]
      summary: Create a deployment
      operationId: createDeployment
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                type: object
  /repository/deployments/{deploymentId}:
    parameters:
      - in: path
        name: deploymentId
        required: true
        schema:
          type: string
    get:
      tags: [Deployments]
      summary: Get a deployment
      operationId: getDeployment
      responses:
        "200":
          description: Deployment
          content:
            application/json:
              schema:
                type: object
    delete:
      tags: [Deployments]
      summary: Delete a deployment
      operationId: deleteDeployment
      responses:
        "204":
          description: Deleted
  /repository/deployments/{deploymentId}/resources:
    get:
      tags: [Deployments]
      summary: List deployment resources
      operationId: listDeploymentResources
      parameters:
        - in: path
          name: deploymentId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Resources
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
  /repository/process-definitions:
    get:
      tags: [ProcessDefinitions]
      summary: List process definitions
      operationId: listProcessDefinitions
      responses:
        "200":
          description: Process definitions
          content:
            application/json:
              schema:
                type: object
  /repository/process-definitions/{processDefinitionId}:
    parameters:
      - in: path
        name: processDefinitionId
        required: true
        schema:
          type: string
    get:
      tags: [ProcessDefinitions]
      summary: Get a process definition
      operationId: getProcessDefinition
      responses:
        "200":
          description: Process definition
          content:
            application/json:
              schema:
                type: object
    put:
      tags: [ProcessDefinitions]
      summary: Update process definition (e.g. category, suspend/activate)
      operationId: updateProcessDefinition
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          description: Updated
          content:
            application/json:
              schema:
                type: object
  /repository/models:
    get:
      tags: [Models]
      summary: List models
      operationId: listModels
      responses:
        "200":
          description: Models
          content:
            application/json:
              schema:
                type: object
    post:
      tags: [Models]
      summary: Create a model
      operationId: createModel
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                type: object
  /runtime/process-instances:
    get:
      tags: [ProcessInstances]
      summary: List process instances
      operationId: listProcessInstances
      responses:
        "200":
          description: Process instances
          content:
            application/json:
              schema:
                type: object
    post:
      tags: [ProcessInstances]
      summary: Start a process instance
      operationId: startProcessInstance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        "201":
          description: Started
          content:
            application/json:
              schema:
                type: object
  /runtime/tasks:
    get:
      tags: [Tasks]
      summary: List tasks
      operationId: listTasks
      responses:
        "200":
          description: Tasks
          content:
            application/json:
              schema:
                type: object
  /runtime/tasks/{taskId}:
    parameters:
      - in: path
        name: taskId
        required: true
        schema:
          type: string
    get:
      tags: [Tasks]
      summary: Get a task
      operationId: getTask
      responses:
        "200":
          description: Task
          content:
            application/json:
              schema:
                type: object
    post:
      tags: [Tasks]
      summary: Perform a task action (claim, complete, delegate, resolve)
      operationId: taskAction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          description: Action performed
  /cmmn-runtime/case-instances:
    get:
      tags: [CMMN]
      summary: List CMMN case instances
      operationId: listCaseInstances
      responses:
        "200":
          description: Case instances
          content:
            application/json:
              schema:
                type: object
    post:
      tags: [CMMN]
      summary: Start a CMMN case instance
      operationId: startCaseInstance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        "201":
          description: Started
          content:
            application/json:
              schema:
                type: object
  /cmmn-runtime/case-instances/{caseInstanceId}:
    delete:
      tags: [CMMN]
      summary: Delete a CMMN case instance
      operationId: deleteCaseInstance
      parameters:
        - in: path
          name: caseInstanceId
          required: true
          schema:
            type: string
      responses:
        "204":
          description: Deleted
  /dmn-repository/decision-tables:
    get:
      tags: [CMMN]
      summary: List DMN decision tables
      operationId: listDecisionTables
      responses:
        "200":
          description: Decision tables
          content:
            application/json:
              schema:
                type: object
  /dmn-rule/execute:
    post:
      tags: [CMMN]
      summary: Execute a DMN decision
      operationId: executeDecision
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          description: Decision result
          content:
            application/json:
              schema:
                type: object
components:
  schemas: {}