Module Permissions
Manage module-action assignments on Full-model roles.
Module permissions assign specific actions on specific modules to roles using the Full model.
Scope: permissions:manage
Rate limit: 500/hr
List module permissions
GET /api/v1/permissions/roles/:id/modules
Returns all module-action pairs assigned to a role.
curl https://api.platformxe.com/api/v1/permissions/roles/role_abc123/modules \
-H "x-api-key: pxk_live_your_api_key_here"
const modules = await px.permissions.listModulePermissions('role_abc123');
Response
{
"success": true,
"data": {
"roleId": "role_abc123",
"modules": [
{ "moduleId": "mod_bookings", "actions": ["READ", "CREATE", "UPDATE"] },
{ "moduleId": "mod_properties", "actions": ["READ", "LIST"] }
]
}
}
Replace module permissions
PUT /api/v1/permissions/roles/:id/modules
Replaces the entire module permission set for a role. Modules not included in the request are removed.
| Field | Type | Required | Description |
|---|---|---|---|
modules | array | Yes | Array of module-action assignments |
modules[].moduleId | string | Yes | ID of the registered module |
modules[].actions | string[] | Yes | Actions to grant on this module |
curl -X PUT https://api.platformxe.com/api/v1/permissions/roles/role_abc123/modules \
-H "Content-Type: application/json" \
-H "x-api-key: pxk_live_your_api_key_here" \
-d '{
"modules": [
{ "moduleId": "mod_bookings", "actions": ["READ", "CREATE", "UPDATE", "DELETE"] },
{ "moduleId": "mod_properties", "actions": ["READ", "LIST"] },
{ "moduleId": "mod_invoices", "actions": ["READ"] }
]
}'
await px.permissions.setModulePermissions('role_abc123', {
modules: [
{ moduleId: 'mod_bookings', actions: ['READ', 'CREATE', 'UPDATE', 'DELETE'] },
{ moduleId: 'mod_properties', actions: ['READ', 'LIST'] },
{ moduleId: 'mod_invoices', actions: ['READ'] },
],
});
Actions must match those defined when the module was registered. Attempting to assign an action that the module does not support returns a BAD_REQUEST error.
Error responses
| Code | Description |
|---|---|
BAD_REQUEST | Invalid moduleId or unsupported action |
NOT_FOUND | Role or module does not exist |
FORBIDDEN | API key missing permissions:manage scope |