---
title: "Run Discovery"
slug: "run-discovery"
updated: 2026-03-22T16:42:58Z
published: 2026-03-22T16:42:58Z
canonical: "docs.plainid.io/run-discovery"
---
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plainid.io/llms.txt
> Use this file to discover all available pages before exploring further.
# Run Discovery
Post/orchestrator/2.0/pop-operations/discovery/{envId}/{popId}
This API call triggers the POP Discovery Process using the POP and Environment IDs.
## Notice
Accessing the APIs is through a dedicated domain/URL, according to your
PlainID Tenant Location**United States (US)** - `https://api.us1.plainid.io`**Canada (CA)** - `https://api.ca1.plainid.io`**Europe (EU)** - `https://api.eu1.plainid.io`
### Important note about headers
Refer to the headers below to modify
your cURL sample. Check if the following headers are in the sample, if not,
ensure you add it to your cURL sample before pasting into your API tool.
#### Headers
*Required
| Header | Value | cURL Line |
| --- | --- | --- |
| Accept | `application/json` | `-H"Accept: application/json"` |
| Content Type | `application/json` | `-H"Content-Type: application/json"` |
### cURL Sample Guidelines
In order for the relevant parameters to appear in the cURL sample, you can input the values in the interactive API console on the right in the Try It or Code Sample tabs. You can then copy the cURL sample from the Code Sample tab in the correct format.
### Using HTML Encoded Special Characters
Use HTML encoded patterns when working with values that contain special characters like spaces, dashes, etc. Refer to this [HTML URL Encoding Reference](https://www.w3schools.com/tags/ref_urlencode.ASP) for a full list.
SecurityHTTPType bearer
For more details about Administration API Authentication, check out the Authentication APIs documentation Provide your bearer token in the Authorization header when making requests to protected resources. Example: `Authorization: Bearer 123`
Path parametersenvIdstringRequired
Environment ID. You can find the Environment ID in your Environment Settings.
popIdstringRequired
POP ID. You can find the POP ID using the [GET List of POPs API](https://docs.plainid.io/v1-api/apidocs/get-pop-list) or through the UI under your POP settings.
Body parameters
These optional execution parameters are required to run Discovery and immediately deploy. If omitted, the endpoint performs discovery only. This is also backwards compatible.
object
Optional discovery execution parameters. `deployMethod` is required.when the parameter `discoveryAndDeploy` is set to `true.
discoveryAndDeployboolean
If set to `true`, triggers discovery and deploy, only when in MANAGE mode.
deployMethodstring
Deployment method to use when the previous `discoveryAndDeploy` is set to `true`. Take note of the valid values - **DEPLOY_ALL** - Deploys all Policies from PlainID to the vendor. - Policies with the Vendor Changes Detected flag are overridden. **SAFE_DEPLOY** - Deploys Policies from PlainID to the vendor, but skips any Policy with the Vendor Changes Detected flag.
Valid values[
"DEPLOY_ALL",
"SAFE_DEPLOY"
]
Responses202
The Discovery Process has been triggered and is being processed.
400
Bad Request
PopDoesNotBelongToEnvironment
```json
{
"errors": [
{
"code": "ORC-027",
"id": "E880D0",
"status": 400,
"name": "PopDoesNotBelongToEnvironment",
"message": "Pop [POP1P00XFYS0NVJ] does not belong to Environment [ec3ff4ee-81f9-4e7f-9037-6fa9fde62cc8]",
"args": {
"popId": "POP1P00XFYS0NVJ",
"envId": "ec3ff4ee-81f9-4e7f-9037-6fa9fde62cc8"
}
}
]
}
```
DiscoveryAlreadyInProgressError
```json
{
"errors": [
{
"code": "ORC-015",
"id": "E28087",
"status": 400,
"name": "DiscoveryAlreadyInProgressError",
"message": "Discovery is currently in progress, and parallel discoveries for the same POP are not allowed",
"args": {
"name": "PowerBI"
}
}
]
}
```
object codestring
messagestring
detailsstring
401
Unauthorized
404
Not Found
500
Internal Server Error