# Zone Permissions Set
## Endpoint
`/api/zones/permissions/set`
## Method
GET
## Description
Sets the zone specific permissions.
## Authentication
Token required.
## Parameters
| `token` | string | Yes | - | Session token from `login` or `createToken`. |
| `node` | string | No | - | Node domain name for clustering. When unspecified, the current node is used. Only usable when Clustering is initialized. |
| `zone` | string | Yes | - | Domain name of the zone to set permissions for. |
| `userPermissions` | string | No | - | Pipe `\|` separated table data. Each row: username, canView (bool), canModify (bool), canDelete (bool). Example: `user1\|true\|true\|true\|user2\|true\|false\|false` |
| `groupPermissions` | string | No | - | Pipe `\|` separated table data. Each row: group name, canView (bool), canModify (bool), canDelete (bool). Example: `group1\|true\|true\|true\|group2\|true\|true\|false` |
## Response Fields
| `response.section` | string | Always `"Zones"`. |
| `response.subItem` | string | The zone domain name. |
| `response.userPermissions` | array | Array of user permission objects (same structure as permissions get). |
| `response.userPermissions[].username` | string | Username. |
| `response.userPermissions[].canView` | boolean | Whether the user can view. |
| `response.userPermissions[].canModify` | boolean | Whether the user can modify. |
| `response.userPermissions[].canDelete` | boolean | Whether the user can delete. |
| `response.groupPermissions` | array | Array of group permission objects. |
| `response.groupPermissions[].name` | string | Group name. |
| `response.groupPermissions[].canView` | boolean | Whether the group can view. |
| `response.groupPermissions[].canModify` | boolean | Whether the group can modify. |
| `response.groupPermissions[].canDelete` | boolean | Whether the group can delete. |
## Conditional Logic Notes
- Requires Zones-level Modify permission and Zone-level Delete permission.
- Both `userPermissions` and `groupPermissions` are optional -- you can set just one.
## Edge Cases
- The pipe `|` character serves as both column and row separator. Each row has exactly 4 fields (name + 3 booleans), so parsing relies on grouping every 4 pipe-separated values.
- The response returns the updated permissions, confirming what was set.
- Setting permissions replaces the full set of permissions for that category (users or groups).