OpenAPI Specification
openapi: 3.0.0
info:
title: ProcessMaker Platform RESTful Environment Variables Users 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: Users
description: User account management
paths:
/users:
get:
tags:
- Users
summary: Returns all users
operationId: getUsers
parameters:
- $ref: '#/components/parameters/status'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/order_by'
- $ref: '#/components/parameters/order_direction'
- $ref: '#/components/parameters/per_page'
- $ref: '#/components/parameters/include'
- name: exclude_ids
in: query
description: Comma-separated user IDs to exclude
schema:
type: string
responses:
'200':
description: List of users
content:
application/json:
schema:
$ref: '#/components/schemas/UserCollection'
post:
tags:
- Users
summary: Save a new user
operationId: createUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserEditable'
responses:
'201':
description: Created user
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'422':
$ref: '#/components/responses/422'
/users/{user_id}:
get:
tags:
- Users
summary: Get single user by ID
operationId: getUserById
parameters:
- name: user_id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Single user
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'404':
$ref: '#/components/responses/404'
put:
tags:
- Users
summary: Update a user
operationId: updateUser
parameters:
- name: user_id
in: path
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserEditable'
responses:
'204':
description: No content
'404':
$ref: '#/components/responses/404'
delete:
tags:
- Users
summary: Delete a user
operationId: deleteUser
parameters:
- name: user_id
in: path
required: true
schema:
type: integer
responses:
'204':
description: No content
'404':
$ref: '#/components/responses/404'
/users/restore:
put:
tags:
- Users
summary: Restore a soft deleted user
operationId: restoreUser
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
username:
type: string
responses:
'200':
description: Success
/users_task_count:
get:
tags:
- Users
summary: Returns all users and their total tasks
operationId: getUsersTaskCount
parameters:
- $ref: '#/components/parameters/filter'
- name: include_ids
in: query
description: Comma-separated user IDs to include
schema:
type: string
responses:
'200':
description: Users with task counts
content:
application/json:
schema:
type: object
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
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
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
order_by:
name: order_by
in: query
description: Field to order results by
schema:
type: string
schemas:
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
User:
allOf:
- $ref: '#/components/schemas/UserEditable'
- type: object
properties:
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
is_administrator:
type: boolean
fullname:
type: string
UserCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/User'
meta:
$ref: '#/components/schemas/Metadata'
UserEditable:
type: object
required:
- username
- firstname
- lastname
- email
- password
- status
properties:
username:
type: string
firstname:
type: string
lastname:
type: string
email:
type: string
format: email
password:
type: string
format: password
status:
type: string
enum:
- ACTIVE
- INACTIVE
timezone:
type: string
datetime_format:
type: string
language:
type: string
avatar:
type: string
phone:
type: string
cell:
type: string
title:
type: string
address:
type: string
city:
type: string
state:
type: string
postal:
type: string
country:
type: string
expires_at:
type: string
format: date-time
nullable: true
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT