{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":488,"path":"api-reference/rest-apis/cicd-api.md","title":"Continuous Integration/Continuous Delivery \\(CICD\\) API","bundle":null,"doc_type":null,"release":"australia","body":"\n# Continuous Integration/Continuous Delivery \\(CICD\\) API\n\nThe CICD API provides endpoints that enable integration with common DevOps tools for building pipelines. These tools include Jenkins, Azure Pipelines, GitLab, GitHub Actions, Atlassian Bamboo/Pipelines, and more.\n\nIt provides integrators with the ability to build CICD pipelines for ServiceNow AI Platform applications driven by pull/merge request workflows typical in source-driven development. It leverages the Source Control, Application Repository, and Automated Test Framework features.\n\nThe CI/CD API provides the following product and feature areas:\n\n-   Source control\n\n    Apply remote changes for an application linked to a remote Git repository through the Source Control feature in Studio, on a specific instance.\n\n    Imports an application using the specified repository URL and branch name.\n\n-   Application repository: Available for scoped applications, global application, application customizations for scoped applications on the ServiceNow Store, and through plugins.\n    -   Publish an application from an instance to the connected application repository.\n    -   Install an application onto an instance from the connected application repository.\n    -   Rollback an application that was installed through rollback context.\n-   Batch\n    -   Define a JSON manifest file to batch install multiple applications together.\n    -   Rollback the entire batch install through rollback context.\n    -   Returns the results of a batch install based on a specified result identifier.\n-   Plugins\n    -   Activate a plugin.\n    -   Rollback a plugin through rollback context.\n-   Automated Test Framework \\(ATF\\)\n    -   Start an ATF test suite.\n    -   Obtain the pass/fail result of an ATF test suite.\n-   Instance scan\n    -   Start an instance scan \\(full, point scan on table, point scan on record, scoped application, update set, combination of these items.\\)\n    -   Obtain the pass/fail result of an instance scan run.\n-   Progress\n\n    Obtain the percentage completion on an instance for processes initiated by other endpoint calls. You can use this feature to poll until progress completion before proceeding with the next step.\n\n\nThis API uses an asynchronous response model. When you call an endpoint, such as to run a test suite /sn\\_cicd/testsuite/run, the endpoint kicks off the associated function, such as starting the execution of the test suite. The endpoint then returns a response message that contains the execution status of the requested function, typically `Pending`, along with a unique identifier and link. Use this information to obtain additional information about the progress, source, results, and/or findings of the request. Depending on the function request, you can use one of the following means to obtain additional information about a request:\n\n-   Call the /sn\\_cicd/progress/\\{progress\\_id\\} endpoint using the **links.progress.id** parameter returned by the initiating endpoint.\n-   Call the /sn\\_cicd/testsuite/results/\\{result\\_id\\} endpoint using the **links.result.id** parameter returned by the initiating endpoint.\n-   Call the /sn\\_cicd/instance\\_scan/result/\\{progress\\_id\\} endpoint using the **links.progress.id** parameter returned by the initiating endpoint.\n-   Call the /sn\\_cicd/sc/apply\\_stash/\\{stash\\_id\\} endpoint using the **links.stash.id** parameter returned by the/sn\\_cicd/progress/\\{progress\\_id\\} endpoint.\n-   Link out to the **links.&lt;progress/result/source/findings&gt;.url** parameter returned by the initiating endpoint.\n\n**Note:** To install an application from a repository, the application must first be published to the repository using the /sn\\_cicd/app\\_repo/publish endpoint. Once published, any instance connected to that repository can then install and rollback the application. If the application is not first published, the installation request fails.\n\nThe sn\\_cicd.sys\\_ci\\_automation or admin role is required to use this API.\n\nBeginning in Tokyo, the CICD API endpoints that need to obtain the **instance wide lock / mutex** to perform their requested operation will use a queue, rather than rejecting requests while the **instance wide lock / mutex** is occupied. Multiple CICD pipelines simultaneously make requests without detecting the rejection and retrying, and instead, can simply monitor the progress as they would for successful requests previously. This behavior is on by default.\n\nThe current queue can be inspected by a user with the admin role by navigating to the **System Diagnostic** **-&gt;Application Operation Queue**. From here the queue can be paused and resumed by the admin to allow for other manual operations that may require the **instance wide lock / mutex**.\n\n**Note:** When paused, any in progress operation will run to completion but no new operation will be started. The API will continue to accept and queue new requests. A pending operation can also be cancelled before it begins running by updating the listed execution tracker to a cancelled state. If for whatever reason, an operation cannot proceed after the time out specified in com.glide.update\\_operation.job\\_cancel\\_timeout\\_minutes \\(default: 48 hours\\), it will be cancelled.\n\nWhen an upgrade is scheduled, the queue will go into an upgrade paused state two hours prior to the upgrade unless overridden by the property com.glide.update\\_operation.queue\\_upgrade\\_window. This allows for any in progress operation to complete before the upgrade commences.\n\n**Note:** The queue automatically resumes when the upgrade is completed.\n\nFor additional information on CICD, see:\n\n-   [Continuous Integration and Continuous Delivery \\(CICD\\) Spoke](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/integrate-applications/cicd-spoke.md)\n-   [https://plugins.jenkins.io/servicenow-cicd/](https://plugins.jenkins.io/servicenow-cicd/)\n-   [https://marketplace.visualstudio.com/items?itemName=ServiceNow.vss-services-servicenow-cicd](https://marketplace.visualstudio.com/items?itemName=ServiceNow.vss-services-servicenow-cicd)\n-   [https://github.com/marketplace?type=actions&amp;query=servicenow](https://github.com/marketplace?type=actions&query=servicenow)\n-   [https://hub.docker.com/r/servicenowdevx/sncicd-gitlab-docker](https://hub.docker.com/r/servicenowdevx/sncicd-gitlab-docker)\n\n**Parent Topic:**[REST API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/api-rest.md)\n\n## CI/CD - GET /sn\\_cicd/app/batch/results/\\{result\\_id\\}\n\nReturns the results of a batch install based on a specified result identifier.\n\nCall this method after calling the /sn\\_cicd/app/batch/install endpoint to obtain the results of the batch install. Use the value returned in the **links.results.id** parameter of the return results of /sn\\_cicd/app/batch/install endpoint as the **result\\_id** for this endpoint. You can also call the /api/sn\\_cicd/progress/\\{progress\\_id\\} endpoint to obtain information on the progress of the installation if it has not yet completed.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/app/batch/results/{result_id}`\n\nDefault URL: `/api/sn_cicd/app/batch/results/{result_id}`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\nresult\\_id\n\n</td><td>\n\nSys\\_id of the batch installation for which to return results information. This value is returned in the **links.results.id** parameter of the /sn\\_cicd/app/batch/install endpoint.Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items\n\n</td><td>\n\nJSON array, where each object provides details of a package installation.Data type: Array\n\n ```\n\"batch_items\" [{\n  \"customization_version\": \"String\",\n  \"id\": \"String\",\n  \"install_date\": \"String\",\n  \"name\": \"String\",\n  \"notes\": \"String\",\n  \"state\": \"String\",\n  \"status_message\": \"String\",\n  \"type\": \"String\",\n  \"url\": \"String\",\n  \"version\": \"String\" \n}]\n```\n\n</td></tr><tr><td>\n\nbatch\\_items.customization\\_version\n\n</td><td>\n\nOnly applicable when the **batch\\_items.type** parameter is set to application or plugin and the **requested\\_customization\\_version** parameter is passed in the batch install request. Version of the store application or scoped ServiceNow plugin customization package to install, such as 1.0.2 or 2.3.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items.id\n\n</td><td>\n\nSys\\_id of the application or identifier of the plugin to install. Same as the **packages.id** parameter in the initiating /sn\\_cicd/app/batch/install endpoint call.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items.install\\_date\n\n</td><td>\n\nDate and time that the package was installed. Empty if the request is still in progress.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items.name\n\n</td><td>\n\nName of the package.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items.notes\n\n</td><td>\n\nUser specified notes about the package. Same as the **packages.notes** parameter in the initiating /sn\\_cicd/app/batch/install endpoint call. Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items.state\n\n</td><td>\n\nCurrent state of the associated package installation.Possible values:\n\n-   Failed\n-   In progress\n-   Installed\n-   Invalid\n-   Ready\n-   Rolled Back\n\n Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items.status\\_message\n\n</td><td>\n\nDescribes any errors that occurred during the installation of the package and/or customizations.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items.type\n\n</td><td>\n\nType of application. Same as the **packages.type** parameter in the initiating /sn\\_cicd/app/batch/install endpoint call.Valid values:\n\n-   application\n-   plugin\n\n Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items.url\n\n</td><td>\n\nURL of the associated package installation record on your ServiceNow instance.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_items.version\n\n</td><td>\n\nVersion of the package to install, such as 1.0.2 or 2.3. Same as the **packages.requested\\_version** parameter in the initiating /sn\\_cicd/app/batch/install endpoint call.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_plan\n\n</td><td>\n\nDescribes the installation batch plan.Data type: Object\n\n ```\n\"batch_plan\": {\n  \"id\": \"String\",\n  \"name\": \"String\",\n  \"notes\": \"String\",\n  \"state\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nbatch\\_plan.id\n\n</td><td>\n\nSys\\_id of the return results information. Same value as what was passed in the **result\\_id** request parameter.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_plan.name\n\n</td><td>\n\nUser specified descriptive name for this batch request. Same as the **name** parameter in the initiating /sn\\_cicd/app/batch/install endpoint call.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_plan.notes\n\n</td><td>\n\nNotes that were passed in when the batch install was invoked. Same as the **notes** parameter in the initiating /sn\\_cicd/app/batch/install endpoint call.Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_plan.state\n\n</td><td>\n\nCurrent state of the overall batch installation.Possible values:\n\n-   Failed\n-   In progress\n-   Installed\n-   Invalid\n-   Partial Install\n-   Ready\n-   Rolled Back\n\n Data type: String\n\n</td></tr><tr><td>\n\nbatch\\_plan.url\n\n</td><td>\n\nURL of the batch installation plan record on your ServiceNow instance.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example checks the status of a batch installation plan called Release 2.0 IT Operations.\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/app/batch/results/df24b1e9db2d0110b5e3f6c5ae97c561 \\\n--request GET \\\n--header 'Accept: application/json' \\\n--user 'username':'password' \n```\n\n```\n{\n\"result\": {\n  \"batch_plan\": {\n    \"name\":“Release 2.0 IT Operations”,\n    \"id\": \"df24b1e9db2d0110b5e3f6c5ae97c561\",\n    \"url\": \"https://instance.service-now.com/sys_batch_install_plan.do?sys_id=df24b1e9db2d0110b5e3f6c5ae97c561\",\n    \"state\": \"Installed\",\n    \"notes\": \"User specified notes for batch install plan\",\n  }\n  \"batch_items\": [\n    {\n      \"name\": \"com.sn_cicd_spoke\",\n      \"type\": \"Application\",\n      \"version\": \"7.0.0\",\n      \"state\": \"Installed\",\n      \"install_date\": \"2020-08-31 15:30:01\",\n      \"id\": \"c159b1e9db1c0010b5e3f6c5ae961903\",\n      \"url\":\"https://instance.service-now.com/sys_batch_install_item.do?sys_id=c159b1e9db1c0010b5e3f6c5ae961903\",\n      \"notes\" : \"\"\n    },\n    {\n      \"name\": \"Customization for CSM App1\",\n      \"type\": \"Application\",\n      \"version\": \"1.0.0\",\n      \"state\": \"Installed\",\n      \"install_date\": \"2020-08-31 15:32:01\",\n      \"id\": \"e824b1e9db2d1001b5e3f6c5ae97d628\",\n      \"url\": \"https://instance.service-now.com/sys_batch_install_item.do?sys_id=e824b1e9db2d1001b5e3f6c5ae97d628\",\n      \"notes\": \"Customized headers.\",\n      \"customization_version\": \"2.1.1”,\n      \"status_message\": \"\"\n\n    }]\n  }\n}\n\n```\n\n## CI/CD - GET /sn\\_cicd/instance\\_scan/result/\\{progress\\_id\\}\n\nReturns the current progress and status of the CI/CD instance scan function associated with a passed-in progress ID. Call this method after calling one of the other instance scan CI/CD endpoints such as /sn\\_cicd/instance\\_scan/full\\_scan or /sn\\_cicd/instance\\_scan/point\\_scan.\n\n**Note:** This endpoint is part of the CICD Instance Scan Execution Service API and is used under the `sn_cicd` namespace.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/instance_scan/result/{progress_id}`\n\nDefault URL: `/api/sn_cicd/instance_scan/result/{progress_id}`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_request_parameters\"><thead><tr><th>\n\nParameter\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td>\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\nprogress\\_id\n\n</td><td>\n\nUnique identifier of the function for which to return progress information. This value is returned in the **links.progress.id** parameter of the endpoint that initiated the action, such as /sn\\_cicd/instance\\_scan/full\\_scan or /sn\\_cicd/instance\\_scan/point\\_scan.Data type: String\n\n</td></tr></tbody>\n</table>### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Request body\n\nThe API accepts these JSON or XML elements in the request body.\n\n|Element|Description|\n|-------|-----------|\n|None| |\n\n### Response body\n\nThe API returns these JSON or XML elements in the response body.\n\n<table id=\"table_mc1_pr1_tx\"><thead><tr><th>\n\nElement\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nerror\n\n</td><td id=\"entry-error\">\n\nError message with details about the error.Data type: String\n\n</td></tr><tr><td>\n\nlinks\n\n</td><td id=\"entry-link\">\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr><td>\n\nlinks.findings\n\n</td><td>\n\nObject that contains information about the instance scan findings.\n\n</td></tr><tr><td>\n\nlinks.findings.label\n\n</td><td>\n\nAdditional information about the instance scan findings.\n\n</td></tr><tr><td>\n\nlinks.findings.url\n\n</td><td>\n\nURL to use to retrieve a list of records that violated the checks.\n\n</td></tr><tr><td>\n\nlinks.progress\n\n</td><td id=\"entry-links_progress\">\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress.id\n\n</td><td>\n\nUnique identifier of the progress detail.\n\n</td></tr><tr><td>\n\nlinks.progress.url\n\n</td><td id=\"entry-progress_url\">\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr><td>\n\nlinks.results\n\n</td><td id=\"entry-links_results\">\n\nID and URL of the execution results.Data type: Object\n\n```\n\"results\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nlinks.results.id\n\n</td><td id=\"entry-links_results_id\">\n\nSys\\_id of the instance scan results record.\n\n</td></tr><tr><td>\n\nlinks.results.url\n\n</td><td id=\"entry-links_results_url\">\n\nURL to use to obtain the results of the instance scan.\n\n</td></tr><tr><td>\n\nstatus\n\n</td><td id=\"entry-status\">\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_detail\n\n</td><td id=\"entry-status_detail\">\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr><td>\n\nstatus\\_label\n\n</td><td id=\"entry-status_label\">\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_message\n\n</td><td id=\"entry-healthscan_status_message\">\n\nAdditional information about why the operation failed. Returns an empty string if the operation is successful.Data type: String\n\n</td></tr></tbody>\n</table>### Sample cURL request\n\n```\ncurl 'instance.service-now.com/api/sn_cicd/instance_scan/result/a74c70a11b7800103d374087bc4bcb28' \\\n--request GET \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n    \"result\": {\n        \"links\": {\n            \"findings\": {\n                \"url\": \"https://instance.service-now.com/api/now/table/scan_finding?sysparm_query%3Dresult%3D6f4cf8651b7800103d374087bc4bcb41%5EORDERBYsys_id\",\n                \"label\": \"First 10,000 findings\"\n            },\n            \"progress\": {\n                \"id\": \"a74c70a11b7800103d374087bc4bcb28\",\n                \"url\": \"https://instance.service-now.com/api/sn_cicd/progress/a74c70a11b7800103d374087bc4bcb28\"\n            },\n            \"results\": {\n                \"id\": \"a74c70a11b7800103d374087bc4bcb28\",\n                \"url\": \"https://instance.service-now.com/api/sn_cicd/instance_scan/result/a74c70a11b7800103d374087bc4bcb28\"\n            }\n        },\n        \"status\": \"2\",\n        \"status_label\": \"Successful\",\n        \"status_message\": \"\",\n        \"status_detail\": \"\",\n        \"error\": \"\"\n    }\n}\n```\n\n## CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}\n\nReturns the current progress and status of the Continuous Integration and Continuous Delivery \\(CICD\\) function associated with a specified progress ID.\n\nCall this method after calling one of the asynchronous CICD endpoints such as /sn\\_cicd/app\\_repo/publish, /sn\\_cicd/app\\_repo/install, /sn\\_cicd/testsuite/run, or /sn\\_cicd/sc/apply\\_stash.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/progress/{progress_id}`\n\nDefault URL: `/api/sn_cicd/progress/{progress_id}`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\nprogress\\_id\n\n</td><td>\n\nUnique identifier of the function for which to return progress information. This value is returned in the **links.progress.id** parameter of the endpoint that initiated the action, such as /sn\\_cicd/app\\_repo/publish, /sn\\_cicd/app\\_repo/install, /sn\\_cicd/testsuite/run, or /sn\\_cicd/sc/apply\\_stash.\n\nData type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|409|Conflict. The requested item isn’t unique.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-links_results\"><td>\n\nlinks.results\n\n</td><td>\n\nID and URL of the execution results.Data type: Object\n\n```\n\"results\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_results_id\"><td>\n\nlinks.results.id\n\n</td><td>\n\nSys\\_id of the results information. Use this value when calling the associated results endpoint.Data type: String\n\n</td></tr><tr id=\"row-links_results_url\"><td>\n\nlinks.results.url\n\n</td><td>\n\nURL to use to obtain the results of the endpoint execution.Data type: String\n\n</td></tr><tr id=\"row-links_source\"><td>\n\nlinks.source\n\n</td><td>\n\nSys\\_id and URL information about the source record in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: Object\n\n```\n\"source\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_source_id\"><td>\n\nlinks.source.id\n\n</td><td>\n\nUnique identifier of the source record.Table: Execution Tracker \\[sys\\_execution\\_tracker\\] table\n\nData type: String\n\n</td></tr><tr id=\"row-links_source_url\"><td>\n\nlinks.source.url\n\n</td><td>\n\nURL to use to obtain the source information in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr><td>\n\nlinks.stash\n\n</td><td>\n\nIf a was created during an [apply\\_changes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md) operation, this object contains information about the stash. This object is not returned if a stash wasn’t created. Data type: Object\n\n ```\n\"stash\": { \n \"id\": \"String\",\n \"url\": \"String\"\n} \n```\n\n</td></tr><tr><td>\n\nlinks.stash.id\n\n</td><td>\n\nUnique identifier of the created stash. Use this value when calling the [CI/CD - POST /sn\\_cicd/sc/apply\\_stash/\\{stash\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md) endpoint to apply the stash.Data type: String\n\n</td></tr><tr><td>\n\nlinks.stash.url\n\n</td><td>\n\nURL of the associated stash. Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### Obtain the progress of a test suite run\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/progress/a4fae8911bdc00103d374087bc4bcbbd' \\\n--request GET \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\nProgress of the apply changes call.\n\n```\n{\n    \"result\": {\n        \"links\": {\n            \"progress\": {\n                \"id\": \"a4fae8911bdc00103d374087bc4bcbbd\",\n                \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/a4fae8911bdc00103d374087bc4bcbbd\"\n            },\n            \"source\": {\n                \"id\": \"59c4c4d11b5c00103d374087bc4bcb26\",\n                \"url\": \"https://instance.servicenow.com/api/now/table/sys_app/59c4c4d11b5c00103d374087bc4bcb26\"\n            }\n        },\n        \"status\": \"2\",\n        \"status_label\": \"Successful\",\n        \"status_message\": \"This operation succeeded\",\n        \"status_detail\": \"Successfully applied commit 1f14e11a7dedcbfa194beb5875fcdaa15ed8accb from source control\",\n        \"error\": \"\",\n        \"percent_complete\": 100\n    }\n}\n```\n\n### Obtain the progress of an apply changes call. In this case, there were unsaved/uncommitted changes on the instance in Studio, so a stash was created to hold the unsaved changes\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/progress/a4fae8911bdc00103d374087bc4bcbbd' \\\n--request GET \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\nProgress providing information on the created stash.\n\n```\n{\n\"result\": {\n   \"links\": {\n      \"progress\": {\n         \"id\": \"5b12eca4e0429110f8771827f8fd36a4\",\n         \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/5b12eca4e0429110f8771827f8fd36a4\"\n       },\n       \"stash\": {\n         \"id\": \"fc2224e4e0429110f8771827f8fd3634\",\n         \"url\": \"https://instance.servicenow.com/api/sn_cicd/sc/apply_stash/fc2224e4e0429110f8771827f8fd3634\"\n}\n    },\n    \"status\": \"2\",\n    \"status_label\": \"Successful\",\n    \"status_message\": \"This operation succeeded\",\n    \"status_detail\": \"Successfully applied commit fa5626f6f1f7fef677c16b4a0dd8b22ba8a6e311 from source control\",\n    \"error\": \"\",\n    \"percent_complete\": 100\n  }\n}\n```\n\n### cURL request\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/progress/5b12eca4e0429110f8771827f8fd36a4' \\\n--request GET \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\nProgress of a test suite run \\(/sn\\_cicd/testsuite/run\\).\n\n```\n{\n\"result\": {\n   \"links\": {\n      \"progress\": {\n         \"id\": \"e891389d1b1040103d374087bc4bcb75\",\n         \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/e891389d1b1040103d374087bc4bcb75\"\n       },\n       \"results\": {\n         \"id\": \"2891389d1b1040103d374087bc4bcb09\",\n         \"url\": \"https://instance.servicenow.com/api/sn_cicd/testsuite/results/2891389d1b1040103d374087bc4bcb09\"\n       }\n    },\n    \"status\": \"2\",\n    \"status_label\": \"Successful\",\n    \"status_message\": \"Suite passed\",\n    \"status_detail\": \"Suite passed\",\n    \"error\": \"\",\n    \"percent_complete\": 100\n  }\n}\n```\n\n## CI/CD - GET /sn\\_cicd/testsuite/results/\\{result\\_id\\}\n\nReturns the results of a test suite run based on a specified results identifier.\n\nCall this endpoint after calling /sn\\_cicd/progress/\\{progress\\_id\\} to obtain the result of the executed test suite.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/testsuite/results/{result_id}`\n\nDefault URL: `/api/sn_cicd/testsuite/results/{result_id}`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\nresult\\_id\n\n</td><td>\n\nUnique identifier of the test suite results to retrieve. The corresponding /sn\\_cicd/progress/\\{progress\\_id\\} endpoint call returns this information.Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|409|Conflict. The requested item isn’t unique.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nchild\\_suite\\_results\n\n</td><td>\n\nResults of nested test suites. The format of this content is the same as the parent test.\n\n</td></tr><tr id=\"row-error\"><td>\n\nerror\n\n</td><td id=\"entry-error\">\n\nError message.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td id=\"entry-link\">\n\nObject that contains all links and sys\\_ids associated with the response.Data type: Object\n\n</td></tr><tr id=\"row-links_results\"><td>\n\nlinks.results\n\n</td><td id=\"entry-links_results\">\n\nObject that contains the results information.Data type: Object\n\n</td></tr><tr id=\"row-links_results_id\"><td>\n\nlinks.results.id\n\n</td><td id=\"entry-links_results_id\">\n\nUnique identifier of the results information. Use this value when calling the endpoint /sn\\_cicd/testsuite/results/\\{result\\_id\\}.Data type: String\n\n</td></tr><tr id=\"row-links_results_url\"><td>\n\nlinks.results.url\n\n</td><td id=\"entry-links_results_url\">\n\nURL to use to obtain the results of the endpoint execution, such as results.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td id=\"entry-percent_complete\">\n\nPercentage of the request that is complete.\n\n</td></tr><tr><td>\n\nrolledup\\_test\\_error\\_count\n\n</td><td>\n\nNumber of tests with errors.Data type: Number\n\n</td></tr><tr><td>\n\nrolledup\\_test\\_failure\\_count\n\n</td><td>\n\nNumber of tests that failed.Data type: Number\n\n</td></tr><tr><td>\n\nrolledup\\_test\\_skip\\_count\n\n</td><td>\n\nNumber of tests that were skipped.Data type: Number\n\n</td></tr><tr><td>\n\nrolledup\\_test\\_success\\_count\n\n</td><td>\n\nNumber of tests that ran successfully.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td id=\"entry-status\">\n\nNumeric execution state. Used with **status\\_label**, such as 0: Pending.Values:\n\n-   0 \\(Pending\\)\n-   1 \\(Running\\)\n-   2 \\(Successful\\)\n-   3 \\(Failed\\)\n-   4 \\(Canceled\\)\n\n Data type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td id=\"entry-status_detail\">\n\nAdditional information about the current state.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td id=\"entry-status_label\">\n\nExecution state description. Used with **status**, such as 0: Pending.Values:\n\n-   Pending\n-   Running\n-   Successful\n-   Failed\n-   Canceled\n\n Data type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td id=\"entry-status_message\">\n\nDescription of the current state.Data type: String\n\n</td></tr><tr><td>\n\ntest\\_suite\\_duration\n\n</td><td>\n\nAmount of time that it took to execute the test suite.Unit: Seconds\n\n Data type: String\n\n</td></tr><tr><td>\n\ntest\\_suite\\_name\n\n</td><td>\n\nName of the test suite.Data type: String\n\n</td></tr><tr><td>\n\ntest\\_suite\\_status\n\n</td><td>\n\nState of the test suite.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/testsuite/results/2891389d1b1040103d374087bc4bcb09' \\\n--request GET \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n       \"results\": {\n           \"id\": \"2891389d1b1040103d374087bc4bcb09\",\n           \"url\": \"https://instance.servicenow.com/sys_atf_test_suite_result.do?sys_id=2891389d1b1040103d374087bc4bcb09\"\n       }\n   },\n   \"status\": \"2\",\n   \"status_label\": \"Successful\",\n   \"status_message\": \"\",\n   \"status_detail\": \"\",\n   \"error\": \"\",\n   \"test_suite_status\": \"success\",\n   \"test_suite_duration\": \"1 Second\",\n   \"rolledup_test_success_count\": 1,\n   \"rolledup_test_failure_count\": 0,\n   \"rolledup_test_error_count\": 0,\n   \"rolledup_test_skip_count\": 0,\n   \"test_suite_name\": \"Quick Test\",\n   \"child_suite_results\": []\n }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/app/batch/install\n\nInstalls two or more packages in a single specified batch.\n\nA batch can contain any combination of the following types:\n\n-   Application:\n    -   Scoped applications in the ServiceNow Store that are not owned by your company\n    -   Scoped or global applications in the application repository that are owned by your company\n    -   Your application customizations for Store applications in the application repository\n-   ServiceNow plugin:\n\n    Application customizations for scoped applications that were packaged in a plugin and were published to the application repository.\n\n\n**Note:** This endpoint uses an asynchronous response model. When you call an endpoint, it kicks off the associated function, such as starting the execution of the batch install plan. The endpoint then returns a response message that contains the execution status of the requested function, typically Pending, along with a unique identifier and link. Use this information to obtain additional information about the progress or results of the request.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/app/batch/install`\n\nDefault URL: `/api/sn_cicd/app/batch/install`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n<table class=\"rest_api_request_body\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nname\n\n</td><td>\n\nRequired. User specified descriptive name for this batch request. Data type: String\n\n</td></tr><tr><td>\n\nnotes\n\n</td><td>\n\nUser specified additional notes about the batch install plan.Data type: String\n\n Default: Null\n\n</td></tr><tr><td>\n\npackages\n\n</td><td>\n\nRequired. JSON array, where each object specifies details of a package to install.Data type: Array\n\n ```\n\"packages\": [{\n  \"id\": \"String\",\n  \"load_demo_data\": Boolean,\n  \"notes\": \"String\",\n  \"requested_customization_version\": \"String\",\n  \"requested_version\": \"String\",\n  \"type\": \"String\" \n}]\n```\n\n</td></tr><tr><td>\n\npackages.id\n\n</td><td>\n\nRequired. Sys\\_id of the application or identifier of the plugin to install.Data type: String\n\n</td></tr><tr><td>\n\npackages.load\\_demo\\_data\n\n</td><td>\n\nFlag that indicates whether demo data is loaded when installing the package.Valid values:\n\n-   true: Demo data should be loaded.\n-   false: Demo data should not be loaded.\n\n Data type: Boolean\n\n Default: false\n\n</td></tr><tr><td>\n\npackages.notes\n\n</td><td>\n\nUser specified notes about the package.Data type: String\n\n Default: Null\n\n</td></tr><tr><td>\n\npackages.requested\\_customization\\_version\n\n</td><td>\n\nVersion of the application customization to the store application or to the scoped ServiceNow plugin to install, such as 1.0.2 or 2.3. Data type: String\n\n Default: None. If this parameter is not set, then the system does not look for customizations for the application.\n\n</td></tr><tr><td>\n\npackages.requested\\_version\n\n</td><td>\n\nRequired if **packages.type** is set to application; ignored if set to plugin. Version of the package to install, such as 1.0.2 or 2.3.Data type: String\n\n</td></tr><tr><td>\n\npackages.type\n\n</td><td>\n\nRequired. Type of package.Valid values:\n\n-   application\n-   plugin\n\n Data type: String\n\n</td></tr></tbody>\n</table>### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|405|Invalid method. The functionality is disabled.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nAll links and sys\\_ids associated with the response.Data type: Object\n\n ```\n\"links\": {\n  \"progress\": {Object},\n  \"results\": {Object},\n  \"rollback\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr><td>\n\nlinks.results\n\n</td><td>\n\nDescribes the results link information.Data type: Object\n\n ```\n\"results\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nlinks.results.id\n\n</td><td>\n\nSys\\_id of the results of the batch endpoint call. Use this value when calling the endpoint specified in **links.results.url** to query the batch install results.Data type: String\n\n</td></tr><tr><td>\n\nlinks.results.url\n\n</td><td>\n\nURL to use to retrieve the results of the batch install.Data type: String\n\n</td></tr><tr><td>\n\nlinks.rollback\n\n</td><td>\n\nDescribes the batch install rollback information.Data type: Object\n\n ```\n\"rollback\": {\n  \"id\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nlinks.rollback.id\n\n</td><td>\n\nSys\\_id of the rollback details for the installed packages. Use this parameter to rollback the installation of the specified packages to their previous versions using the /sn\\_cicd/app/batch/rollback/\\{rollback\\_id\\} endpoint.**Note:** The rollback capability is only available after the installation is complete.\n\n Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example initiates a batch installation called Release 2.2 Deployment that contains three packages \\(one of each type\\) to install.\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/app/batch/install \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password' \\\n--data { \"name\": \"Release 2.2 Deployment\",\n \"packages\": [\n   {\n     \"id\": \"syd_id_abcefghi\",\n     \"type\": \"application\",\n     \"load_demo_data\": false,\n     \"requested_version\": \"1.0.2\",\n     \"notes\": \"User specific text to describe this application install\"\n   },\n   { \n     \"id\": \"syd_id_defabcde\",\n     \"type\": \"application\",\n     \"requested_version\": \"1.0.0\",\n     \"requested_customization_version\": \"2.0.7\",\n     \"notes\": \"Customization for CSM App1\"\n   },\n   {\n     \"id\": \"com.glide.some.plugin\",\n     \"type\": \"plugin\",\n     \"load_demo_data\": true,\n     \"notes\": \"Plugin related notes\"\n   }]\n }\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n     \"progress\": {\n       \"id\": \"c159b1e9db1c0010b5e3f6c5ae961903\",\n       \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/c159b1e9db1c0010b5e3f6c5ae961903\"\n     },\n     \"results\": {\n       \"id\": \"df24b1e9db2d0110b5e3f6c5ae97c561\",\n       \"url\": \"https://instance.servicenow.com/api/sn_cicd/app/batch/results/df24b1e9db2d0110b5e3f6c5ae97c561\"\n     },\n     \"rollback\":{\n       \"id\": \"a329f82e871da64c724ba21c82a764f2\"\n     },\n   },\n   \"status\": \"0\",\n   \"status_label\": \"Pending\",\n   \"status_message\": \"\",\n   \"status_detail\": \"\",\n   \"error\": \"\",\n   \"percent_complete\": 0\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/app/batch/rollback/\\{rollback\\_id\\}\n\nRolls back all of the packages associated with a specific batch installation to their previous versions.\n\nThis endpoint works in conjunction with the /sn\\_cicd/app/batch/install endpoint. The **rollback\\_id** is provided in the return results of this endpoint. When this endpoint is called, it rolls back all packages specified in the associated install; you cannot rollback individual packages. If there is no previous version, the endpoint uninstalls the associated package.\n\n**Note:** This endpoint uses an asynchronous response model. When you call an endpoint, it kicks off the associated function, such as starting the execution of the batch install plan. The endpoint then returns a response message that contains the execution status of the requested function, typically Pending, along with a unique identifier and link. Use this information to obtain additional information about the progress or results of the request.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/app/batch/rollback/{rollback_id}`\n\nDefault URL: `/api/sn_cicd/app/batch/rollback/{rollback_id}`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\nrollback\\_id\n\n</td><td>\n\nSys\\_id of the batch installation plan for which to rollback the installed packages to their previous versions. This value is returned in the **links.rollback.id** parameter of the /sn\\_cicd/app/batch/install endpoint.Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nAll links and sys\\_ids associated with the response.Data type: Object\n\n ```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example rolls back all the packages within the specified installation batch plan to their previous version.\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/app/batch/rollback/a329f82e871da64c724ba21c82a764f2 \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n     \"progress\": {\n       \"id\": \"c159b1e9db1c0010b5e3f6c5ae961903\",\n       \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/c159b1e9db1c0010b5e3f6c5ae961903\"\n     },\n   \"status\": \"0\",\n   \"status_label\": \"Pending\",\n   \"status_message\": \"\",\n   \"status_detail\": \"\",\n   \"error\": \"\",\n   \"percent_complete\": 0\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/app\\_repo/install\n\nInstalls the specified application from the application repository onto the instance making the endpoint call.\n\nUsing this endpoint you are able to install both unaltered and customized ServiceNow base system and ServiceNow Store applications, customized ServiceNow plugins, and your own ServiceNow applications.\n\nThe following outlines the parameters that you need to pass to implement specific use cases. All parameters that are not specified are not passed in and use the associated defaults.\n\n-   To only install the base application and not the corresponding application customizations.\n    -   sys\\_id: Sys\\_id of the base application that has been customized.\n    -   base\\_app\\_version: Version of the base application to install.\n-   To install a specified version of application customizations and automatically install the recommended base application version. The recommended base application version is the version of the base application that was installed on the instance at the time that the customizations were last published. Every version of application customizations has a corresponding recommended base application version.\n    -   sys\\_id: Sys\\_id of the application that has been customized.\n    -   auto\\_upgrade\\_base\\_app: true\n    -   version: Version of the application customizations to install.\n-   To install the latest version of the application customizations and its corresponding recommended base application version.\n    -   sys\\_id: Sys\\_id of the application that has been customized.\n    -   auto\\_upgrade\\_base\\_app: true\n-   To install the latest version of the application customizations, but not upgrade the base application to the application customizations recommended base application version.\n    -   sys\\_id: Sys\\_id of the application that has been customized.\n    -   auto\\_upgrade\\_base\\_app: false\n-   To install application customizations along with the scoped ServiceNow plugin of the current release.\n    -   scope: Scope of the plugin that has been customized OR\n    -   sys\\_id: Sys\\_id of the application that has been customized. This is not the ID of the plugin.\n    -   version: Version of the application customizations to install.\n-   To install application customizations for an already installed and activated scoped plugin.\n    -   sys\\_id: Sys\\_id of the application that has been customized. This is not the ID of the plugin.\n    -   auto\\_upgrade\\_base\\_app: false\n    -   version: Version of the application customizations to install.\n\nSince base plugins can have only one version per family release, the **auto\\_upgrade\\_base\\_app** and **base\\_app\\_version** parameters don't apply to application customization installs for plugins. To activate a plugin for the first time on an instance, use the /sn\\_cicd/plugin/\\{plugin\\_id\\}/activate endpoint instead.\n\n**Note:** This endpoint uses an asynchronous response model. When you call an endpoint, it kicks off the associated function, such as starting the execution of the batch install plan. The endpoint then returns a response message that contains the execution status of the requested function, typically Pending, along with a unique identifier and link. Use this information to obtain additional information about the progress or results of the request.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/app_repo/install`\n\nDefault URL: `/api/sn_cicd/app_repo/install`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table><table class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nauto\\_upgrade\\_base\\_app\n\n</td><td>\n\nOnly applicable if you intend to install application customizations and the base application was built on a version that is later than the currently installed version. Flag that indicates whether the associated base application should be automatically upgraded to a later version.\n\nValid values:\n\n-   true: Automatically upgrade the associated base application.\n-   false: Leave the base application as the version currently installed on the instance.\n\nData type: Boolean\n\nDefault: false\n\n</td></tr><tr><td>\n\nbase\\_app\\_version\n\n</td><td>\n\nVersion of the base application to install. A base application is any third-party application that is available in theServiceNow Store. If the application has no application customizations, or if the application has application customizations and you are only updating the base application, then enter the updated version of the application in this parameter. If you are updating application customizations, don't pass this parameter, but rather pass the **version** parameter.\n\nData type: String\n\nDefault: Null\n\n</td></tr><tr><td>\n\nscope\n\n</td><td>\n\nRequired if **sys\\_id** is not specified. Scope name of the application, such as `x_aah_custom_app`.Data type: String\n\nTable: In the scope field in the Custom Application \\[sys\\_app\\] table or Store Application \\[sys\\_store\\_app\\] table.\n\n</td></tr><tr><td>\n\nsys\\_id\n\n</td><td>\n\nRequired if **scope** is not specified. Sys\\_id of the application to install.Data type: String\n\nTable: In the Sys ID field in the Custom Application \\[sys\\_app\\] table or Store Application \\[sys\\_store\\_app\\] table.\n\n</td></tr><tr><td>\n\nversion\n\n</td><td>\n\nVersion of the application to install.Data type: String\n\nDefault: If the **base\\_app\\_version** parameter is empty and the **auto\\_upgrade\\_base\\_app** parameter is set to true, installs the latest application customizations and its recommended base application version \\(as long as it doesn't downgrade the base application.\\)\n\nIf the **auto\\_upgrade\\_base\\_app** parameter is false, installs the application customizations, but the base application is not upgraded.\n\nIf the **base\\_app\\_version** parameter is defined, only installs the base application.\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|409|Conflict. The requested item isn’t unique.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr><td>\n\nrollback\\_version\n\n</td><td>\n\nIf available, the previously installed version. If not available, null.Data type: String\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/app_repo/install?sys_id=2d146921dbd80010caf55268dc9619d8' \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n     \"progress\": {\n        \"id\": \"c159b1e9db1c0010b5e3f6c5ae961903\",\n        \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/c159b1e9db1c0010b5e3f6c5ae961903\"\n      }\n   },\n   \"status\": \"0\",\n   \"status_label\": \"Pending\",\n   \"status_message\": \"\",\n   \"status_detail\": \"\",\n   \"error\": \"\",\n   \"percent_complete\": 0,\n   \"rollback_version\": \"1.1.0\"\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/app\\_repo/publish\n\nPublishes the specified application and all of its artifacts to the application repository.\n\n**Note:** If there are uncommitted changes to tracked files when you call this endpoint, it returns a 400 Bad Request status code. You can either commit the changes manually in Studio or call the [CI/CD - POST /sn\\_cicd/sc/apply\\_changes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md) endpoint to stash the changes. Changes that aren’t tracked in the Customer Updates \\[sys\\_update\\_xml\\] table are committed automatically after publishing to the application repository. For information about the layout of the changes in the Customer Updates table and a description of the changes that aren’t represented in this table, see [Customer Updates table](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-security/r_CustomerUpdatesTable.md).\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/app_repo/publish`\n\nDefault URL: `/api/sn_cicd/app_repo/publish`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table><table class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\ndev\\_notes\n\n</td><td>\n\nDeveloper notes to store with the application.Data type: String\n\n</td></tr><tr><td>\n\nscope\n\n</td><td>\n\nRequired if **sys\\_id** isn’t specified. The scope of the application.Data type: String\n\nTable: In the scope field of the Custom Application \\[sys\\_app\\] table.\n\n</td></tr><tr><td>\n\nsys\\_id\n\n</td><td>\n\nRequired if **scope** isn’t specified. The sys\\_id of the application to store in the repository.Data type: String\n\nTable: In the Sys ID field of the Custom Application \\[sys\\_app\\] table.\n\n</td></tr><tr><td>\n\nversion\n\n</td><td>\n\nVersion under which to store the application.If the version number is passed, the publish process uses that version and updates the local application version if different. If the version number isn’t passed, the publish process uses the current version of the local application and fails if that version exists in the application repository.\n\nData type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n200\n\n</td><td id=\"entry-200-status-code\">\n\nSuccessful. The request was successfully processed.\n\n</td></tr><tr><td>\n\n400\n\n</td><td>\n\nRequest failed. Possible issues:\n\n-   The application version isn’t correct or is a downgrade.\n-   The application is connected to source control and contains uncommitted changes that must be resolved.\n\nConsult the returned error message for additional information.\n\n</td></tr><tr id=\"row-401-status-code\"><td>\n\n401\n\n</td><td>\n\nThe user credentials are incorrect.\n\n</td></tr><tr id=\"row-403-status-code\"><td>\n\n403\n\n</td><td>\n\nForbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.\n\n</td></tr><tr id=\"row-404-status-code\"><td>\n\n404\n\n</td><td>\n\nNot found. The requested item wasn’t found.\n\n</td></tr><tr id=\"row-405-status-code\"><td>\n\n405\n\n</td><td>\n\nInvalid method. The functionality is inactive.\n\n</td></tr><tr id=\"row-409-status-code\"><td>\n\n409\n\n</td><td>\n\nConflict. The requested item isn’t unique.\n\n</td></tr><tr id=\"row-500-status-code\"><td>\n\n500\n\n</td><td>\n\nInternal server error. An unexpected error occurred while processing the request.\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>The following example shows how to publish the application with the specified sys\\_id and all of its artifacts to the application repository.\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/app_repo/publish?sys_id=4dd9686d1b9800103d374087bc4bcb3d' \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n       \"progress\": {\n           \"id\": \"d174f8e11bd800103d374087bc4bcbd9\",\n           \"url\": \"https://instance.service-now.com/api/sn_cicd/progress/d174f8e11bd800103d374087bc4bcbd9\"\n        }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\",\n    \"percent_complete\": 0\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/app\\_repo/rollback\n\nInitiates a rollback of a specified application to a specified version.\n\n**Note:** The rollback functionality is only available after the installation is complete.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/app_repo/rollback`\n\nDefault URL: `/api/sn_cicd/app_repo/rollback`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table><table class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nscope\n\n</td><td>\n\nRequired if **sys\\_id** is not specified. The scope name of the application to rollback.Data type: String\n\n</td></tr><tr><td>\n\nsys\\_id\n\n</td><td>\n\nRequired if **scope** is not specified. The sys\\_id of the application to rollback.Data type: String\n\n</td></tr><tr><td>\n\nversion\n\n</td><td>\n\nRequired. Version of the application that is expected after the rollback operation. If the request is to rollback an App Customization install, then set this field to the version of the base application that the system is expected to have after the rollback operation.Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|405|Invalid method. The functionality is inactive.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/app_repo/rollback?sys_id=2d146921dbd80010caf55268dc9619d8&version=1.1.0' \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n      \"progress\": {\n          \"id\": \"f7ddb1eddb1c0010b5e3f6c5ae9619c1\",\n          \"url\": \"https://instance.service-now.com/api/sn_cicd/progress/f7ddb1eddb1c0010b5e3f6c5ae9619c1\"\n       }\n   },\n   \"status\": \"0\",\n   \"status_label\": \"Pending\",\n   \"status_message\": \"\",\n   \"status_detail\": \"\",\n   \"error\": \"\",\n   \"percent_complete\": 0\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/instance\\_scan/full\\_scan\n\nRuns all active checks present in your instance.\n\nYou can run checks that are provided with Instance Scan or you can create your own checks. For more information, see [Instance Scan](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-administration/hs-landing-page.md).\n\n**Note:** This endpoint is part of the CICD Instance Scan Execution Service API and is used under the `sn_cicd` namespace.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/instance_scan/full_scan`\n\nDefault URL: `/api/sn_cicd/instance_scan/full_scan`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_request_parameters\"><thead><tr><th>\n\nParameter\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td>\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table>### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Request body\n\nThe API accepts these JSON or XML elements in the request body.\n\n|Element|Description|\n|-------|-----------|\n|None| |\n\n### Response body\n\nThe API returns these JSON or XML elements in the response body.\n\n<table id=\"table_mc1_pr1_tx\"><thead><tr><th>\n\nElement\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nerror\n\n</td><td id=\"entry-error\">\n\nError message with details about the error.Data type: String\n\n</td></tr><tr><td>\n\nlinks\n\n</td><td id=\"entry-link\">\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress\n\n</td><td id=\"entry-links_progress\">\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress.id\n\n</td><td>\n\nUnique identifier of the progress detail. Use this value when calling the endpoint /sn\\_cicd/instance\\_scan/result/\\{progress\\_id\\}.\n\n</td></tr><tr><td>\n\nlinks.progress.url\n\n</td><td id=\"entry-progress_url\">\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr><td>\n\nstatus\n\n</td><td id=\"entry-status\">\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_detail\n\n</td><td id=\"entry-status_detail\">\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr><td>\n\nstatus\\_label\n\n</td><td id=\"entry-status_label\">\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_message\n\n</td><td id=\"entry-healthscan_status_message\">\n\nAdditional information about why the operation failed. Returns an empty string if the operation is successful.Data type: String\n\n</td></tr></tbody>\n</table>### Sample cURL request\n\n```\ncurl 'instance.service-now.com/api/sn_cicd/instance_scan/full_scan' \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n       \"progress\": {\n           \"id\": \"a4fae8911bdc00103d374087bc4bcbbd\",\n           \"url\": \"https://instance.service-now/api/sn_cicd/progress/a4fae8911bdc00103d374087bc4bcbbd\"\n        }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\"\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/instance\\_scan/point\\_scan\n\nExecutes all applicable checks against a specified record.\n\nFor example, if you execute a point scan against a Catalog Item, only the checks applicable to the Catalog Item table run, and only the specified record is scanned.\n\nYou can run checks that are provided with Instance Scan or you can create your own checks. For more information, see [Instance Scan](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-administration/hs-landing-page.md).\n\n**Note:** This endpoint is part of the CICD Instance Scan Execution Service API and is used under the `sn_cicd` namespace.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/instance_scan/point_scan`\n\nDefault URL: `/api/sn_cicd/instance_scan/point_scan`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_request_parameters\"><thead><tr><th>\n\nParameter\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td>\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\ntarget\\_table\n\n</td><td>\n\nRequired. Name of the table in which the record to scan resides, such as \"Incident.\"Data type: String\n\n</td></tr><tr><td>\n\ntarget\\_sys\\_id\n\n</td><td>\n\nRequired. The sys\\_id of the record within the specified table to scan.Data type: String\n\n</td></tr></tbody>\n</table>### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|400|Bad Request. Invalid or empty query parameters.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Request body\n\nThe API accepts these JSON or XML elements in the request body.\n\n|Element|Description|\n|-------|-----------|\n|None| |\n\n### Response body\n\nThe API returns these JSON or XML elements in the response body.\n\n<table id=\"table_mc1_pr1_tx\"><thead><tr><th>\n\nElement\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nerror\n\n</td><td id=\"entry-error\">\n\nError message with details about the error.Data type: String\n\n</td></tr><tr><td>\n\nlinks\n\n</td><td id=\"entry-link\">\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress\n\n</td><td id=\"entry-links_progress\">\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress.id\n\n</td><td>\n\nUnique identifier of the progress detail. Use this value when calling the endpoint /sn\\_cicd/instance\\_scan/result/\\{progress\\_id\\}.\n\n</td></tr><tr><td>\n\nlinks.progress.url\n\n</td><td id=\"entry-progress_url\">\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr><td>\n\nstatus\n\n</td><td id=\"entry-status\">\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_detail\n\n</td><td id=\"entry-status_detail\">\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr><td>\n\nstatus\\_label\n\n</td><td id=\"entry-status_label\">\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_message\n\n</td><td id=\"entry-healthscan_status_message\">\n\nAdditional information about why the operation failed. Returns an empty string if the operation is successful.Data type: String\n\n</td></tr></tbody>\n</table>### Sample cURL request\n\n```\ncurl 'instance.service-now.com/api/sn_cicd/instance_scan/point_scan?target_table=incident&target_sys_id=2d146921dbd80010caf55268dc9619d8' \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n       \"progress\": {\n           \"id\": \"a4fae8911bdc00103d374087bc4bcbbd\",\n           \"url\": \"https://instance.service-now/api/sn_cicd/progress/a4fae8911bdc00103d374087bc4bcbbd\"\n        }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\"\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/instance\\_scan/suite\\_scan/combo/\\{combo\\_sys\\_id\\}\n\nRuns a scan using a suite and target \\(scoped apps or update sets\\) that have already run previously.\n\nBefore calling this endpoint, you must call the /sn\\_cicd/instance\\_scan/suite\\_scan/\\{suite\\_sys\\_id\\}/scoped\\_apps or /sn\\_cicd/instance\\_scan/suite\\_scan/\\{suite\\_sys\\_id\\}/update\\_sets endpoints, or [execute a suite scan](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-administration/hc-execute-suite-scan.md) in the UI.\n\n**Note:** This endpoint is part of the CICD Instance Scan Execution Service API and is used under the `sn_cicd` namespace.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/instance_scan/suite_scan/combo/{combo_sys_id}`\n\nDefault URL: `/api/sn_cicd/instance_scan/suite_scan/combo/{combo_sys_id}`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\ncombo\\_sys\\_id\n\n</td><td>\n\nSys\\_id of the scan to run. The scan must be an existing scan that you want to re-run.Data type: String\n\nTable: Combo \\[scan\\_combo\\]\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nElement\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nerror\n\n</td><td id=\"entry-error\">\n\nError message with details about the error.Data type: String\n\n</td></tr><tr><td>\n\nlinks\n\n</td><td id=\"entry-link\">\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress\n\n</td><td id=\"entry-links_progress\">\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress.id\n\n</td><td>\n\nUnique identifier of the progress detail. Use this value when calling the endpoint /sn\\_cicd/instance\\_scan/result/\\{progress\\_id\\}.Data type: String\n\n</td></tr><tr><td>\n\nlinks.progress.url\n\n</td><td id=\"entry-progress_url\">\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr><td>\n\nstatus\n\n</td><td id=\"entry-status\">\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_detail\n\n</td><td id=\"entry-status_detail\">\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr><td>\n\nstatus\\_label\n\n</td><td id=\"entry-status_label\">\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_message\n\n</td><td id=\"entry-healthscan_status_message\">\n\nAdditional information about why the operation failed. Returns an empty string if the operation is successful.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\n```\ncurl \"https://instance.servicenow.com/api/sn_cicd/instance_scan/suite_scan/combo/245d29cc1bd32010178aed72604bcb4b\" \\\n--request POST \\\n--header \"Accept:application/json\" \\\n--user 'username':'password'\n```\n\nResponse body - success.\n\n```\n{\n  \"result\": {\n    \"links\": {\n      \"progress\": {\n        \"id\": \"c08be5c71b1b2010178aed72604bcb6e\",\n        \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/c08be5c71b1b2010178aed72604bcb6e\"\n      }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\"\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/instance\\_scan/suite\\_scan/\\{suite\\_sys\\_id\\}/scoped\\_apps\n\nRuns all active checks inside a suite against a list of scoped apps.\n\n**Note:** This endpoint is part of the CICD Instance Scan Execution Service API and is used under the `sn_cicd` namespace.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/instance_scan/suite_scan/{suite_sys_id}/scoped_apps`\n\nDefault URL: `/api/sn_cicd/instance_scan/suite_scan/{suite_sys_id}/scoped_apps`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\nsuite\\_sys\\_id\n\n</td><td>\n\nSys\\_id of the [suite](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-administration/hc-suites-mgmt.md) to run.Data type: String\n\nTable: Suite \\[scan\\_check\\_suite\\]\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n<table class=\"rest_api_request_body\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napp\\_scope\\_sys\\_ids\n\n</td><td>\n\nRequired. A list of sys\\_ids of the scoped applications to scan. Can't be an empty array. Data type: Array\n\n```\napp_scope_sys_ids: [\"String\", \"String\", \"String\"]\n```\n\nTable: Application \\[sys\\_scope\\]\n\n</td></tr></tbody>\n</table>### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr><tr><td>\n\nContent-Type\n\n</td><td id=\"content_type-JSON-only-entry-RESTAPI\">\n\nData format of the request body. Only supports **application/json**.\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nElement\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nerror\n\n</td><td id=\"entry-error\">\n\nError message with details about the error.Data type: String\n\n</td></tr><tr><td>\n\nlinks\n\n</td><td id=\"entry-link\">\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress\n\n</td><td id=\"entry-links_progress\">\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress.id\n\n</td><td>\n\nUnique identifier of the progress detail. Use this value when calling the endpoint /sn\\_cicd/instance\\_scan/result/\\{progress\\_id\\}.Data type: String\n\n</td></tr><tr><td>\n\nlinks.progress.url\n\n</td><td id=\"entry-progress_url\">\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr><td>\n\nstatus\n\n</td><td id=\"entry-status\">\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_detail\n\n</td><td id=\"entry-status_detail\">\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr><td>\n\nstatus\\_label\n\n</td><td id=\"entry-status_label\">\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_message\n\n</td><td id=\"entry-healthscan_status_message\">\n\nAdditional information about why the operation failed. Returns an empty string if the operation is successful.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example runs all active checks inside a suite against one scoped application.\n\n```\ncurl \"https://instance.servicenow.com/api/sn_cicd/instance_scan/suite_scan/833655cc1b94101046e87733cd4bcb4e/scoped_apps\" \\\n--request POST \\\n--header \"Accept:application/json\" \\\n--header \"Content-Type:application/json\" \\\n--data \"{app_scope_sys_ids: [\\\"078e8020950f12a215a92e8ad9b346e0\\\"]}\" \\\n--user 'username':'password'\n```\n\nResponse body - success.\n\n```\n{\n  \"result\": {\n    \"links\": {\n      \"progress\": {\n        \"id\": \"147fc14b1b572010178aed72604bcbca\",\n        \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/147fc14b1b572010178aed72604bcbca\"\n      }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\"\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/instance\\_scan/suite\\_scan/\\{suite\\_sys\\_id\\}/update\\_sets\n\nRuns all active checks inside a suite against a list of update sets.\n\n**Note:** This endpoint is part of the CICD Instance Scan Execution Service API and is used under the `sn_cicd` namespace.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/instance_scan/suite_scan/{suite_sys_id}/update_sets`\n\nDefault URL: `/api/sn_cicd/instance_scan/suite_scan/{suite_sys_id}/update_sets`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\nsuite\\_sys\\_id\n\n</td><td>\n\nSys\\_id of the [suite](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-administration/hc-suites-mgmt.md) to run.Data type: String\n\nTable: Suite \\[scan\\_check\\_suite\\]\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n<table class=\"rest_api_request_body\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nupdate\\_set\\_sys\\_ids\n\n</td><td>\n\nRequired. List of sys\\_ids of the update sets to scan. Can't be an empty array. Data type: Array\n\n```\nupdate_set_sys_ids: [\"String\", \"String\", \"String\"]\n```\n\nTable: Update Set \\[sys\\_update\\_set\\]\n\n</td></tr></tbody>\n</table>### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table id=\"table_dm1_1pk_fpb\" class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr><tr><td>\n\nContent-Type\n\n</td><td id=\"content_type-JSON-only-entry-RESTAPI\">\n\nData format of the request body. Only supports **application/json**.\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nElement\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nerror\n\n</td><td id=\"entry-error\">\n\nError message with details about the error.Data type: String\n\n</td></tr><tr><td>\n\nlinks\n\n</td><td id=\"entry-link\">\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress\n\n</td><td id=\"entry-links_progress\">\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nlinks.progress.id\n\n</td><td>\n\nUnique identifier of the progress detail. Use this value when calling the endpoint /sn\\_cicd/instance\\_scan/result/\\{progress\\_id\\}.Data type: String\n\n</td></tr><tr><td>\n\nlinks.progress.url\n\n</td><td id=\"entry-progress_url\">\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr><td>\n\nstatus\n\n</td><td id=\"entry-status\">\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_detail\n\n</td><td id=\"entry-status_detail\">\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr><td>\n\nstatus\\_label\n\n</td><td id=\"entry-status_label\">\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr><td>\n\nstatus\\_message\n\n</td><td id=\"entry-healthscan_status_message\">\n\nAdditional information about why the operation failed. Returns an empty string if the operation is successful.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example runs all active checks inside a suite against one update set.\n\n```\ncurl \"https://instance.servicenow.com/api/sn_cicd/instance_scan/suite_scan/833655cc1b94101046e87733cd4bcb4e/update_sets\" \\\n--request POST \\\n--header \"Accept:application/json\" \\\n--header \"Content-Type:application/json\" \\\n--data \"{update_set_sys_ids: [\\\"7abef63c1b572010178aed72604bcbfd\\\"]}\" \\\n--user 'username':'password'\n```\n\nResponse body - success.\n\n```\n{\n  \"result\": {\n    \"links\": {\n      \"progress\": {\n        \"id\": \"d27511031b972010178aed72604bcb72\",\n        \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/d27511031b972010178aed72604bcb72\"\n      }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\"\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/plugin/\\{plugin\\_id\\}/activate\n\nActivates the specified plugin.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/plugin/{plugin_id}/activate`\n\nDefault URL: `/api/sn_cicd/plugin/{plugin_id}/activate`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr id=\"row-plugin_id\"><td>\n\nplugin\\_id\n\n</td><td id=\"entry-plugin_id\">\n\nUnique identifier of the plugin. You can locate this identifier on the Plugins page within the card of the desired plugin; identified with the name \"ID\".Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|409|Conflict. The requested item isn’t unique.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-links_results\"><td>\n\nlinks.results\n\n</td><td>\n\nID and URL of the execution results.Data type: Object\n\n```\n\"results\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_results_id\"><td>\n\nlinks.results.id\n\n</td><td>\n\nSys\\_id of the results information. Use this value when calling the associated results endpoint.Data type: String\n\n</td></tr><tr id=\"row-links_results_url\"><td>\n\nlinks.results.url\n\n</td><td>\n\nURL to use to obtain the results of the endpoint execution.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/plugin/com.glide.web_service_aggregate/activate' \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n      \"progress\": {\n          \"id\": \"5b3f052ddb580010caf55268dc961963\",\n          \"url\": \"https://instance.service-now.com/api/sn_cicd/progress/5b3f052ddb580010caf55268dc961963\"\n       }\n   },\n   \"status\": \"0\",\n   \"status_label\": \"Pending\",\n   \"status_message\": \"\",\n   \"status_detail\": \"\",\n   \"error\": \"\",\n   \"percent_complete\": 0\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/plugin/\\{plugin\\_id\\}/rollback\n\nRolls back the specified plugin to the previous installed version. If no prior version has been installed, returns an error.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}plugin/{plugin_id}/rollback`\n\nDefault URL: `/api/sn_cicd/plugin/{plugin_id}/rollback`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr id=\"row-plugin_id\"><td>\n\nplugin\\_id\n\n</td><td id=\"entry-plugin_id\">\n\nUnique identifier of the plugin. You can locate this identifier on the Plugins page within the card of the desired plugin; identified with the name \"ID\".Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|409|Conflict. The requested item isn’t unique.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\n```\ncurl 'instance.servicenow.com/api/sn_cicd/plugin/com.glide.web_service_aggregate/rollback' \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n      \"progress\": {\n         \"id\": \"6185dd61db980010caf55268dc961916\",\n          \"url\": \"https://instance.service-now.com/api/sn_cicd/progress/6185dd61db980010caf55268dc961916\"\n        }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\",\n    \"percent_complete\": 0\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/sc/apply\\_changes\n\nStarts applying changes from a remote source control to a specified local application or application-customization.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/sc/apply_changes`\n\nDefault URL: `/api/sn_cicd/sc/apply_changes`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table><table class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nauto\\_upgrade\\_base\\_app\n\n</td><td>\n\nOnly applicable when changes are applied for app-customization and the latest commit on the Git repository is built on a version that is later than that of the base application that is currently installed on the local instance. Flag that indicates whether the system should auto upgrade the base application to a later version. Data type: Boolean\n\n Default: true\n\n</td></tr><tr><td>\n\nbranch\\_name\n\n</td><td>\n\nName of the branch in the source control system from which to acquire the application.Data type: String\n\n Default: Default branch specified on the source control system.\n\n</td></tr><tr><td>\n\nscope\n\n</td><td>\n\nRequired if **sys\\_id** is not specified. The scope name of the application for which to apply the changes, such as x\\_aah\\_custom\\_app. You can locate this value in the **scope** field in the Custom Application \\[sys\\_app\\] table or Store Application \\[sys\\_store\\_app\\] table for the app-customization.Data type: String\n\n</td></tr><tr><td>\n\nsys\\_id\n\n</td><td>\n\nRequired if **scope** is not specified. The sys\\_id of the application for which to apply the changes. You can locate this value in the **Sys ID** field in the Custom Application \\[sys\\_app\\] table or Store Application \\[sys\\_store\\_app\\] table for the app-customization.Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|409|Conflict. The requested item isn’t unique.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional information about why the operation failed. Returns an empty string if the operation is successful.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\n```\ncurl 'https://instance.servicenow.com/api/sn_cicd/sc/apply_changes?app_sys_id=043db024db737300a9a754e4dc961915' \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n       \"progress\": {\n           \"id\": \"a4fae8911bdc00103d374087bc4bcbbd\",\n           \"url\": \"https://instance.service-now/api/sn_cicd/progress/a4fae8911bdc00103d374087bc4bcbbd\"\n        }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\",\n    \"percent_complete\": 0\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/sc/apply\\_stash/\\{stash\\_id\\}\n\nStarts applying a previously generated \"stash\" of changes from a remote source control to a specified local application or application-customization.\n\nThis endpoint works in conjunction with the [POST/api/sn\\_cicd/sc/apply\\_changes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md) and [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md) endpoints. When the POST /api/sn\\_cicd/sc/apply\\_changes endpoint is called, any unsaved or uncommitted changes in App Engine Studio on the associated instance are saved into the database as a [stash](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/application-development/stash-changes.md).\n\nThe way to determine whether a stash was created when the changes were initially applied is to call the GET /sn\\_cicd/progress/\\{progress\\_id\\} endpoint. If a stash was created, the sys\\_id \\(**stash\\_id**\\) and URL of the stash are returned. To apply the stashed changes to the associated application, call this apply\\_stash endpoint using the **stash\\_id** returned by the progress endpoint.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/sc/apply_stash/{stash_id}`\n\nDefault URL: `/api/sn_cicd/sc/apply_stash/{stash_id}`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr><tr><td>\n\nstash\\_id\n\n</td><td>\n\nUnique identifier of the stash to apply. This value is returned in the **links.stash.id** parameter in the corresponding [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md) endpoint call.Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr><tr><td>\n\nContent-Type\n\n</td><td id=\"content_type-entry-RESTAPI\">\n\nData format of the request body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|409|Conflict. The requested item isn’t unique.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThe following code example shows how to call the apply\\_stash endpoint for **stash\\_id** fc2224e4e0429110f8771827f8fd3634.\n\n```\ncurl \"https://instance.servicenow.com/api/sn_cicd/sc/apply_stash/fc2224e4e0429110f8771827f8fd3634\"\\\n--request POST \\\n--header \"Accept:application/json\" \\\n--header \"Content_Type:application/json\" \\\n--user 'username':'password'\n\n```\n\nThe stash is pending, so not yet applied.\n\n```\n{\n  \"result\": {\n    \"links\": {\n      \"progress\": {\n        \"id\": \"6b04ec28e0429110f8771827f8fd36a4\",\n        \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/6b04ec28e0429110f8771827f8fd36a4\"\n      }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\",\n    \"percent_complete\": 0\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/sc/import\n\nImports an application using the specified repository URL and branch name.\n\nUse this endpoint to import an application from source control in the calling instance so you can then use Continuous Integration and Continuous Delivery \\(CICD\\) endpoints, such as [/sn\\_cicd/sc/apply\\_changes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md), to deploy the application to upper environments.\n\n**Note:** Before using this endpoint, a Git repository that has been setup by another instance using **Link to source control** must be available.\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/sc/import`\n\nDefault URL: `/api/sn_cicd/sc/import`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table><table class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nauto\\_upgrade\\_base\\_app\n\n</td><td>\n\nOnly applicable when the application being imported is an app-customization and the latest commit on the Git repository is built on a version that is later than that of the base application that is currently installed on the local instance. Flag that indicates whether the system should auto-upgrade the base application to a later version.\n\n Valid values:\n\n-   true: Auto-upgrade the base application.\n-   false: Do not auto-upgrade the base application.\n\n Data type: Boolean\n\n Default: True\n\n</td></tr><tr><td>\n\nbranch\\_name\n\n</td><td>\n\nRequired. Name of the branch in the source control system to import the application from.Data type: String\n\n</td></tr><tr><td>\n\ncredential\\_sys\\_id\n\n</td><td>\n\nSys\\_id of the credentials that have access to the Git repository.Data type: String\n\n Default: Sys\\_id set in the system properties glide.source\\_control.default\\_basic\\_auth\\_credential\\_sys\\_id or glide.source\\_control.default\\_ssh\\_private\\_key\\_credential\\_sys\\_id, depending on whether the **repo\\_url** parameter is an https or ssh repository. By default, this property is empty.\n\n</td></tr><tr><td>\n\nmid\\_server\\_sys\\_id\n\n</td><td>\n\nSys\\_id of the MID server to use for source control operations for this application.Data type: String\n\n Default: Empty string/NULL\n\n</td></tr><tr><td>\n\nrepo\\_url\n\n</td><td>\n\nRequired. URL of the Git repository to import the application from.Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|409|Conflict. The requested item isn’t unique.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThe following example shows how to import the application located at `https://code.devsnc.com/some-user/ncRegrApp1.git` in the `main_branch`.\n\n```\ncurl \"https://instance.servicenow.com/api/sn_cicd/sc/import?repo_url=https%3A%2F%2Fcode.devsnc.com%2Fsome-user%2FncRegrApp1.git&branch_name=main_branch&credential_sys_id=af9b6d6180feb010f8779c30d4dd6b6b\" \\\n--request POST \\\n--header \"Accept:application/json\" \\\n--user 'admin':'admin'\n```\n\nReturns the progress of the import.\n\n```\n{\n  \"result\": {\n    \"links\": {\n      \"progress\": {\n        \"id\": \"a18c06ea64f23010f87769cd983d4574\",\n        \"url\": \"https://instance.servicenow.com/api/sn_cicd/progress/a18c06ea64f23010f87769cd983d4574\"\n      }\n    },\n    \"status\": \"0\",\n    \"status_label\": \"Pending\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"\",\n    \"percent_complete\": 0\n  }\n}\n```\n\n## CI/CD - POST /sn\\_cicd/testsuite/run\n\nStarts a specified automated test suite. The test suite runs on the instance from which the endpoint was called.\n\n**Note:** If the suite you are running contains UI tests, you must have either a scheduled Client Test Runner open, or be able to configure headless Test Runner execution. To learn more, see [Headless browser for Automated Test Framework](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/application-development/atf-headless-browser.md).\n\n### URL format\n\nVersioned URL: `/api/sn_cicd/{api_version}/testsuite/run`\n\nDefault URL: `/api/sn_cicd/testsuite/run`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table><table class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nbrowser\\_name\n\n</td><td>\n\nName of the browser to use to run the client test. This value must match what is specified in the scheduled client test runner. For additional information on scheduled client test runners, see [Scheduled Client Test Runners](https://developer.servicenow.com/app.do#!/training/article/app_store_learnv2_atf_rome_using_the_automated_test_framework/app_store_learnv2_atf_rome_scheduled_client_test_runners?v=utah).Data type: String\n\n Valid values: \\(must be all lower-case\\)\n\n -   any\n-   chrome\n-   firefox\n-   edge\n-   ie\n-   safari\n\n Default: any\n\n</td></tr><tr><td>\n\nbrowser\\_version\n\n</td><td>\n\nStarting value of the version of the browser specified in **browser\\_name** to use to run the test. For example, if you enter \"9\", that would enable all 9.x.x.x versions. This value must match what is specified in the scheduled client test runner.Data type: String\n\n</td></tr><tr><td>\n\nis\\_performance\\_run\n\n</td><td>\n\nOptional. Flag that indicates whether to execute the test suite as a performance test \\(Performance Run\\).\n\nValid values:\n\n-   true: Runs the test suite as a performance test.\n-   false: Runs the test suite with the default behavior of a standard, functional test of the instance.\n\nDefault: false\n\n</td></tr><tr><td>\n\nos\\_name\n\n</td><td>\n\nName of the operating system under which to run the test suite. This value must match what is specified in the scheduled client test runner.Data type: String\n\n</td></tr><tr><td>\n\nos\\_version\n\n</td><td>\n\nStarting value of the version of the operating system under which to run the test suite. For example, if you enter \"8\", that would enable all 8.x.x.x versions. This value must match what is specified in the scheduled client test runner.Data type: String\n\n</td></tr><tr><td>\n\nrun\\_in\\_cloud\n\n</td><td>\n\nOptional. Flag that indicates whether to execute the test suite in Cloud Runner or manually.Valid values:\n\n-   true: Runs the test suite using the Cloud Runner.\n-   false: Runs the test suite using the manual test runner.\n\nDefault: false\n\n</td></tr><tr><td>\n\ntest\\_suite\\_sys\\_id\n\n</td><td>\n\nRequired if **test\\_suite\\_name** is not specified. The sys\\_id of the test suite to run.Data type: String\n\nTable: Test \\[sys\\_atf\\_test\\_suite\\]\n\n</td></tr><tr><td>\n\ntest\\_suite\\_name\n\n</td><td>\n\nRequired if **test\\_suite\\_sys\\_id** is not specified. The name of the test suite to run.Data type: String\n\nTable:Test \\[sys\\_atf\\_test\\_suite\\]\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|200|Successful. The request was successfully processed.|\n|401|The user credentials are incorrect.|\n|403|Forbidden. The user isn’t an admin or doesn’t have the sn\\_cicd.sys\\_ci\\_automation role.|\n|404|Not found. The requested item wasn’t found.|\n|405|Invalid method. The functionality is inactive.|\n|409|Conflict. The requested item isn’t unique.|\n|500|Internal server error. An unexpected error occurred while processing the request.|\n\n### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"row-error\"><td>\n\nerror\n\n</td><td>\n\nError message with details about the error.Data type: String\n\n</td></tr><tr id=\"row-link\"><td>\n\nlinks\n\n</td><td>\n\nInformation about any links and sys\\_ids associated with the update set.Data type: Object\n\n```\n\"links\": {\n  \"progress\": {Object}\n}\n```\n\n</td></tr><tr id=\"row-links_progress\"><td>\n\nlinks.progress\n\n</td><td>\n\nProgress information about the operation performed on the update set.Data type: Object\n\n```\n\"progress\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_progress_id\"><td>\n\nlinks.progress.id\n\n</td><td>\n\nSys\\_id containing progress details for the operation. You can use this value when calling the endpoint [CI/CD - GET /sn\\_cicd/progress/\\{progress\\_id\\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/cicd-api.md).Data type: String\n\n</td></tr><tr id=\"row-links_progress_url\"><td>\n\nlinks.progress.url\n\n</td><td>\n\nURL to use to retrieve the progress details about the operation performed on the update set.Data type: String\n\n</td></tr><tr id=\"row-links_results\"><td>\n\nlinks.results\n\n</td><td>\n\nID and URL of the execution results.Data type: Object\n\n```\n\"results\": {\n  \"id\": \"String\",\n  \"url\": \"String\"\n}\n```\n\n</td></tr><tr id=\"row-links_results_id\"><td>\n\nlinks.results.id\n\n</td><td>\n\nSys\\_id of the results information. Use this value when calling the associated results endpoint.Data type: String\n\n</td></tr><tr id=\"row-links_results_url\"><td>\n\nlinks.results.url\n\n</td><td>\n\nURL to use to obtain the results of the endpoint execution.Data type: String\n\n</td></tr><tr id=\"row-percent_complete\"><td>\n\npercent\\_complete\n\n</td><td>\n\nPercentage of the request that is complete.Data type: Number\n\n</td></tr><tr id=\"row-status\"><td>\n\nstatus\n\n</td><td>\n\nNumber representing the execution state of the action performed on the update set. Corresponds with the **status\\_label** descriptor.Possible values:\n\n-   0: Pending\n-   1: Running\n-   2: Successful\n-   3: Failed\n-   4: Canceled\n\nData type: String\n\n</td></tr><tr id=\"row-status_detail\"><td>\n\nstatus\\_detail\n\n</td><td>\n\nDetailed message about the execution status, if available. Corresponds to the detailed\\_message field in the Execution Tracker \\[sys\\_execution\\_tracker\\] table.Data type: String\n\n</td></tr><tr id=\"row-status_label\"><td>\n\nstatus\\_label\n\n</td><td>\n\nExecution status of the update set action. Corresponds with the **status** number.Possible values:\n\n-   Canceled\n-   Failed\n-   Pending\n-   Running\n-   Successful\n\nData type: String\n\n</td></tr><tr id=\"row-status_message\"><td>\n\nstatus\\_message\n\n</td><td>\n\nAdditional description of the action's current state, if available.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\n```\ncurl 'https://instance.servicenow.com/api/sn_cicd/testsuite/run?test_suite_sys_id=632e43900b20220050192f15d6673a7e' \\\n--request POST \\\n--header 'Accept: application/json' \\\n--user 'username':'password'\n```\n\n```\n{\n\"result\": {\n   \"links\": {\n       \"progress\": {\n           \"id\": \"0578a8d91bdc00103d374087bc4bcbcc\",\n           \"url\": \"https://instance.service-now.com/api/sn_cicd/progress/0578a8d91bdc00103d374087bc4bcbcc\"\n        }\n   },\n   \"status\": \"0\",\n   \"status_label\": \"Pending\",\n   \"status_message\": \"\",\n   \"status_detail\": \"\",\n   \"error\": \"\",\n   \"percent_complete\": 0\n  }\n}\n```\n\nFailure response:\n\n```\n{\n\"result\": {\n    \"status\": \"3\",\n    \"status_label\": \"Failed\",\n    \"status_message\": \"\",\n    \"status_detail\": \"\",\n    \"error\": \"Scheduled test/suite execution is disabled. Change the value of property 'sn_atf.schedule.enabled' to true to enable it\"\n  }\n}\n```\n\n"}}