OpenAPI Specification
openapi: 3.0.0
info:
title: ProcessMaker Platform RESTful Environment Variables Groups 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: Groups
description: Group and membership management
paths:
/groups:
get:
tags:
- Groups
summary: Returns all groups that the user has access to
operationId: getGroups
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'
responses:
'200':
description: List of groups
content:
application/json:
schema:
$ref: '#/components/schemas/GroupCollection'
post:
tags:
- Groups
summary: Save a new group
operationId: createGroup
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GroupEditable'
responses:
'201':
description: Created group
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'422':
$ref: '#/components/responses/422'
/groups/{group_id}:
get:
tags:
- Groups
summary: Get single group by ID
operationId: getGroupById
parameters:
- name: group_id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Single group
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'404':
$ref: '#/components/responses/404'
put:
tags:
- Groups
summary: Update a group
operationId: updateGroup
parameters:
- name: group_id
in: path
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GroupEditable'
responses:
'204':
description: No content
'404':
$ref: '#/components/responses/404'
delete:
tags:
- Groups
summary: Delete a group
operationId: deleteGroup
parameters:
- name: group_id
in: path
required: true
schema:
type: integer
responses:
'204':
description: No content
'404':
$ref: '#/components/responses/404'
/groups/{group_id}/users:
get:
tags:
- Groups
summary: Returns all users of a group
operationId: getGroupUsers
parameters:
- name: group_id
in: path
required: true
schema:
type: integer
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/order_direction'
- $ref: '#/components/parameters/per_page'
responses:
'200':
description: Users in group
content:
application/json:
schema:
$ref: '#/components/schemas/UserCollection'
/groups/{group_id}/groups:
get:
tags:
- Groups
summary: Returns all sub-groups of a group
operationId: getGroupGroups
parameters:
- name: group_id
in: path
required: true
schema:
type: integer
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/order_direction'
- $ref: '#/components/parameters/per_page'
responses:
'200':
description: Sub-groups
content:
application/json:
schema:
$ref: '#/components/schemas/GroupCollection'
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:
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
Group:
allOf:
- $ref: '#/components/schemas/GroupEditable'
- type: object
properties:
id:
type: integer
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
GroupCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Group'
meta:
$ref: '#/components/schemas/Metadata'
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'
GroupEditable:
type: object
required:
- name
- status
properties:
name:
type: string
description:
type: string
status:
type: string
enum:
- ACTIVE
- INACTIVE
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT