Bonitasoft Manual Task API

ManualTask

Operations 4

GET /API/bpm/manualTask Finds ManualTasks #
POST /API/bpm/manualTask Create the ManualTask #
GET /API/bpm/manualTask/{id} Finds the ManualTask by ID #
PUT /API/bpm/manualTask/{id} Update the ManualTask by ID #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bonitasoft-manualtask-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bonitasoft-manualtask-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  license:
    name: GPL-v2.0
    url: http://www.gnu.org/licenses/gpl-2.0.txt
  version: 1.0.9
  title: Bonita Manual Task API
  description: 'Download OpenAPI specification

    Download Postman collection


    The REST API lets you access the data with HTTP requests; it is useful when implementing rich web forms / pages for a good user experience.'
  x-logo:
    url: images/ofelia-logo.svg
    backgroundColor: '#19465f'
    altText: Bonita API
    href: /
servers:
- url: http://localhost:8080/bonita
  description: Sample url for a local development server.
security:
- bonita_auth: []
  bonita_token: []
- bearer_auth: []
tags:
- name: ManualTask
  x-displayName: ManualTask
  description: ManualTask
paths:
  /API/bpm/manualTask:
    get:
      tags:
      - ManualTask
      summary: Finds ManualTasks
      description: 'Finds ManualTasks with pagination params and filters


        You can filter on:


        * `assigned_id={user_id}`: retrieve only the manual tasks assigned to the specified user. For example, retrieve the manual tasks assigned to user with id 1: `/API/bpm/manualTask?p=0&c=10&f=assigned_id%3d1`.

        * `state=skipped | ready | completed | failed` : retrieve only the manual tasks with the specified state. For example, retrieve the ready tasks: `/API/bpm/manualTask?p=0&c=10&f=state%3dready`.

        * `caseId={case_id}`: retrieve only the manual tasks created in the specified process instances. For example, retrieve the manual tasks for the case\_id 2: `/API/bpm/manualTask?p=0&c=10&f=caseId%3d2`.

        * `parentTaskId={parentTask_id}`: retrieve only the manual tasks for a specific parentTask. For example, retrieve the manual tasks for the parentTask\_id 40001: `/API/bpm/manualTask?p=0&c=10&f=parentTaskId%3d40001`.


        You can search on:


        * name: search all manual tasks with a name that starts with the search string. For example, search for all manual tasks that have a name that starts with MySubTask: `/API/bpm/manualTask?p=0&c=10&s=MySubTask`.'
      operationId: searchManualTasks
      parameters:
      - $ref: '#/components/parameters/pageIndex'
      - $ref: '#/components/parameters/pageCount'
      - $ref: '#/components/parameters/pageFilter'
      - $ref: '#/components/parameters/pageOrder'
      - $ref: '#/components/parameters/pageSearch'
      responses:
        '200':
          description: 'Success '
          headers:
            Content-Range:
              schema:
                type: integer
                format: int64
              description: The total number of matching items
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ManualTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
      - ManualTask
      summary: Create the ManualTask
      description: 'Create the ManualTask.

        Use a POST method to create a new subtask. A subtask is attached to a parent task and it needs to be immediately assigned to a user.'
      operationId: createManualTask
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManualTaskCreateRequest'
        description: Partial ManualTask description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualTask'
          description: 'Success '
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
      x-codegen-request-body-name: body
  /API/bpm/manualTask/{id}:
    get:
      tags:
      - ManualTask
      summary: Finds the ManualTask by ID
      description: Returns the single ManualTask for the given ID
      operationId: getManualTaskById
      parameters:
      - description: ID of the ManualTask to return
        in: path
        name: id
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
    put:
      tags:
      - ManualTask
      summary: Update the ManualTask by ID
      description: 'Update the ManualTask for the given ID.

        Use a PUT method to execute a subtask.

        Executing a subtask basically means changing its state to completed and providing an executedBy value.'
      operationId: updateManualTaskById
      parameters:
      - description: ID of the ManualTask to return
        in: path
        name: id
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManualTaskUpdateRequest'
        description: Partial ManualTask description
        required: true
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    ManualTaskUpdateRequest:
      type: object
      properties:
        state:
          description: State of the ManualTask (completed)
          type: string
        executedBy:
          description: Id of the task executor
          type: string
      example:
        state: completed
        executedBy: '1'
    ActivityState:
      type: string
      description: the current state of the activity
      enum:
      - failed
      - initializing
      - ready
      - executing
      - completing
      - completed
      - waiting
      - skipped
      - cancelled
      - aborted
      - cancelling subtasks
      - aborting activity with boundary
      - completing activity with boundary
    Error:
      type: object
      additionalProperties: true
      properties:
        message:
          type: string
          description: The error message
        exception:
          type: string
          description: The exception type
        explanations:
          description: Further details on the error
          type: array
          items:
            type: string
    ManualTaskCreateRequest:
      type: object
      properties:
        parentTaskId:
          description: The parent task ID
          type: string
        state:
          description: The task state
          type: string
        name:
          description: The task name
          type: string
        description:
          description: The task description
          type: string
        priority:
          description: The task priority
          type: string
        dueDate:
          description: The task due date
          type: string
        assigned_id:
          description: The id of the user assigned to the task
          type: string
      example:
        parentTaskId: '40001'
        state: ready
        name: My subtask
        description: This is my subtask
        priority: above_normal
        dueDate: '2014-12-25 00:00:00.000'
        assigned_id: '1'
    ManualTask:
      allOf:
      - $ref: '#/components/schemas/AbstractTask'
      - type: object
        description: Use the manualTask resource to access process subtasks. For archived subtasks use archivedManualTask.
        example:
          displayDescription: This is my subtask
          executedBySubstitute: 1
          processId: 8367255255370238000
          parentCaseId: 1
          state: ready
          rootContainerId: 1
          type: MANUAL_TASK
          assigned_id: 1
          assigned_date: '2014-12-01 17:39:53.784'
          id: 40006
          executedBy: 1
          caseId: 1
          priority: above_normal
          actorId: 1
          description: This is my subtask
          name: My subtask
          reached_state_date: '2014-12-01 17:39:53.784'
          rootCaseId: 1
          displayName: My subtask
          parentTaskId: 40001
          dueDate: '2014-12-25 00:00:00.000'
          last_update_date: '2014-12-01 17:39:53.784'
    AbstractTask:
      type: object
      properties:
        id:
          description: the task id
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        type:
          description: the task type
          type: string
        name:
          description: the task technical name
          type: string
        displayName:
          description: the human readable task name
          type: string
        description:
          description: the task description
          type: string
        displayDescription:
          description: the human readable task description
          type: string
        state:
          $ref: '#/components/schemas/ActivityState'
        reached_state_date:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this task reached the current state for example '2014-10-17 16:05:42.626'
          type: string
          pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
        last_update_date:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this task was last updated for example '2014-10-17 16:05:42.626)
          type: string
          pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
        dueDate:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this task is due for example '2014-10-17 16:05:42.626'
          type: string
          pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
        priority:
          description: the priority (string) of the current task
          type: string
        processId:
          description: the process definition id of the process instance which define this task
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        parentCaseId:
          description: the immediate containing process instance id (case id)
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        parentTaskId:
          description: the parent Task id
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        rootCaseId:
          description: the top/root process instance id (case id). In case of an "event sub process" `parentCaseId` will the id of the process instance called while `rootCaseId` will be the one from the caller process instance
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        rootContainerId:
          description: same as rootCaseId
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        executedBy:
          description: the id of the user who performed this task. The task has to be a human task otherwise its value will be 0
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        executedBySubstitute:
          description: the id of the user who did actually performed the task when it has been done in the name of someone else. Value is 0 otherwise
          type: string
        actorId:
          description: the id of the actor that can execute this task null otherwise
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        assigned_id:
          description: the user id that this task is assigned to or 0 if it is unassigned
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        assigned_date:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when the current task was assigned for example '2014-10-17 16:05:42.626'
          type: string
          pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
        isTerminal:
          description: True if the task is the last one in a flow
          type: boolean
      example:
        displayDescription: This is my subtask
        executedBySubstitute: 1
        processId: 8367255255370238000
        parentCaseId: 1
        state: ready
        rootContainerId: 1
        type: MANUAL_TASK
        assigned_id: 1
        assigned_date: '2014-12-01 17:39:53.784'
        id: 40006
        executedBy: 1
        caseId: 1
        priority: above_normal
        actorId: 1
        description: This is my subtask
        name: My subtask
        reached_state_date: '2014-12-01 17:39:53.784'
        rootCaseId: 1
        displayName: My subtask
        parentTaskId: 40001
        dueDate: '2014-12-25 00:00:00.000'
        last_update_date: '2014-12-01 17:39:53.784'
  parameters:
    pageCount:
      description: maximum number of elements to retrieve
      explode: true
      in: query
      name: c
      example: '10'
      required: true
      schema:
        type: integer
        minimum: 1
        default: 20
        format: int32
      style: form
    pageOrder:
      description: can order on attributes
      explode: true
      in: query
      name: o
      required: false
      schema:
        type: string
        maxLength: 250
        pattern: ^[A-Za-z0-9%]{0,250}$
      style: form
      example: myProp%20ASC
    pageIndex:
      description: index of the page to display
      explode: true
      in: query
      name: p
      example: '0'
      required: true
      schema:
        type: integer
        minimum: 0
        default: 0
        format: int32
      style: form
    pageFilter:
      description: can filter on attributes with the format f={filter\_name}={filter\_value} with the name/value pair as url encoded string.
      explode: true
      in: query
      name: f
      required: false
      schema:
        type: array
        items:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9%]{0,250}$
      style: form
      example: abc%3d123
    pageSearch:
      description: can search on attributes
      explode: true
      in: query
      name: s
      required: false
      schema:
        type: string
        maxLength: 250
        pattern: ^[A-Za-z0-9%]{0,250}$
      style: form
  responses:
    Unauthorized:
      description: Authorization information is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Unauthorized
    OK:
      description: OK
    NotFound:
      description: The resource for the specified ID was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Resource not found.
    Forbidden:
      description: Forbidden, The request contained valid data and was understood by the server, but the server is refusing action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Forbidden, The request contained valid data and was understood by the server, but the server is refusing action.
    BadRequest:
      description: Bad request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Bad request
    ServerError:
      description: Unexpected error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: An unexpected error occured.
  securitySchemes:
    bonita_auth:
      name: JSESSIONID
      description: 'To call the REST API, you must first log on with a user registered in the Engine database. Please refer to the __[Login API](#operation/login)__ operations section.

        '
      type: apiKey
      in: cookie
    bonita_token:
      name: X-Bonita-API-Token
      description: 'To call the REST API, you must first log on with a user registered in the Engine database. Please refer to the __[Login API](#operation/login)__ operations section.

        '
      type: apiKey
      in: header
    bearer_auth:
      description: '![edition](https://img.shields.io/badge/edition-entreprise-blue)


        When Bonita runtime is configured for SSO with openID Connect it is possible To call the REST API directly with a Bearer Authorization header containing the access token.

        '
      type: http
      scheme: bearer
x-tagGroups:
- name: Authentication
  tags:
  - Authentication
  - PlatformAuthentication
- name: Application
  tags:
  - Application
  - ApplicationMenu
  - ApplicationPage
  - FormMapping
- name: BDM
  tags:
  - BDM
  - BusinessDataQuery
  - Business Data Operations
  - BDMAccessControl
  - DataRetention
- name: BPM
  tags:
  - Activity
  - ArchivedActivity
  - HumanTask
  - ManualTask
  - Task
  - UserTask
  - ArchivedHumanTask
  - ArchivedManualTask
  - ArchivedTask
  - ArchivedUserTask
  - ActivityVariable
  - ArchivedActivityVariable
  - ProcessInstanceVariable
  - ArchivedProcessInstanceVariable
  - ProcessInstanceDocument
  - ArchivedProcessInstanceDocument
  - Actor
  - ActorMember
  - ProcessInstance
  - ArchivedProcessInstance
  - ProcessInstanceInfo
  - ProcessInstanceComment
  - ArchivedProcessInstanceComment
  - Process
  - Diagram
  - ProcessInfo
  - ProcessParameter
  - ProcessResolutionProblem
  - ProcessSupervisor
  - ProcessConnectorDependency
  - ConnectorFailure
  - ConnectorInstance
  - ArchivedConnectorInstance
  - FlowNode
  - ArchivedFlowNode
  - Failure
  - ArchivedFailure
  - TimerEventTrigger
  - Message
  - Signal
  - Delegation
- name: Custom user info
  tags:
  - CustomUserDefinition
  - CustomUserValue
  - CustomUser
- name: Identity
  tags:
  - ProfessionalContactData
  - Group
  - Membership
  - Role
  - User
  - Authentication
- name: Platform
  tags:
  - PlatformAuthentication
  - Platform
  - License
  - Information
- name: Portal
  tags:
  - Page
  - Profile
  - ProfileEntry
  - ProfileMember
  - Theme
  - Upload
- name: System
  tags:
  - I18nlocale
  - I18ntranslation
  - Log
  - Session
  - Maintenance
- name: Other
  tags:
  - RestAPIextensions
- name: Upload
  tags:
  - FormFileUpload