{
  "info": {
    "name": " WP Umbrella - Public API Documentation",
    "description": "This Postman project lets you use the WP Umbrella API to test the various endpoints.\n\n## API Responses\n\nThe format of an API response is:\n\n``` json\n{\n    code : \"error_code\" // success, internal_error, etc...\n    data : \"\" // data return\n}\n\n ```\n\n### Headers\n\n**RateLimit**\n\nThe RateLimit header is used to manage and communicate request limits as part of rate limiting policies. This header typically includes information such as the maximum number of requests allowed, the number of requests remaining in the current time window, and the time until the limit resets.\n\n• **Example Value**: limit=1000, remaining=998, reset=41\n\n• **Explanation of Values**:\n\n• limit=1000: Indicates the total number of requests allowed within a defined period.\n\n• remaining=998: The number of requests left before reaching the limit.\n\n• reset=41: The time (in seconds) remaining until the rate limit window resets.\n\n• **Usage**: This header is useful for API clients and front-end services to monitor their request volume and avoid being blocked for exceeding quotas.\n\n**Content-Range**\n\nThe Content-Range header is used to specify the portion of a resource returned in an HTTP partial response, commonly used when a specific range of data is requested. This header is primarily associated with the 206 Partial Content status code, allowing clients to resume downloads or retrieve a specific part of a resource.\n\n• **Example Value**: 0-5/6\n\n• **Explanation of Values**:\n\n• 0-5: Indicates the range of content returned in this response (e.g., from byte 0 to byte 5).\n\n• /6: Indicates the total size of the resource (6 bytes in this example).\n\n• **Usage**: This header is particularly useful for segmented downloads or systems that require partial data access (e.g., video streaming, large file retrieval).",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Customers",
      "description": "Endpoints for customers",
      "item": [
        {
          "name": "Get customers for a user",
          "request": {
            "description": "### This endpoint retrieves a list of customers for a specific user.\n\n#### Request\n\n- Method: GET\n- URL: `/customers`\n\n#### Response\n\n- Status: 200 Success\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": [\n        {\n            \"id\": \"cltxhdr9o00011qeigyp3flqg\",\n            \"company_name\": \"My company name\",\n            \"phone\": \"+339837\",\n            \"firstname\": \"My firstname\",\n            \"lastname\": \"My lastname\",\n            \"created_at_timestamp\": 1710798712908,\n            \"emails\": [\n                \"doe@gmail.com\",\n                \"john@gmail.com\"\n            ],\n            \"website_url\": \"https://mywebsite.com\"\n        }\n    ],\n    \"links\": {\n        \"pagination\": {\n            \"first\": \"https://public-api.wp-umbrella.com?page=1&per_page=1\",\n            \"last\": \"https://public-api.wp-umbrella.com?page=2&per_page=1\",\n            \"next\": \"https://public-api.wp-umbrella.com?page=2&per_page=1\"\n        }\n    }\n}\n```\n\n",
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{publicApiUrl}}/customers",
              "host": [
                "{{publicApiUrl}}"
              ],
              "path": [
                "customers"
              ],
              "variable": []
            }
          }
        },
        {
          "name": "Create a customer",
          "request": {
            "description": "### This endpoint creates a customer for a specific user.\n\n#### Request\n\n- Method: POST\n- URL: `/customers`\n\n#### Body Parameters\n\n- `firstname` (string, required): - The first name of the customer (required).\n- `lastname` (string, required): - The last name of the customer (required).\n- `emails` (string[], required): - The emails of the customer (required).\n- `company_name` (string, required): - The company name of the customer (required).\n- `website` (string, required): - The website of the customer (optional).\n- `phone` (string, required): - The phone of the customer (optional).\n- `projectIds` (number[], required): - The IDs of projects to associate with this customer (optional).\n\n#### Response\n\n- Status: 200 Success\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": {\n        \"id\": \"cltxhdr9o00011qeigyp3flqg\",\n        \"company_name\": \"My company name\",\n        \"phone\": \"+339837\",\n        \"firstname\": \"My firstname\",\n        \"lastname\": \"My lastname\",\n        \"created_at_timestamp\": 1710798712908,\n        \"emails\": [\n            \"doe@gmail.com\",\n            \"john@gmail.com\"\n        ],\n        \"website_url\": \"https://mywebsite.com\"\n    }\n}\n```\n\n",
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{publicApiUrl}}/customers",
              "host": [
                "{{publicApiUrl}}"
              ],
              "path": [
                "customers"
              ],
              "variable": []
            }
          }
        },
        {
          "name": "CustomerId",
          "description": "Endpoints for [customerid]",
          "item": [
            {
              "name": "Update a customer",
              "request": {
                "description": "### This endpoint updates a customer for a specific user.\n\n#### Request\n\n- Method: PUT\n- URL: `/customers/{{customerId}}`\n\n#### Body Parameters\n\n- `firstname` (string, required): - The first name of the customer (optional).\n- `lastname` (string, required): - The last name of the customer (optional).\n- `emails` (string[], required): - The emails of the customer (optional).\n- `company_name` (string, required): - The company name of the customer (optional).\n- `website` (string, required): - The website of the customer (optional).\n- `phone` (string, required): - The phone of the customer (optional).\n- `projectIds` (number[], required): - The IDs of projects to associate with this customer (optional).\n\n#### Response\n\n- Status: 200 Success\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": {\n        \"id\": \"cltxhdr9o00011qeigyp3flqg\",\n        \"company_name\": \"My company name\",\n        \"phone\": \"+339837\",\n        \"firstname\": \"My firstname\",\n        \"lastname\": \"My lastname\",\n        \"created_at_timestamp\": 1710798712908,\n        \"emails\": [\n            \"doe@gmail.com\",\n            \"john@gmail.com\"\n        ],\n        \"website_url\": \"https://mywebsite.com\"\n    }\n}\n```\n\n",
                "method": "PUT",
                "header": [],
                "url": {
                  "raw": "{{publicApiUrl}}/customers/{{customerId}}",
                  "host": [
                    "{{publicApiUrl}}"
                  ],
                  "path": [
                    "customers",
                    "{{customerId}}"
                  ],
                  "variable": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"firstname\": \"John\",\n  \"lastname\": \"Doe\",\n  \"emails\": [\n    \"john.doe@example.com\",\n    \"jdoe@company.com\"\n  ],\n  \"company_name\": \"ACME Corp\",\n  \"website_url\": \"https://www.acmecorp.com\",\n  \"phone\": \"+1-555-123-4567\",\n  \"projectIds\": [\n    123,\n    456\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Processes",
      "description": "Endpoints for processes",
      "item": [
        {
          "name": "Retrieve processes",
          "request": {
            "description": "### This endpoint retrieves a list of processes.\n\n#### Request\n\n- Method: GET\n- URL: `/processes`\n\n#### Query Parameters\n\n- `types` (string[], optional): - UPDATE_PLUGIN - Update a plugin\n    - UPDATE_THEME - Update a theme\n    - UPDATE_CORE - Update WordPress core\n    - ACTIVATE_PLUGIN - Activate a plugin\n    - DEACTIVATE_PLUGIN - Deactivate a plugin\n    - DELETE_PLUGIN - Delete a plugin\n    - DELETE_THEME - Delete a theme\n    - OPTIMIZE_DATABASE - Optimize database.\n- `status` (string, optional): - finished - Finished tasks\n    - failed - Failed tasks\n    - pending - Pending tasks\n    - success - Success tasks.\n- `from` (number, optional): .\n- `to` (number, optional): @response 200 Success\n```json\n{\n\"code\": \"success\",\n\"data\": [\n{\n\"id\": \"task123\",\n\"type\": \"UPDATE_PLUGIN\",\n\"code\": \"success\",\n\"entities\": {\n\"id\": \"plugin123\",\n\"name\": \"Example Plugin\",\n\"plugin\": \"example-plugin/example-plugin.php\",\n\"version\": \"2.0.0\",\n\"is_active\": true,\n\"old_version\": \"1.9.0\",\n\"update_type\": \"QUICK_UPDATE\"\n},\n\"entities_result\": {\n\"status_code\": 200,\n\"visual_regression\": {\n\"diff_percent\": 0.5,\n\"mainProcessTaskScreenshotId\": \"screenshot123\",\n\"compareProcessTaskScreenshotId\": \"screenshot456\"\n}\n},\n\"created_at\": \"2024-01-01T12:00:00.000Z\"\n}\n],\n\"links\": {\n\"pagination\": {\n\"first\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\",\n\"last\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\"\n}\n}\n}\n```.\n\n#### Response\n\n- Status: 200 Success\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": [\n        {\n            \"id\": \"task123\",\n            \"type\": \"UPDATE_PLUGIN\",\n            \"code\": \"success\",\n            \"entities\": {\n                \"id\": \"plugin123\",\n                \"name\": \"Example Plugin\",\n                \"plugin\": \"example-plugin/example-plugin.php\",\n                \"version\": \"2.0.0\",\n                \"is_active\": true,\n                \"old_version\": \"1.9.0\",\n                \"update_type\": \"QUICK_UPDATE\"\n            },\n            \"entities_result\": {\n                \"status_code\": 200,\n                \"visual_regression\": {\n                    \"diff_percent\": 0.5,\n                    \"mainProcessTaskScreenshotId\": \"screenshot123\",\n                    \"compareProcessTaskScreenshotId\": \"screenshot456\"\n                }\n            },\n            \"created_at\": \"2024-01-01T12:00:00.000Z\"\n        }\n    ],\n    \"links\": {\n        \"pagination\": {\n            \"first\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\",\n            \"last\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\"\n        }\n    }\n}\n```\n\n",
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{publicApiUrl}}/processes",
              "host": [
                "{{publicApiUrl}}"
              ],
              "path": [
                "processes"
              ],
              "variable": []
            }
          }
        }
      ]
    },
    {
      "name": "Projects",
      "description": "Endpoints for projects",
      "item": [
        {
          "name": "Retrieve list of projects",
          "request": {
            "description": "### This endpoint retrieves a list of projects of a current user with pagination and sorting options.\n\n#### Request\n\n- Method: GET\n- URL: `/projects`\n\n#### Query Parameters\n\n- `page` (number, required): .\n- `per_page` (number, required): .\n- `sort` (string, required): .\n- `order` (string, required): @response 200 Success response\n```json\n{\n\"code\": \"success\",\n\"data\": [\n{\n\"base_url\": \"https://example.com\",\n\"name\": \"Example Website\",\n\"source_domain\": \"example.com\",\n\"id\": 123,\n\"hosting\": \"AWS\",\n\"is_currently_down\": false,\n\"count_php_issues\": 2,\n\"latest_downtime\": \"2024-01-15T10:30:00Z\",\n\"latest_ping\": 250,\n\"latest_performance_score\": 85.5,\n\"user_id_wp_login\": 456,\n\"created_at\": \"2023-12-01T09:00:00Z\",\n\"starred\": true,\n\"userId\": 789,\n\"labels\": [\"production\", \"client-a\"],\n\"plugins\": [\n{\n\"version\": \"2.1.0\",\n\"key\": \"woocommerce\",\n\"slug\": \"woocommerce\",\n\"need_update\": true,\n\"is_active\": true\n}\n],\n\"themes\": [\n{\n\"id\": \"twentytwentythree\",\n\"version\": \"1.2\",\n\"stylesheet\": \"twentytwentythree\",\n\"latest_version\": \"1.3\",\n\"template\": \"twentytwentythree\",\n\"is_active\": true,\n\"ThemeVulnerability\": []\n}\n],\n\"warnings\": {\n\"wordpress_version\": \"6.4.2\",\n\"php_current_version\": \"8.1\",\n\"php_recommended_version\": \"8.2\",\n\"php_is_secure\": true,\n\"php_is_supported\": true,\n\"is_ssl\": true,\n\"is_indexable\": true,\n\"is_up_to_date\": false,\n\"defined_wp_debug\": false,\n\n\"total_db_optimization_auto_draft_post\": 15,\n\"total_db_optimization_expired_transient\": 45,\n\"total_db_optimization_post_revision\": 120,\n\"total_db_optimization_spam_comment\": 67,\n\"total_db_optimization_table\": 25,\n\"total_db_optimization_trashed_comment\": 12,\n\"total_db_optimization_trashed_post\": 8,\n\n\"WordPressVulnerability\": []\n},\n\"last_synchronization\": {\n\"date\": \"2024-01-20T15:45:00Z\",\n\"date_with_success\": \"2024-01-20T15:45:00Z\",\n\"date_with_success_timestamp\": 1705766700\n},\n\"vulnerabilities\": {\n\"plugins\": [],\n\"themes\": [],\n\"wordpress\": []\n},\n\"maintenanceCustomer\": {\n\"id\": \"cust_123\",\n\"company_name\": \"ACME Corp\",\n\"firstname\": \"John\",\n\"lastname\": \"Doe\",\n\"website_url\": \"https://acme.com\"\n}\n}\n]\n}\n```\n\n@response 404 Project not found\n```json\n{\n\"code\": \"not_found\",\n\"message\": \"Project not found\"\n}\n```\n\n@response 400 Invalid parameters\n```json\n{\n\"code\": \"bad_params\",\n\"message\": \"\\\"sort\\\" must be one of [name, base_url]\"\n}\n```.\n\n#### Response\n\n- Status: 200 Success response\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": [\n        {\n            \"base_url\": \"https://example.com\",\n            \"name\": \"Example Website\",\n            \"source_domain\": \"example.com\",\n            \"id\": 123,\n            \"hosting\": \"AWS\",\n            \"is_currently_down\": false,\n            \"count_php_issues\": 2,\n            \"latest_downtime\": \"2024-01-15T10:30:00Z\",\n            \"latest_ping\": 250,\n            \"latest_performance_score\": 85.5,\n            \"user_id_wp_login\": 456,\n            \"created_at\": \"2023-12-01T09:00:00Z\",\n            \"starred\": true,\n            \"userId\": 789,\n            \"labels\": [\n                \"production\",\n                \"client-a\"\n            ],\n            \"plugins\": [\n                {\n                    \"version\": \"2.1.0\",\n                    \"key\": \"woocommerce\",\n                    \"slug\": \"woocommerce\",\n                    \"need_update\": true,\n                    \"is_active\": true\n                }\n            ],\n            \"themes\": [\n                {\n                    \"id\": \"twentytwentythree\",\n                    \"version\": \"1.2\",\n                    \"stylesheet\": \"twentytwentythree\",\n                    \"latest_version\": \"1.3\",\n                    \"template\": \"twentytwentythree\",\n                    \"is_active\": true,\n                    \"ThemeVulnerability\": []\n                }\n            ],\n            \"warnings\": {\n                \"wordpress_version\": \"6.4.2\",\n                \"php_current_version\": \"8.1\",\n                \"php_recommended_version\": \"8.2\",\n                \"php_is_secure\": true,\n                \"php_is_supported\": true,\n                \"is_ssl\": true,\n                \"is_indexable\": true,\n                \"is_up_to_date\": false,\n                \"defined_wp_debug\": false,\n                \"total_db_optimization_auto_draft_post\": 15,\n                \"total_db_optimization_expired_transient\": 45,\n                \"total_db_optimization_post_revision\": 120,\n                \"total_db_optimization_spam_comment\": 67,\n                \"total_db_optimization_table\": 25,\n                \"total_db_optimization_trashed_comment\": 12,\n                \"total_db_optimization_trashed_post\": 8,\n                \"WordPressVulnerability\": []\n            },\n            \"last_synchronization\": {\n                \"date\": \"2024-01-20T15:45:00Z\",\n                \"date_with_success\": \"2024-01-20T15:45:00Z\",\n                \"date_with_success_timestamp\": 1705766700\n            },\n            \"vulnerabilities\": {\n                \"plugins\": [],\n                \"themes\": [],\n                \"wordpress\": []\n            },\n            \"maintenanceCustomer\": {\n                \"id\": \"cust_123\",\n                \"company_name\": \"ACME Corp\",\n                \"firstname\": \"John\",\n                \"lastname\": \"Doe\",\n                \"website_url\": \"https://acme.com\"\n            }\n        }\n    ]\n}\n```\n\n- Status: 404 Project not found\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"not_found\",\n    \"message\": \"Project not found\"\n}\n```\n\n- Status: 400 Invalid parameters\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"bad_params\",\n    \"message\": \"\\\"sort\\\" must be one of [name, base_url]\"\n}\n```\n\n",
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{publicApiUrl}}/projects",
              "host": [
                "{{publicApiUrl}}"
              ],
              "path": [
                "projects"
              ],
              "variable": []
            }
          }
        },
        {
          "name": "ProjectId",
          "description": "Endpoints for [projectid]",
          "item": [
            {
              "name": "Retrieve a project",
              "request": {
                "description": "### This endpoint retrieves a project by its ID.\n\n#### Request\n\n- Method: GET\n- URL: `/projects/{{projectId}}`\n\n#### Response\n\n- Status: 200 Success response\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": {\n        \"base_url\": \"https://example.com\",\n        \"name\": \"Example Project\",\n        \"source_domain\": \"example.com\",\n        \"id\": 123,\n        \"hosting\": \"Example Hosting\",\n        \"is_currently_down\": false,\n        \"count_php_issues\": 0,\n        \"latest_downtime\": \"2024-01-01T00:00:00.000Z\",\n        \"latest_ping\": 150.5,\n        \"latest_performance_score\": 0.95,\n        \"latest_performance_score_mobile\": 0.9,\n        \"user_id_wp_login\": null,\n        \"created_at\": \"2024-01-01T00:00:00.000Z\",\n        \"starred\": true,\n        \"userId\": 456,\n        \"labels\": [],\n        \"plugins\": [\n            {\n                \"version\": \"2.0.0\",\n                \"key\": \"example-plugin/example-plugin.php\",\n                \"slug\": \"example-plugin\",\n                \"need_update\": true,\n                \"is_active\": true\n            }\n        ],\n        \"themes\": [\n            {\n                \"id\": \"theme123\",\n                \"version\": \"1.0\",\n                \"stylesheet\": \"example-theme\",\n                \"latest_version\": \"1.1\",\n                \"template\": \"example-theme\",\n                \"is_active\": true,\n                \"ThemeVulnerability\": []\n            }\n        ],\n        \"warnings\": {\n            \"wordpress_version\": \"6.0.0\",\n            \"php_current_version\": \"8.0\",\n            \"php_recommended_version\": \"8.1\",\n            \"php_is_secure\": true,\n            \"php_is_supported\": true,\n            \"is_ssl\": true,\n            \"is_indexable\": true,\n            \"is_up_to_date\": true,\n            \"defined_wp_debug\": false,\n            \"total_db_optimization_auto_draft_post\": 0,\n            \"total_db_optimization_expired_transient\": 0,\n            \"total_db_optimization_post_revision\": 0,\n            \"total_db_optimization_spam_comment\": 0,\n            \"total_db_optimization_table\": 0,\n            \"total_db_optimization_trashed_comment\": 0,\n            \"total_db_optimization_trashed_post\": 0,\n            \"WordPressVulnerability\": []\n        },\n        \"last_synchronization\": {\n            \"date\": \"2024-01-01T00:00:00.000Z\",\n            \"date_with_success\": \"2024-01-01T00:00:00.000Z\",\n            \"date_with_success_timestamp\": 1704067200\n        },\n        \"vulnerabilities\": {\n            \"plugins\": [\n                {\n                    \"id\": \"vuln123\"\n                }\n            ],\n            \"themes\": [],\n            \"wordpress\": []\n        },\n        \"maintenanceCustomer\": {\n            \"id\": \"cust123\",\n            \"company_name\": \"Example Company\",\n            \"firstname\": \"John\",\n            \"lastname\": \"Doe\",\n            \"website_url\": \"https://example-company.com\"\n        }\n    }\n}\n```\n\n- Status: 401 Unauthorized\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"status\": 401,\n    \"code\": \"unauthorized_request\",\n    \"message\": \"You are not authorized to access this resource.\"\n}\n```\n\n",
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{publicApiUrl}}/projects/{{projectId}}",
                  "host": [
                    "{{publicApiUrl}}"
                  ],
                  "path": [
                    "projects",
                    "{{projectId}}"
                  ],
                  "variable": []
                }
              }
            },
            {
              "name": "Custom Works",
              "description": "Endpoints for custom-works",
              "item": [
                {
                  "name": "Create a custom work for a project",
                  "request": {
                    "description": "### This endpoint creates a custom work for a specific project.\n\n#### Request\n\n- Method: POST\n- URL: `/projects/{{projectId}}/custom-works`\n\n#### Body Parameters\n\n- `name` (string, required): - Name of the custom work (required).\n- `description` (string, required): - Description of the custom work (optional).\n- `execution_date` (string, required): - Execution date of the custom work (required).\n- `estimated_time` (number, required): - Estimated time of the custom work (required).\n- `estimated_time_unit` (CustomWorkEstimatedTimeUnit, required): - Unit of estimated time (required) - Possible values: \"MINUTES\" | \"HOURS\" | \"DAYS\".\n- `is_recurring` (boolean, required): - Whether the custom work is recurring (optional) - Default: false.\n- `frequency` (CustomWorkFrequency, required): - Frequency value for recurring works - Possible values: \"WEEKLY\" | \"MONTHLY\" | \"QUARTERLY\".\n- `type_frequency` (CustomWorkTypeFrequency, required): - Type of frequency for recurring works. Possible values:  \"MONDAY\" | \"TUESDAY\" | \"WEDNESDAY\" | \"THURSDAY\" | \"FRIDAY\" | \"SATURDAY\" | \"SUNDAY\" | \"BEGIN_Q1\" | \"BEGIN_Q2\" | \"BEGIN_Q3\" | \"BEGIN_Q4\".\n- `specific_day` (number, required): - Specific day for recurring works (required if is_recurring is true).\n- `plugin_keys` (string[], required): - Array of plugin keys to process (required).\n- `clear_cache` (boolean, required): - Whether to clear cache (optional).\n\n#### Response\n\n- Status: 200 Success\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": {\n        \"id\": 25,\n        \"name\": \"Custom Work Name\",\n        \"description\": \"Work description\",\n        \"execution_date\": \"2024-03-20T00:00:00.000Z\",\n        \"is_recurring\": true,\n        \"estimated_time\": 2,\n        \"estimated_time_unit\": \"HOURS\",\n        \"created_at\": \"2025-03-23T16:32:52.147Z\",\n        \"projectId\": 21,\n        \"scheduledWorkId\": \"cm8luwotu00007a2dwfzrvsf4\",\n        \"userId\": 1\n    }\n}\n```\n\n- Status: 400 Invalid parameters\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"bad_params\"\n}\n```\n\n",
                    "method": "POST",
                    "header": [],
                    "url": {
                      "raw": "{{publicApiUrl}}/projects/{{projectId}}/custom-works",
                      "host": [
                        "{{publicApiUrl}}"
                      ],
                      "path": [
                        "projects",
                        "{{projectId}}",
                        "custom-works"
                      ],
                      "variable": []
                    },
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"Custom Work Name\",\n  \"description\": \"Work description\",\n  \"execution_date\": \"2024-03-20\",\n  \"estimated_time\": 2,\n  \"estimated_time_unit\": \"HOURS\",\n  \"is_recurring\": true,\n  \"frequency\": \"WEEKLY\",\n  \"type_frequency\": \"MONDAY\",\n  \"specific_day\": 1\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                }
              ]
            },
            {
              "name": "Database Optimization",
              "description": "Endpoints for database-optimization",
              "item": [
                {
                  "name": "Optimize database for a project",
                  "request": {
                    "description": "### This endpoint optimizes the database for a specific project.\n\n#### Request\n\n- Method: POST\n- URL: `/projects/{{projectId}}/database-optimization`\n\n#### Response\n\n- Status: 200 Success\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": {\n        \"processId\": \"cm4s1zmdc00012nufwpwp1th7\"\n    },\n    \"links\": {\n        \"process\": \"https://public-api.wp-umbrella.com/processes/cm4s1zmdc00012nufwpwp1th7\"\n    }\n}\n```\n\n- Status: 400 Invalid parameters\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"bad_params\",\n    \"message\": \"At least one optimization option must be enabled\"\n}\n```\n\n",
                    "method": "POST",
                    "header": [],
                    "url": {
                      "raw": "{{publicApiUrl}}/projects/{{projectId}}/database-optimization",
                      "host": [
                        "{{publicApiUrl}}"
                      ],
                      "path": [
                        "projects",
                        "{{projectId}}",
                        "database-optimization"
                      ],
                      "variable": []
                    },
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"auto_drafts\": true,\n  \"expired_transients\": true,\n  \"post_revisions\": true,\n  \"trashed_posts\": true\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                }
              ]
            },
            {
              "name": "Plugins",
              "description": "Endpoints for plugins",
              "item": [
                {
                  "name": "Retrieve plugins for a project",
                  "request": {
                    "description": "### This endpoint retrieves a list of plugins for a specific project.\n\n#### Request\n\n- Method: GET\n- URL: `/projects/{{projectId}}/plugins`\n\n#### Response\n\n- Status: 200 Success\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": [\n        {\n            \"id\": \"plugin123\",\n            \"name\": \"Example Plugin\",\n            \"key\": \"example-plugin/example-plugin.php\",\n            \"is_active\": true,\n            \"version\": \"2.1.0\",\n            \"require_wp_version\": \"5.8\",\n            \"require_php_version\": \"7.4\",\n            \"need_update\": {\n                \"id\": \"w.org/plugins/example-plugin\",\n                \"url\": \"https://wordpress.org/plugins/example-plugin/\",\n                \"slug\": \"example-plugin\",\n                \"plugin\": \"example-plugin/example-plugin.php\",\n                \"tested\": \"6.7.1\",\n                \"package\": \"https://downloads.wordpress.org/plugin/example-plugin.2.2.0.zip\",\n                \"new_version\": \"2.2.0\",\n                \"requires_php\": \"7.4\",\n                \"compatibility\": \"\"\n            }\n        },\n        {\n            \"id\": \"plugin456\",\n            \"name\": \"Another Plugin\",\n            \"key\": \"another-plugin/another-plugin.php\",\n            \"is_active\": false,\n            \"version\": \"1.5.0\",\n            \"require_wp_version\": \"5.6\",\n            \"require_php_version\": \"7.2\",\n            \"need_update\": {}\n        }\n    ],\n    \"links\": {\n        \"pagination\": {\n            \"first\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\",\n            \"last\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\"\n        }\n    }\n}\n```\n\n- Status: 400 Invalid parameters\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"bad_params\",\n    \"message\": \"\\\"sort\\\" must be one of [name]\"\n}\n```\n\n",
                    "method": "GET",
                    "header": [],
                    "url": {
                      "raw": "{{publicApiUrl}}/projects/{{projectId}}/plugins",
                      "host": [
                        "{{publicApiUrl}}"
                      ],
                      "path": [
                        "projects",
                        "{{projectId}}",
                        "plugins"
                      ],
                      "variable": []
                    }
                  }
                },
                {
                  "name": "Update plugins for a project",
                  "request": {
                    "description": "### This endpoint updates plugins for a specific project.\n\n#### Request\n\n- Method: POST\n- URL: `/projects/{{projectId}}/plugins/update`\n\n#### Body Parameters\n\n- `plugin_keys` (string[], required): - Array of plugin keys to update (required).\n- `update_type` (string, required): - Type of update to perform (QUICK_UPDATE or SAFE_UPDATE or ADVANCED_SAFE_UPDATE) (optional) - Default: QUICK_UPDATE.\n\n#### Response\n\n- Status: 200 Success\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": {\n        \"processId\": \"cm4s1zmdc00012nufwpwp1th7\"\n    },\n    \"links\": {\n        \"process\": \"https://public-api.wp-umbrella.com/processes/cm4s1zmdc00012nufwpwp1th7\"\n    }\n}\n```\n\n- Status: 400 Invalid parameters\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"bad_params\",\n    \"message\": \"\\\"plugin_keys\\\" is required\"\n}\n```\n\n- Status: 404 Not Found\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"not_found\",\n    \"message\": \"Plugins not found\"\n}\n```\n\n",
                    "method": "POST",
                    "header": [],
                    "url": {
                      "raw": "{{publicApiUrl}}/projects/{{projectId}}/plugins/update",
                      "host": [
                        "{{publicApiUrl}}"
                      ],
                      "path": [
                        "projects",
                        "{{projectId}}",
                        "plugins",
                        "update"
                      ],
                      "variable": []
                    },
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"plugin_keys\": [\n    \"wp-seopress/seopress.php\",\n    \"wp-health/wp-health.php\"\n  ],\n  \"clear_cache\": false\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                }
              ]
            },
            {
              "name": "Tasks",
              "description": "Endpoints for tasks",
              "item": [
                {
                  "name": "Retrieve tasks for a project",
                  "request": {
                    "description": "### This endpoint retrieves a list of tasks for a specific project.\n\n#### Request\n\n- Method: GET\n- URL: `/projects/{{projectId}}/tasks`\n\n#### Query Parameters\n\n- `types` (string[], optional): - UPDATE_PLUGIN - Update a plugin\n    - UPDATE_THEME - Update a theme\n    - UPDATE_CORE - Update WordPress core\n    - ACTIVATE_PLUGIN - Activate a plugin\n    - DEACTIVATE_PLUGIN - Deactivate a plugin\n    - DELETE_PLUGIN - Delete a plugin\n    - DELETE_THEME - Delete a theme\n    - OPTIMIZE_DATABASE - Optimize database.\n- `from` (number, optional): .\n- `to` (number, optional): @response 200 Success\n```json\n{\n\"code\": \"success\",\n\"data\": [\n{\n\"id\": \"task123\",\n\"type\": \"UPDATE_PLUGIN\",\n\"code\": \"success\",\n\"entities\": {\n\"id\": \"plugin123\",\n\"name\": \"Example Plugin\",\n\"plugin\": \"example-plugin/example-plugin.php\",\n\"version\": \"2.0.0\",\n\"is_active\": true,\n\"old_version\": \"1.9.0\",\n\"update_type\": \"QUICK_UPDATE\"\n},\n\"entities_result\": {\n\"status_code\": 200,\n\"visual_regression\": {\n\"diff_percent\": 0.5,\n\"mainProcessTaskScreenshotId\": \"screenshot123\",\n\"compareProcessTaskScreenshotId\": \"screenshot456\"\n}\n},\n\"created_at\": \"2024-01-01T12:00:00.000Z\"\n}\n],\n\"links\": {\n\"pagination\": {\n\"first\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\",\n\"last\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\"\n}\n}\n}\n```.\n\n#### Response\n\n- Status: 200 Success\n\n- Content-Type: application/json\n\nExample Response Body:\n\n```json\n{\n    \"code\": \"success\",\n    \"data\": [\n        {\n            \"id\": \"task123\",\n            \"type\": \"UPDATE_PLUGIN\",\n            \"code\": \"success\",\n            \"entities\": {\n                \"id\": \"plugin123\",\n                \"name\": \"Example Plugin\",\n                \"plugin\": \"example-plugin/example-plugin.php\",\n                \"version\": \"2.0.0\",\n                \"is_active\": true,\n                \"old_version\": \"1.9.0\",\n                \"update_type\": \"QUICK_UPDATE\"\n            },\n            \"entities_result\": {\n                \"status_code\": 200,\n                \"visual_regression\": {\n                    \"diff_percent\": 0.5,\n                    \"mainProcessTaskScreenshotId\": \"screenshot123\",\n                    \"compareProcessTaskScreenshotId\": \"screenshot456\"\n                }\n            },\n            \"created_at\": \"2024-01-01T12:00:00.000Z\"\n        }\n    ],\n    \"links\": {\n        \"pagination\": {\n            \"first\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\",\n            \"last\": \"https://public-api.wp-umbrella.com?page=1&per_page=10\"\n        }\n    }\n}\n```\n\n",
                    "method": "GET",
                    "header": [],
                    "url": {
                      "raw": "{{publicApiUrl}}/projects/{{projectId}}/tasks",
                      "host": [
                        "{{publicApiUrl}}"
                      ],
                      "path": [
                        "projects",
                        "{{projectId}}",
                        "tasks"
                      ],
                      "variable": []
                    }
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "customerId",
      "value": "1",
      "type": "string"
    },
    {
      "key": "processId",
      "value": "1",
      "type": "string"
    },
    {
      "key": "publicApiUrl",
      "value": "https://public-api.wp-umbrella.com",
      "type": "string"
    },
    {
      "key": "accessToken",
      "value": "myToken",
      "type": "string"
    },
    {
      "key": "projectId",
      "value": "1",
      "type": "string"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{accessToken}}",
        "type": "string"
      }
    ]
  }
}