> ## 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. # Get Policy Report > This API call retrieves the Policy Report download link and relevant metadata. ## OpenAPI ````json GET /api/1.0/reports/{envId}/{reportId} { "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:
RegionBase URL
United States (US)https://api.us1.plainid.io
Canada (CA)https://api.ca1.plainid.io
Europe (EU)https://api.eu1.plainid.io
Local PAAhttps://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": { "/api/1.0/reports/{envId}/{reportId}": { "get": { "tags": [ "env-mgmt-oas" ], "summary": "Get Policy Report", "security": [ { "bearerAuth": [] } ], "operationId": "getPlatformReport", "description": "This API call retrieves the Policy Report download link and relevant metadata.", "parameters": [ { "name": "envId", "in": "path", "description": "The Environment ID can be found under the Details Tab in the Environment Settings. If your PAA is installed on the Tenant level, input `-` as your `envId`.", "required": "true", "schema": { "type": "string", "format": "uuid" } }, { "name": "reportId", "in": "path", "description": "Unique identifier for the report request. You can retrieve it by sending a POST request to the Create a Policy Report API call.", "required": "true", "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Report metadata and download link (only when status is ready)", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "description": "Report metadata. When status is \"ready\", includes a time-limited presigned download URL.", "properties": { "reportId": { "type": "string", "format": "uuid", "description": "Unique identifier for the report job." }, "reportName": { "type": "string", "description": "Auto-generated report file name, derived from the report type, environment ID, and creation timestamp." }, "reportType": { "type": "string", "description": "The type of report that was generated (e.g. policies_by_attribute)." }, "status": { "type": "string", "enum": [ "processing", "ready", "failed" ], "description": "Current generation status. Poll until \"ready\" to obtain the download URL." }, "dateTime": { "type": "string", "description": "Date and time the report job was created (UTC, format \"YYYY-MM-DD HH:mm\")." }, "anchor": { "type": "object", "description": "Context anchor for the report, identifying the environment it belongs to.", "properties": { "envId": { "type": "string", "format": "uuid", "description": "The environment ID the report was generated for." } } }, "downloadUrl": { "type": "string", "description": "Presigned URL to download the report PDF. Present only when status is \"ready\". Expires at urlExpiresAt." }, "urlExpiresAt": { "type": "string", "description": "Date and time when the presigned download URL expires (typically 24 hours after generation, UTC)." }, "reportExpiresAt": { "type": "string", "description": "Date and time when the report PDF will be permanently deleted from storage (30 days after creation, UTC)." } } } } }, "examples": { "Ready (downloadUrl available)": { "summary": "PDF generated; urlExpiresAt is when the presigned downloadUrl expires, reportExpiresAt is when the report is deleted from storage (30 days from creation).", "value": { "data": { "reportId": "c3100ddd-e77d-4bb3-8704-d03e01f36443", "reportName": "policies_by_attribute_7c04f99f-ddf4-4425-97c0-8fd9d2f9ea38_2026-05-11_13-15", "reportType": "policies_by_attribute", "status": "ready", "dateTime": "2026-05-11 13:15", "anchor": { "envId": "7c04f99f-ddf4-4425-97c0-8fd9d2f9ea38" }, "downloadUrl": "https://download.plainid.io/reports/staging/TNT3P2R3SN6VRPC/7c04f99f-ddf4-4425-97c0-8fd9d2f9ea38/reports/c3100ddd-e77d-4bb3-8704-d03e01f36443.pdf?Expires=1778675230&Signature=...&Key-Pair-Id=K142RUNA675OHA", "urlExpiresAt": "2026-05-12 13:16", "reportExpiresAt": "2026-06-10 13:15" } } }, "Still processing (no downloadUrl yet)": { "summary": "Report PDF is still being generated; downloadUrl is not available until status displays \"ready\"", "value": { "data": { "reportId": "c3100ddd-e77d-4bb3-8704-d03e01f36443", "reportName": "policies_by_attribute_7c04f99f-ddf4-4425-97c0-8fd9d2f9ea38_2026-05-11_13-15", "reportType": "policies_by_attribute", "status": "processing", "dateTime": "2026-05-11 13:15", "anchor": { "envId": "7c04f99f-ddf4-4425-97c0-8fd9d2f9ea38" } } } } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/emptyError" }, "examples": { "Feature disabled for tenant": { "summary": "platform.reports.use feature toggle is off for this tenant", "value": { "id": "EW76XA", "code": "C-011", "status": "403", "name": "featureNotAllowedError", "message": "Platform reports are not enabled for this tenant" } }, "Insufficient permissions on environment": { "summary": "The current user lacks get permission on the target environment", "value": { "id": "EW77XA", "status": "403", "name": "forbiddenEnvironment", "message": "operation get for resource Environment 7c04f99f-ddf4-4425-97c0-8fd9d2f9ea38 isn't allowed due to: the current user has no appropriate permissions" } } } } } }, "404": { "description": "Report not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/emptyError" }, "examples": { "Report not found": { "summary": "reportId does not exist, or belongs to a different envId / tenant", "value": { "id": "EW78XA", "status": "404", "name": "notFoundError", "message": "report not found: c3100ddd-e77d-4bb3-8704-d03e01f36443" } } } } } } } } } }, "components": { "schemas": { "emptyError": { "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" } } } } } }, "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`" } } } } ````