openapi: 3.0.0 info: title: ProcessMaker Platform RESTful Environment Variables Screens 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: Screens description: Form screen design and management paths: /screens: get: tags: - Screens summary: Returns all screens that the user has access to operationId: getScreens 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: exclude in: query description: Comma-separated fields to exclude from response schema: type: string responses: '200': description: List of screens content: application/json: schema: $ref: '#/components/schemas/ScreenCollection' post: tags: - Screens summary: Save a new screen operationId: createScreen requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScreenEditable' responses: '201': description: Created screen content: application/json: schema: $ref: '#/components/schemas/Screen' /screens/{screens_id}: get: tags: - Screens summary: Get single screen by ID operationId: getScreensById parameters: - name: screens_id in: path required: true schema: type: string responses: '200': description: Single screen content: application/json: schema: $ref: '#/components/schemas/Screen' put: tags: - Screens summary: Update a screen operationId: updateScreen parameters: - name: screens_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScreenEditable' responses: '204': description: No content delete: tags: - Screens summary: Delete a screen operationId: deleteScreen parameters: - name: screens_id in: path required: true schema: type: string responses: '204': description: No content /screens/{screens_id}/draft: put: tags: - Screens summary: Update a draft screen operationId: updateDraftScreen parameters: - name: screens_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScreenEditable' responses: '204': description: No content /screens/{screens_id}/duplicate: put: tags: - Screens summary: Duplicate a screen operationId: duplicateScreen parameters: - name: screens_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScreenEditable' responses: '201': description: Duplicated screen content: application/json: schema: $ref: '#/components/schemas/Screen' /screens/{screensId}/export: post: tags: - Screens summary: Export a single screen by ID operationId: exportScreen parameters: - name: screensId in: path required: true schema: type: string responses: '200': description: Screen export URL content: application/json: schema: type: object properties: url: type: string format: uri /screens/import: post: tags: - Screens summary: Import a new screen operationId: importScreen requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '201': description: Import status /screens/preview: post: tags: - Screens summary: Preview a screen operationId: preview requestBody: required: true content: application/json: schema: type: object properties: config: type: object watchers: type: array items: type: object computed: type: array items: type: object custom_css: type: string responses: '200': description: Screen preview resource content: application/json: schema: $ref: '#/components/schemas/Screen' /screens/{screen_id}/translate/{language}: get: tags: - Screens summary: Translates the screen to the desired language operationId: translateScreen parameters: - name: screen_id in: path required: true schema: type: string - name: language in: path required: true schema: type: string responses: '200': description: Translated screen content: application/json: schema: $ref: '#/components/schemas/Screen' components: schemas: ScreenEditable: type: object required: - title - type - config properties: title: type: string description: type: string type: type: string enum: - FORM - DISPLAY - CONVERSATIONAL - EMAIL config: type: object computed: type: array items: type: object watchers: type: array items: type: object custom_css: type: string screen_category_id: type: integer Screen: allOf: - $ref: '#/components/schemas/ScreenEditable' - 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 ScreenCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/Screen' 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 parameters: 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