ProcessMaker Processes API
BPMN 2.0 process design and management
BPMN 2.0 process design and management
openapi: 3.0.0
info:
title: ProcessMaker Platform RESTful Environment Variables Processes API
description: 'The ProcessMaker Platform RESTful API provides programmatic access to all platform functionality including process design, case management, task handling, user management, and enterprise integrations. The API is BPMN 2.0 compliant and follows the OpenAPI specification with interactive Swagger UI documentation auto-generated by Swagger/L5-Swagger.
'
version: 1.0.0
contact:
email: info@processmaker.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://{organization}.processmaker.net/api/1.0
description: ProcessMaker Cloud instance
variables:
organization:
default: myorg
description: Your ProcessMaker organization subdomain
security:
- bearerAuth: []
tags:
- name: Processes
description: BPMN 2.0 process design and management
paths:
/processes:
get:
tags:
- Processes
summary: Returns all processes that the user has access to
operationId: getProcesses
parameters:
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/order_by'
- $ref: '#/components/parameters/order_direction'
- $ref: '#/components/parameters/per_page'
- $ref: '#/components/parameters/status'
- $ref: '#/components/parameters/include'
- name: simplified_data_for_selector
in: query
description: Return simplified data for process selector UI
schema:
type: boolean
responses:
'200':
description: List of processes
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessCollection'
post:
tags:
- Processes
summary: Save a new process
operationId: createProcess
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessEditable'
responses:
'201':
description: Process created
content:
application/json:
schema:
$ref: '#/components/schemas/Process'
'422':
$ref: '#/components/responses/422'
/processes/{processId}:
get:
tags:
- Processes
summary: Get single process by ID
operationId: getProcessById
parameters:
- name: processId
in: path
required: true
schema:
type: integer
- $ref: '#/components/parameters/include'
responses:
'200':
description: Single process resource
content:
application/json:
schema:
$ref: '#/components/schemas/Process'
'404':
$ref: '#/components/responses/404'
put:
tags:
- Processes
summary: Update a process
operationId: updateProcess
parameters:
- name: processId
in: path
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessEditable'
responses:
'200':
description: Updated process resource
content:
application/json:
schema:
$ref: '#/components/schemas/Process'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
delete:
tags:
- Processes
summary: Delete a process
operationId: deleteProcess
parameters:
- name: processId
in: path
required: true
schema:
type: integer
responses:
'204':
description: No content
'404':
$ref: '#/components/responses/404'
/processes/{processId}/draft:
put:
tags:
- Processes
summary: Update a draft process
operationId: updateDraftProcess
parameters:
- name: processId
in: path
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessEditable'
responses:
'200':
description: Updated draft process resource
content:
application/json:
schema:
$ref: '#/components/schemas/Process'
/processes/{processId}/restore:
put:
tags:
- Processes
summary: Restore an inactive process
operationId: restoreProcess
parameters:
- name: processId
in: path
required: true
schema:
type: integer
responses:
'200':
description: Restored process resource
content:
application/json:
schema:
$ref: '#/components/schemas/Process'
/processes/{processId}/export:
post:
tags:
- Processes
summary: Export a single process by ID and return a URL to download it
operationId: exportProcess
parameters:
- name: processId
in: path
required: true
schema:
type: integer
responses:
'200':
description: Export URL
content:
application/json:
schema:
type: object
properties:
url:
type: string
format: uri
/processes/import:
post:
tags:
- Processes
summary: Import a new process
operationId: importProcess
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'200':
description: Process import result
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessImport'
/processes/import/validation:
post:
tags:
- Processes
summary: Validate a process import file
operationId: validateImport
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'200':
description: Import validation result
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessImport'
/processes/{processId}/start_events:
get:
tags:
- Processes
summary: Get start events of a process by ID
operationId: getStartEventsProcessById
parameters:
- name: processId
in: path
required: true
schema:
type: integer
- $ref: '#/components/parameters/include'
responses:
'200':
description: Collection of process start events
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
/processes/{processId}/bpmn:
get:
tags:
- Processes
summary: Download the BPMN definition of a process
operationId: processBpmn
parameters:
- name: processId
in: path
required: true
schema:
type: integer
responses:
'200':
description: BPMN download URL
content:
application/json:
schema:
type: object
properties:
url:
type: string
format: uri
/start_processes:
get:
tags:
- Processes
summary: Returns the list of processes that the user can start
operationId: startProcesses
parameters:
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/order_by'
- $ref: '#/components/parameters/order_direction'
- $ref: '#/components/parameters/per_page'
- $ref: '#/components/parameters/include'
- name: without_event_definitions
in: query
schema:
type: boolean
responses:
'200':
description: Processes with start events
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessCollection'
/process_events/{process_id}:
post:
tags:
- Processes
summary: Start a new process
operationId: triggerStartEvent
parameters:
- name: process_id
in: path
required: true
schema:
type: integer
- name: event
in: query
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
description: Optional request data
responses:
'200':
description: New process request
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessRequest'
components:
responses:
'422':
description: Unprocessable Entity
content:
application/json:
schema:
type: object
properties:
message:
type: string
errors:
type: object
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
error:
type: string
schemas:
ProcessImport:
type: object
properties:
status:
type: object
assignable:
type: array
items:
type: object
process:
$ref: '#/components/schemas/Process'
ProcessEditable:
type: object
required:
- name
- status
- bpmn
- process_category_id
properties:
name:
type: string
description:
type: string
status:
type: string
enum:
- ACTIVE
- INACTIVE
bpmn:
type: string
description: BPMN 2.0 XML string
process_category_id:
type: integer
manager_id:
type: integer
cancel_screen_id:
type: integer
request_detail_screen_id:
type: integer
is_valid:
type: boolean
warnings:
type: array
items:
type: string
ProcessCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Process'
meta:
$ref: '#/components/schemas/Metadata'
ProcessRequest:
allOf:
- $ref: '#/components/schemas/ProcessRequestEditable'
- type: object
properties:
id:
type: integer
process_id:
type: integer
user_id:
type: integer
process_collaboration_id:
type: integer
nullable: true
callable_id:
type: string
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
completed_at:
type: string
format: date-time
nullable: true
Process:
allOf:
- $ref: '#/components/schemas/ProcessEditable'
- type: object
properties:
id:
type: integer
user_id:
type: integer
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
nullable: true
ProcessRequestEditable:
type: object
properties:
status:
type: string
enum:
- ACTIVE
- COMPLETED
- ERROR
- CANCELED
data:
type: object
name:
type: string
Metadata:
type: object
properties:
total:
type: integer
count:
type: integer
per_page:
type: integer
current_page:
type: integer
total_pages:
type: integer
sort_by:
type: string
sort_order:
type: string
search:
type: string
parameters:
status:
name: status
in: query
description: Filter by status - ACTIVE or INACTIVE
schema:
type: string
enum:
- ACTIVE
- INACTIVE
per_page:
name: per_page
in: query
schema:
type: integer
default: 10
filter:
name: filter
in: query
description: 'Filter results by string. Searches Name, Description, and Status. Status must match exactly. Others can be a substring.
'
schema:
type: string
order_by:
name: order_by
in: query
description: Field to order results by
schema:
type: string
include:
name: include
in: query
description: Include data from related models in payload. Comma separated list.
schema:
type: string
default: ''
order_direction:
name: order_direction
in: query
schema:
type: string
enum:
- asc
- desc
default: asc
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT