> ## 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.
# Update a POP by ID (V2)
> This is an API call to update a Policy Orchestration Point (POP).
Notice
Accessing the APIs is through a dedicated domain/URL, according to your
PlainID Tenant LocationUnited 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 for a full list.
## OpenAPI
````json PUT /orchestrator/2.0/pops/{envId}/{popId}
{
"openapi": "3.0.3",
"info": {
"title": "Management APIs",
"version": "1.0.0",
"contact": {
"name": "PlainID",
"url": "https://plainid.com",
"email": "contact@plainid.com"
},
"license": {
"name": "Commercial",
"url": "https://plainid.com/license"
},
"termsOfService": "https://www.plainid.com/terms/",
"description": "The PlainID Authorization Platform provides Management capabilities through the APIs below.
To access the Management APIs, make sure to enter your dedicated domain according to your PlainID Tenant Location:
| Region | Base URL |
|---|
| United States (US) | https://api.us1.plainid.io |
| Canada (CA) | https://api.ca1.plainid.io |
| Europe (EU) | https://api.eu1.plainid.io |
| Local PAA | https://api.plainid.local |
"
},
"servers": [
{
"description": "United States",
"url": "https://api.us1.plainid.io"
},
{
"description": "Europe",
"url": "https://api.eu1.plainid.io"
},
{
"description": "Canada",
"url": "https://api.ca1.plainid.io"
},
{
"description": "Local PAA",
"url": "https://api.plainid.local"
}
],
"tags": [
{
"name": "access-file-authorizer-oas",
"description": "access-file-authorizer-oas"
},
{
"name": "authz-packager-oas",
"description": "authz-packager-oas"
},
{
"name": "SQL Database Authorizer",
"description": "API for modifying SQL queries based on authorization policies"
},
{
"name": "delegated-admin-oas",
"description": "delegated-admin-oas"
},
{
"name": "Discovery",
"description": "Discovery APIs"
},
{
"name": "Enrichment",
"description": "Enrichment APIs"
},
{
"name": "env-mgmt-oas",
"description": "env-mgmt-oas"
},
{
"name": "hybrid-commander-oas",
"description": "hybrid-commander-oas"
},
{
"name": "auth-keys",
"description": "Auth key operations"
},
{
"name": "components",
"description": "Component operations"
},
{
"name": "paas",
"description": "PAA operations"
},
{
"name": "paa-groups",
"description": "PAA group operations"
},
{
"name": "packages",
"description": "Package configuration operations"
},
{
"name": "secret-stores",
"description": "Secret store operations"
},
{
"name": "Table Mapping",
"description": "Table Mapping"
},
{
"name": "Column Mapping",
"description": "Column Mapping"
},
{
"name": "Api Mapping",
"description": "Api Mapping"
},
{
"name": "notifier-oas",
"description": "notifier-oas"
},
{
"name": "shadow-tracker",
"description": "Shadow tracker SSE stream"
},
{
"name": "orchestrator-oas",
"description": "orchestrator-oas"
},
{
"name": "POP",
"description": "pop operations"
},
{
"name": "org-mgmt-oas",
"description": "org-mgmt-oas"
},
{
"name": "pip-mgmt-oas",
"description": "pip-mgmt-oas"
},
{
"name": "monitor-loggers",
"description": "monitor-loggers"
},
{
"name": "Policy Management APIs",
"description": "Policy Management APIs"
},
{
"name": "Policy Management APIs 1.0",
"description": "Policy Management APIs 1.0"
},
{
"name": "Policy Management APIs 2.0",
"description": "Policy Management APIs 2.0"
},
{
"name": "Policy Building Blocks Management APIs 2.0",
"description": "Policy Building Blocks Management APIs 2.0"
},
{
"name": "Audit",
"description": "Audit"
},
{
"name": "Asset Template",
"description": "Asset Template"
},
{
"name": "Application",
"description": "Application"
},
{
"name": "Api Mapper",
"description": "Api Mapper"
},
{
"name": "Identity Template",
"description": "Identity Template"
},
{
"name": "Identity Sources",
"description": "Identity Sources"
},
{
"name": "Mapper Sets",
"description": "Mapper Sets"
},
{
"name": "Identity Template V2",
"description": "Identity Template V2"
},
{
"name": "PAA Sources",
"description": "PAA Sources"
},
{
"name": "PAA Views",
"description": "PAA Views"
},
{
"name": "PAA Groups",
"description": "PAA Groups"
},
{
"name": "Scope",
"description": "Managed Scope APIs"
},
{
"name": "Authentication for Management APIs",
"description": "Authentication for Management APIs"
},
{
"name": "runtime",
"description": "runtime"
},
{
"name": "Cache Management",
"description": "Cache invalidation operations for Runtime service"
}
],
"externalDocs": {
"url": "https://docs.plainid.io/apidocs/policy-management-apis"
},
"paths": {
"/orchestrator/2.0/pops/{envId}/{popId}": {
"put": {
"security": [
{
"bearerAuth": []
}
],
"summary": "Update a POP by ID (V2)",
"operationId": "updatePopV2",
"tags": [
"POP"
],
"description": "This is an API call to update a Policy Orchestration Point (POP).
\n\n\n Notice
Accessing the APIs is through a dedicated domain/URL, according to your\n PlainID Tenant LocationUnited States (US) -\n `https://api.us1.plainid.io`Canada (CA) -\n `https://api.ca1.plainid.io`Europe (EU) -\n `https://api.eu1.plainid.io`\n
\n
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
\n 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.
\n
Using HTML Encoded Special Characters
\n Use HTML encoded patterns when working with values that contain special characters like spaces, dashes, etc. Refer to this HTML URL Encoding Reference for a full list.
",
"parameters": [
{
"name": "envId",
"in": "path",
"required": "true",
"description": "Environment ID. You can find the Environment ID in your Environment Settings.",
"schema": {
"type": "string"
}
},
{
"name": "popId",
"in": "path",
"required": "true",
"description": "POP ID. You can find the POP ID using the GET List of POPs API or through the UI under your POP settings in the Integration Workspace.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": "true",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PopUpdateRequestV2"
},
"examples": {
"PowerBI_learn": {
"value": {
"orchestrationWorkspaceId": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"identityWorkspaceId": "9ca7569f-5635-4cff-a335-74bcb3251ef0",
"authorizationWorkspaceId": "4988cfea-527e-4183-8f80-608b0540dc14",
"description": "Aggregates customer account and transaction data for trend analysis and risk profiling.",
"mode": "LEARN",
"name": "Retail Banking Data Hub",
"popId": "retail-banking-pop",
"vendorName": "PowerBI",
"popConnectionCredentials": {
"authenticationMethod": "method",
"credentials": {}
}
}
},
"PowerBI_manage": {
"value": {
"orchestrationWorkspaceId": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"identityWorkspaceId": "9ca7569f-5635-4cff-a335-74bcb3251ef0",
"authorizationWorkspaceId": "4988cfea-527e-4183-8f80-608b0540dc14",
"description": "Provides access control and permission orchestration for risk scoring systems.",
"mode": "MANAGE",
"name": "Credit Risk Control Center",
"popId": "creditRisk",
"vendorName": "PowerBI",
"popConnectionCredentials": {
"authenticationMethod": "method",
"credentials": {}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PopResponse"
},
"examples": {
"PowerBI_learn": {
"value": {
"data": {
"id": "POPS269J5C16H8N4",
"popId": "retail-banking-pop",
"orchestrationWorkspaceId": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"identityWorkspaceId": "9ca7569f-5635-4cff-a335-74bcb3251ef0",
"authorizationWorkspaceId": "4988cfea-527e-4183-8f80-608b0540dc14",
"description": "Aggregates customer account and transaction data for trend analysis and risk profiling.",
"name": "Retail Banking Data Hub",
"mode": "LEARN",
"state": "DISCOVERY_DONE",
"vendorName": "PowerBI",
"popConnectionCredentials": {
"authenticationMethod": "method",
"credentials": {}
}
}
}
},
"PowerBI_manage": {
"value": {
"data": {
"id": "POPS269J5C16H8N4",
"popId": "creditRisk",
"orchestrationWorkspaceId": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"identityWorkspaceId": "9ca7569f-5635-4cff-a335-74bcb3251ef0",
"authorizationWorkspaceId": "4988cfea-527e-4183-8f80-608b0540dc14",
"description": "Provides access control and permission orchestration for risk scoring systems.",
"name": "Credit Risk Control Center",
"mode": "MANAGE",
"state": "DISCOVERY_DONE",
"vendorName": "PowerBI",
"popConnectionCredentials": {
"authenticationMethod": "method",
"credentials": {}
}
}
}
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Not Found"
},
"500": {
"description": "Internal Server Error"
}
}
}
}
},
"components": {
"schemas": {
"PopUpdateRequestV2": {
"type": "object",
"description": "POP update request V2",
"required": [
"name",
"popId",
"orchestrationWorkspaceId",
"mode",
"vendorName",
"popConnectionCredentials"
],
"properties": {
"name": {
"type": "string",
"description": "POP Name",
"maxLength": "50"
},
"popId": {
"type": "string",
"description": "POP ID for the POP. Must contain only letters (a-z, A-Z), digits (0-9), hyphens (\"-\"), underscores (\"_\"), colons (\":\"), and periods (\".\").",
"maxLength": "128",
"pattern": "^[a-zA-Z0-9_:.-]+$"
},
"orchestrationWorkspaceId": {
"description": "The Integrations Workspace ID (formerly Orchestration Workspace ID) can be found in the Workspace Settings.",
"type": "string",
"format": "uuid"
},
"identityWorkspaceId": {
"type": "string",
"nullable": "true",
"format": "uuid",
"description": "The Identities Workspace ID (formerly Identity Workspace ID) can be found in the Workspace Settings. Required when the vendor supports Identities Workspace."
},
"authorizationWorkspaceId": {
"type": "string",
"format": "uuid",
"nullable": "true",
"description": "The Policies Workspace ID (formerly Authorization Workspace ID) can be found in the Workspace Settings."
},
"description": {
"type": "string",
"description": "POP Description",
"maxLength": "200"
},
"mode": {
"type": "string",
"enum": [
"LEARN",
"MANAGE"
],
"description": "POP Mode"
},
"popConnectionCredentials": {
"$ref": "#/components/schemas/PopConnectionCredentials"
},
"vendorName": {
"description": "Vendor Name",
"type": "string",
"enum": [
"PowerBI",
"ZScaler",
"Snowflake",
"Databricks",
"mcp",
"mcp-v2",
"pinecone",
"aws-agentcore",
"microsoft-foundry",
"googlebigquery"
]
},
"settings": {
"type": "object",
"description": "Optional. Vendor-specific settings object. Not required in any mode. An empty object `{}` is valid."
}
}
},
"PopResponse": {
"type": "object",
"description": "Response object",
"properties": {
"data": {
"$ref": "#/components/schemas/pop"
}
}
},
"PopConnectionCredentials": {
"description": "Refer to the SaaS Management Vendors article for instructions and examples on how to configure your vendor credentials with your Policy Orchestration Points (POP).",
"type": "object",
"required": [
"authenticationMethod"
],
"properties": {
"authenticationMethod": {
"type": "string"
},
"credentials": {
"type": "object"
},
"discoveryScopeRule": {
"type": "object",
"description": "This parameter is specific to Power BI. See the SaaS Management Vendors article for more information."
}
},
"example": {
"authenticationMethod": "method",
"credentials": {}
}
},
"pop": {
"type": "object",
"additionalProperties": "false",
"properties": {
"id": {
"type": "string",
"readOnly": "true",
"description": "Internal PlainID property. Not intended for external use. Use popId as the required identifier for all SaaS Management API operations."
},
"popId": {
"type": "string",
"description": "POP ID for the POP"
},
"name": {
"type": "string",
"maxLength": "50",
"description": "POP Name"
},
"orchestrationWorkspaceId": {
"type": "string",
"format": "uuid",
"description": "The Integrations Workspace ID (formerly Orchestration Workspace ID) can be found in the Workspace Settings."
},
"identityWorkspaceId": {
"type": "string",
"nullable": "true",
"format": "uuid",
"description": "The Identities Workspace ID (formerly Identity Workspace ID) can be found in the Workspace Settings."
},
"authorizationWorkspaceId": {
"type": "string",
"format": "uuid",
"nullable": "true",
"description": "The Policies Workspace ID (formerly Authorization Workspace ID) can be found in the Workspace Settings."
},
"description": {
"type": "string",
"description": "POP Description",
"maxLength": "200"
},
"vendorName": {
"type": "string",
"description": "Vendor Name",
"enum": [
"PowerBI",
"ZScaler",
"Snowflake",
"Databricks",
"mcp",
"mcp-v2",
"pinecone",
"aws-agentcore",
"microsoft-foundry",
"googlebigquery"
]
},
"popConnectionCredentials": {
"$ref": "#/components/schemas/PopConnectionCredentials"
},
"mode": {
"type": "string",
"description": "POP Mode.",
"enum": [
"LEARN",
"MANAGE"
]
},
"state": {
"type": "string",
"enum": [
"DISCOVERY_FAILED",
"DISCOVERY_DONE",
"DISCOVERY_IN_PROGRESS",
"DISCOVERY_ABORTED",
"DISCOVERY_PENDING"
]
},
"settings": {
"type": "object",
"description": "POP settings. Present when configured for the vendor and mode."
}
}
}
},
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"description": " 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`"
}
}
}
}
````