---
title: "Add DataPolicy statements"
method: PATCH
path: "/api/v3/policy/{policy_id}:add-policy-statements"
tags: ["Policy"]
---

# Add DataPolicy statements

`PATCH /api/v3/policy/{policy_id}:add-policy-statements`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/policy/{policy_id}:add-policy-statements`
- Auth: HTTP bearer

Add policy statements to a DataPolicy. Acts as an upsert keyed on (itemType, action): for each incoming statement, any existing statement with the same item type and action is overwritten with the provided condition, and statements for other (itemType, action) pairs are left unchanged. Only DataPolicy objects can be edited.

## Path parameters

- `policy_id` string, required

## Request body

- AddPolicyStatementsInput
  - `statements` PolicyStatementInput[], required: Policy statements to add. Any existing statement with the same item type and action is overwritten with the provided condition; other statements are left unchanged.
    - `action` 'READ' | 'APPEND' | 'WRITE' | 'ADMIN' | 'ARCHIVE' | 'CHANGE_ASSIGNMENT_OF_OBJECTS' | 'CHANGE_REGISTRY_IDENTIFIER' | 'CREATE' | 'CREATE_ENTRIES_FROM_DRAFT_TEMPLATES' | 'CREATE_LOCATION' | 'CREATE_REQUEST' | 'CREATE_RESULT' | 'CREATE_SUBFOLDER' | 'CREATE_TEST_ORDERS' | 'EDIT_BARCODES' | 'EDIT_CHEMICAL_STRUCTURE' | 'EDIT_CONTAINER' | 'EDIT_FIELDS_IF_PENDING_INVALID' | 'EDIT_FIELDS_IF_IN_PROGRESS' | 'EDIT_FIELDS_IF_TERMINAL' | 'EDIT_NAMES_AND_ALIASES' | 'EDIT_NAMES_AND_BARCODES' | 'EDIT_POLYMER_FEATURES' | 'EDIT_RESIDUES' | 'EDIT_RESTRICTED_SAMPLE_USERS' | 'EDIT_RESULT' | 'EDIT_SCHEMA_AND_FIELDS' | 'EDIT_STATUS' | 'EDIT_USER_EMAIL' | 'EXECUTE_REQUEST' | 'LIST_DEFINITION' | 'MANAGE_COLLABORATORS' | 'MANAGE_CAPABILITIES' | 'READ_APP_CONFIG' | 'READ_APP_SESSION' | 'REGISTER' | 'RETRACT_REVIEW' | 'RESTRICT_SAMPLES' | 'REVOKE_USER_CREDENTIALS' | 'SUSPEND_USER' | 'UNREGISTER' | 'UNRESTRICT_SAMPLES' | 'WRITE_APP_CONFIG' | 'WRITE_APP_SESSION' | 'UNKNOWN', required: The action being granted on the item type.
    - `condition` 'ALWAYS' | 'IS_AUTHOR' | 'IS_ASSIGNEE' | 'UNKNOWN', required: The condition under which the action is granted.
    - `itemType` 'AA_MONOMER' | 'AGENT_MEMORY' | 'AGENT_SKILL' | 'AI_MODEL' | 'ANALYSIS' | 'SQL_DASHBOARD' | 'PROTEIN_FORMAT' | 'APP_DEFINITION' | 'ASYNC_TASK' | 'AV_SCAN_RECORD' | 'BATCH' | 'APP_INSTALLATION' | 'APP_SESSION' | 'BIOENTITY' | 'BOX' | 'BUSINESS_RULE' | 'ASSEMBLY' | 'CHAT' | 'CHEMICAL_COUNTERPART' | 'CONFIG_MIGRATION_HISTORY' | 'CONNECTION' | 'CONTAINER' | 'EVENT_SUBSCRIPTION' | 'EXTENSION_DEFINITION' | 'FOLDER_OR_PROJECT' | 'FILE' | 'INSTRUMENT' | 'NON_LOCATION_STORABLE' | 'LEGACY_DATA_IMPORT_RUN' | 'LIBRARY_PARAMETER_DEFINITION' | 'LOCATION' | 'MCP_SERVER_CONFIG' | 'MCP_SERVER_USER_CONFIGURATION' | 'MODEL_RUN' | 'NUCLEOTIDE_MONOMER' | 'ENTRY' | 'ORGANIZATION' | 'PLATE' | 'PROCEDURE' | 'WORKFLOW_TASK_GROUP' | 'WORKFLOW_TASK' | 'WORKFLOW_OUTPUT' | 'PROTOCOL' | 'REGISTRY' | 'REVIEW_PROCESS' | 'LEGACY_REQUEST' | 'REQUEST_TEMPLATE' | 'REQUEST' | 'RESULT' | 'AGENT' | 'SAMPLE_TYPE' | 'SCHEMA' | 'STUDY' | 'TEAM' | 'TEMPLATE_COLLECTION' | 'TENANT' | 'TEST_ORDER' | 'USER' | 'WAREHOUSE_LOGIN' | 'WAREHOUSE_CUSTOM_VIEW' | 'WORKFLOW' | 'WORKLIST' | 'WORKSHEET' | 'OTHER' | 'UNIT_TYPE' | 'UNKNOWN', required: The type of item the statement applies to.

## Response `200`

OK

- Policy: Defines a named set of permissions that can be assigned to users or groups through collaborations. Policies contain PolicyStatements that specify allowed actions on different item types. When a user is granted a collaboration with a specific policy, they receive all permissions defined in that policy's statements. Common policies include viewer (read-only access), editor (read and write), and admin (full control). Policies are reusable and can be applied across many collaborations.
  - `__typename` string
  - `createdAt` string, datetime
  - `description` string, nullable
  - `id` string
  - `modifiedAt` string, datetime
  - `name` string
  - `policyStatements` PolicyStatement[]
    - `__typename` string
    - `action` 'READ' | 'APPEND' | 'WRITE' | 'ADMIN' | 'ARCHIVE' | 'CHANGE_ASSIGNMENT_OF_OBJECTS' | 'CHANGE_REGISTRY_IDENTIFIER' | 'CREATE' | 'CREATE_ENTRIES_FROM_DRAFT_TEMPLATES' | 'CREATE_LOCATION' | 'CREATE_REQUEST' | 'CREATE_RESULT' | 'CREATE_SUBFOLDER' | 'CREATE_TEST_ORDERS' | 'EDIT_BARCODES' | 'EDIT_CHEMICAL_STRUCTURE' | 'EDIT_CONTAINER' | 'EDIT_FIELDS_IF_PENDING_INVALID' | 'EDIT_FIELDS_IF_IN_PROGRESS' | 'EDIT_FIELDS_IF_TERMINAL' | 'EDIT_NAMES_AND_ALIASES' | 'EDIT_NAMES_AND_BARCODES' | 'EDIT_POLYMER_FEATURES' | 'EDIT_RESIDUES' | 'EDIT_RESTRICTED_SAMPLE_USERS' | 'EDIT_RESULT' | 'EDIT_SCHEMA_AND_FIELDS' | 'EDIT_STATUS' | 'EDIT_USER_EMAIL' | 'EXECUTE_REQUEST' | 'LIST_DEFINITION' | 'MANAGE_COLLABORATORS' | 'MANAGE_CAPABILITIES' | 'READ_APP_CONFIG' | 'READ_APP_SESSION' | 'REGISTER' | 'RETRACT_REVIEW' | 'RESTRICT_SAMPLES' | 'REVOKE_USER_CREDENTIALS' | 'SUSPEND_USER' | 'UNREGISTER' | 'UNRESTRICT_SAMPLES' | 'WRITE_APP_CONFIG' | 'WRITE_APP_SESSION' | 'UNKNOWN'
    - `condition` 'ALWAYS' | 'IS_AUTHOR' | 'IS_ASSIGNEE' | 'UNKNOWN'
    - `itemType` 'AA_MONOMER' | 'AGENT_MEMORY' | 'AGENT_SKILL' | 'AI_MODEL' | 'ANALYSIS' | 'SQL_DASHBOARD' | 'PROTEIN_FORMAT' | 'APP_DEFINITION' | 'ASYNC_TASK' | 'AV_SCAN_RECORD' | 'BATCH' | 'APP_INSTALLATION' | 'APP_SESSION' | 'BIOENTITY' | 'BOX' | 'BUSINESS_RULE' | 'ASSEMBLY' | 'CHAT' | 'CHEMICAL_COUNTERPART' | 'CONFIG_MIGRATION_HISTORY' | 'CONNECTION' | 'CONTAINER' | 'EVENT_SUBSCRIPTION' | 'EXTENSION_DEFINITION' | 'FOLDER_OR_PROJECT' | 'FILE' | 'INSTRUMENT' | 'NON_LOCATION_STORABLE' | 'LEGACY_DATA_IMPORT_RUN' | 'LIBRARY_PARAMETER_DEFINITION' | 'LOCATION' | 'MCP_SERVER_CONFIG' | 'MCP_SERVER_USER_CONFIGURATION' | 'MODEL_RUN' | 'NUCLEOTIDE_MONOMER' | 'ENTRY' | 'ORGANIZATION' | 'PLATE' | 'PROCEDURE' | 'WORKFLOW_TASK_GROUP' | 'WORKFLOW_TASK' | 'WORKFLOW_OUTPUT' | 'PROTOCOL' | 'REGISTRY' | 'REVIEW_PROCESS' | 'LEGACY_REQUEST' | 'REQUEST_TEMPLATE' | 'REQUEST' | 'RESULT' | 'AGENT' | 'SAMPLE_TYPE' | 'SCHEMA' | 'STUDY' | 'TEAM' | 'TEMPLATE_COLLECTION' | 'TENANT' | 'TEST_ORDER' | 'USER' | 'WAREHOUSE_LOGIN' | 'WAREHOUSE_CUSTOM_VIEW' | 'WORKFLOW' | 'WORKLIST' | 'WORKSHEET' | 'OTHER' | 'UNIT_TYPE' | 'UNKNOWN'
  - `policyType` 'DATA_POLICY' | 'SCHEMA_POLICY' | 'POLICY'

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/benchling/apis/benchling-api.md) - [All operations](https://skmtc.dev/benchling/apis/benchling-api/llms.txt) - [OpenAPI document](https://skmtc.dev/benchling/apis/benchling-api/revisions/c9f087b98b8b?raw)
