> ## 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.
# List Policy Dependencies
> Returns an aggregated, deduplicated index of configuration objects required to promote or
partially export the given policies. Supply policy **IDs** in the request body; the
response lists dependency IDs grouped by object type so automation can call
existing per-type Management API export endpoints without loading full policy payloads.
Permissions — policyIds in the response is the subset of input IDs the caller
may access in the environment. Unknown or inaccessible policy IDs are omitted silently (no error).
Limits — max 100 policy IDs per request. There is no cap on the number of
identifiers returned per dependency group. For larger promotion batches, send multiple requests
(e.g. 50–100 policies each) and merge dependencies per key on the client.
Filtering — optional dependencyTypes limits which dependency groups are
resolved and returned (e.g. ["applications"]). When omitted, all nine groups are
collected. Unknown type values return 422.
Identifiers — values are resource IDs (same identifier strings as other Management API
export/import calls) for all groups except pipViewNames, which lists PIP view
names. Scope values are scope IDs. Empty groups are omitted from dependencies.
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.
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.
| Header | Value | cURL Line |
|---|---|---|
| Content-Type * | `application/json` | `-H "Content-Type:application/json"` |
| Accept | `application/json` | `-H "Accept:application/json"` |
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.
## OpenAPI ````json POST /api/2.0/policies/{envId}/dependencies { "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": "| 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 |
policyIds in the response is the subset of input IDs the caller\nmay access in the environment. Unknown or inaccessible policy IDs are omitted silently (no error).\ndependencies per key on the client.\ndependencyTypes limits which dependency groups are\nresolved and returned (e.g. [\"applications\"]). When omitted, all nine groups are\ncollected. Unknown type values return 422.\npipViewNames, which lists PIP view\nnames. Scope values are scope IDs. Empty groups are omitted from dependencies.\nUse 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.
\nRefer 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.
\n| Header | \nValue | \ncURL Line | \n
|---|---|---|
| Content-Type * | \n`application/json` | \n`-H \"Content-Type:application/json\"` | \n
| Accept | \n`application/json` | \n`-H \"Accept:application/json\"` | \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", "operationId": "listPolicyDependencies", "parameters": [ { "in": "path", "name": "envId", "required": "true", "schema": { "type": "string", "format": "uuid" }, "description": "The Environment ID can be found under the Details tab in the Environment Settings.", "example": "2d4a0591-dfe4-45fb-8a69-d183f5c75c0d" } ], "security": [ { "bearerAuth": [] } ], "requestBody": { "required": "true", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyDependenciesRequest" }, "examples": { "Single policy": { "value": { "policyIds": [ "policy-alpha" ] } }, "Multiple policies": { "value": { "policyIds": [ "policy-alpha", "policy-beta", "snowflake-policy-1" ] } }, "Applications only": { "value": { "policyIds": [ "policy-alpha", "policy-beta" ], "dependencyTypes": [ "applications" ] } } } } } }, "responses": { "200": { "description": "Successful operation", "headers": { "x-request-id": { "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyDependenciesResponse" }, "examples": { "Full dependency groups": { "summary": "All supported dependency types (deduped across policies in the request)", "value": { "policyIds": [ "policy-alpha", "policy-beta" ], "dependencies": { "applications": [ "crm-app", "billing-app" ], "assetTemplates": [ "accounts", "loans" ], "identityTemplates": [ "employees", "contractors" ], "scopes": [ "finance-scope", "hr-scope" ], "requestAttributes": [ "country-code", "client-ip" ], "customAttributes": [ "risk-tier", "env-attr-1" ], "apiMapperSets": [ "crm-api-mappers" ], "paaGroups": [ "paa-group-sales" ], "pipViewNames": [ "v_users", "v_accounts" ] } } }, "Unknown policy ID omitted": { "summary": "Mix of known and unknown IDs — unknown omitted from policyIds; dependencies from permitted policies only", "value": { "policyIds": [ "policy-alpha" ], "dependencies": { "applications": [ "crm-app" ], "assetTemplates": [ "accounts" ], "identityTemplates": [ "employees" ], "scopes": [ "finance-scope" ], "requestAttributes": [ "country-code" ], "customAttributes": [ "risk-tier" ], "apiMapperSets": [ "crm-api-mappers" ], "paaGroups": [ "paa-group-sales" ], "pipViewNames": [ "v_accounts" ] } } }, "No permitted policies": { "value": { "policyIds": [], "dependencies": {} } } } } } }, "401": { "description": "Unauthorized", "headers": { "x-request-id": { "schema": { "type": "string" } } } }, "403": { "description": "Forbidden — caller has no access to the environment", "headers": { "x-request-id": { "schema": { "type": "string" } } } }, "422": { "description": "Validation failed — invalid request body or path parameters", "headers": { "x-request-id": { "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" }, "examples": { "Invalid envId format": { "value": { "errors": [ { "code": "V-032", "args": { "0": "ed252aa5-9d0c-4193-838-60bf20b13109", "1": "uuid" }, "id": "EEJQMA", "status": "422", "name": "UnprocessableEntityError", "message": "$: test is an invalid uuid" } ] } }, "Empty policyIds": { "value": { "errors": [ { "code": "V-010", "args": { "0": "1", "path": "$.policyIds" }, "id": "E7WJBB", "status": "422", "name": "UnprocessableEntityError", "message": "$.policyIds: there must be a minimum of 1 items in the array" } ] } }, "Too many policy IDs": { "value": { "errors": [ { "code": "V-011", "args": { "0": "100", "path": "$.policyIds" }, "id": "E7WJBB", "status": "422", "name": "UnprocessableEntityError", "message": "$.policyIds: there must be a maximum of 100 items in the array" } ] } } } } } } } } } }, "components": { "schemas": { "PolicyDependenciesRequest": { "type": "object", "required": [ "policyIds" ], "additionalProperties": "false", "properties": { "policyIds": { "type": "array", "minItems": "1", "maxItems": "100", "description": "Policy IDs to resolve dependencies for", "items": { "type": "string", "pattern": "^[a-zA-Z0-9_:.-]+$", "maxLength": "128" } }, "dependencyTypes": { "type": "array", "minItems": "1", "uniqueItems": "true", "description": "Optional subset of dependency groups to resolve. When omitted, all supported groups are returned.", "items": { "type": "string", "enum": [ "applications", "assetTemplates", "identityTemplates", "scopes", "requestAttributes", "customAttributes", "apiMapperSets", "paaGroups", "pipViewNames" ] } } } }, "PolicyDependenciesResponse": { "type": "object", "required": [ "policyIds", "dependencies" ], "properties": { "policyIds": { "type": "array", "description": "Policy IDs from the request that the caller may access and that exist in the environment.", "items": { "type": "string", "pattern": "^[a-zA-Z0-9_:.-]+$", "maxLength": "128" } }, "dependencies": { "$ref": "#/components/schemas/PolicyDependenciesGrouped" } } }, "Errors": { "type": "object", "properties": { "errors": { "type": "array", "items": { "$ref": "#/components/schemas/Error" } } } }, "PolicyDependenciesGrouped": { "type": "object", "description": "Dependency identifiers grouped by object type.", "additionalProperties": "false", "properties": { "applications": { "$ref": "#/components/schemas/PolicyDependencyIds" }, "assetTemplates": { "$ref": "#/components/schemas/PolicyDependencyIds" }, "identityTemplates": { "$ref": "#/components/schemas/PolicyDependencyIds" }, "scopes": { "$ref": "#/components/schemas/PolicyDependencyIds" }, "requestAttributes": { "$ref": "#/components/schemas/PolicyDependencyIds" }, "customAttributes": { "$ref": "#/components/schemas/PolicyDependencyIds" }, "apiMapperSets": { "$ref": "#/components/schemas/PolicyDependencyIds" }, "paaGroups": { "$ref": "#/components/schemas/PolicyDependencyIds" }, "pipViewNames": { "$ref": "#/components/schemas/PolicyDependencyIds" } } }, "Error": { "type": "object", "properties": { "code": { "type": "string" }, "id": { "type": "string" }, "status": { "type": "integer" }, "name": { "type": "string" }, "message": { "type": "string" }, "args": { "type": "object", "properties": { "path": { "type": "string" } } } } }, "PolicyDependencyIds": { "type": "array", "description": "IDs for dependency type (for pipViewNames, view names).", "items": { "type": "string" } } }, "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "description": " For more details about Administration API Authentication, check out the Authentication APIs documentation