openapi: 3.0.0 info: title: ProcessMaker Platform RESTful Environment Variables Files 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: Files description: File and media management paths: /files: get: tags: - Files summary: Returns all files associated with the authenticated user operationId: getFiles parameters: - name: request_id in: query schema: type: integer - $ref: '#/components/parameters/filter' - $ref: '#/components/parameters/order_by' - $ref: '#/components/parameters/order_direction' - $ref: '#/components/parameters/per_page' responses: '200': description: List of files content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Media' meta: $ref: '#/components/schemas/Metadata' post: tags: - Files summary: Save a new file operationId: createFile requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary model_id: type: integer model_type: type: string collection_name: type: string responses: '201': description: Created file content: application/json: schema: $ref: '#/components/schemas/Media' /files/{file_id}: get: tags: - Files summary: Get a single file operationId: getFileById parameters: - name: file_id in: path required: true schema: type: integer responses: '200': description: Single file content: application/json: schema: $ref: '#/components/schemas/Media' '404': $ref: '#/components/responses/404' put: tags: - Files summary: Update a file operationId: updateFile parameters: - name: file_id in: path required: true schema: type: integer requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '204': description: No content delete: tags: - Files summary: Delete a file operationId: deleteFile parameters: - name: file_id in: path required: true schema: type: integer responses: '204': description: No content components: schemas: Media: type: object properties: id: type: integer model_id: type: integer model_type: type: string collection_name: type: string name: type: string file_name: type: string mime_type: type: string size: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time url: type: string format: uri 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 order_direction: name: order_direction in: query schema: type: string enum: - asc - desc default: asc responses: '404': description: Not Found content: application/json: schema: type: object properties: error: type: string securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT