Manage role-based access to an ibl.ai agent via the platform API — list role policies, search users/groups, and grant/revoke editor, chat, or analytics_viewer roles for users, groups, and emails. Use when controlling who can edit, chat with, or view analytics for an agent.
Installs into .claude/skills of the current project.
Are you the author of Iblai Api Agent Access?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/iblai-iblai-api-agent-access)
---
name: iblai-api-agent-access
description: Manage role-based access to an ibl.ai agent via the platform API — list role policies, search users/groups, and grant/revoke editor, chat, or analytics_viewer roles for users, groups, and emails. Use when controlling who can edit, chat with, or view analytics for an agent.
metadata:
kind: api
---
# iblai-api-agent-access
Manage role-based access control that decides who can **edit**, **chat with**, or
**view analytics for** an agent. Searches resolve users and groups; every grant
and revoke flows through the single `mentor-access/` write endpoint. Use when
controlling who can edit, chat with, or view analytics for an agent.
## Auth & conventions
- **Base URL:** `https://api.iblai.app`
- **Header:** `Authorization: Api-Token $IBLAI_API_KEY` on every request.
- **Path vars:** `{org}` = `$IBLAI_ORG`, `{username}` = `$IBLAI_USERNAME`,
`{mentor}` = the agent's unique id (e.g. `d17dc729-60fd-4363-81a0-f67d9318b03e`).
- **Access writes** go through one endpoint —
**POST** `https://api.iblai.app/dm/api/core/rbac/mentor-access/` — keyed by the
numeric `mentor_id`, adding/removing users, groups, and emails per `role`.
- Not connected yet? Run **`/iblai-api-login`** first to populate `IBLAI_ORG`,
`IBLAI_USERNAME`, and `IBLAI_API_KEY`.
## Reads
- **GET** `…/users/{username}/mentors/{mentor}/settings/` — resolve the numeric `mentor_id`.
- **GET** `https://api.iblai.app/dm/api/core/rbac/mentor-access/?mentor_id={id}&platform_key={org}` — list current role policies.
- **POST** `https://api.iblai.app/dm/api/core/rbac/permissions/check/` — can the user search users/groups?
```json
{
"platform_key": "string (required)",
"resources": ["/users/", "/groups/"]
}
```
- **GET** `https://api.iblai.app/dm/api/core/platform/users/?platform_key={org}&platform_org={org}&query={q}&page=1&page_size=20&return_policies=false` — user autocomplete.
- **GET** `https://api.iblai.app/dm/api/core/rbac/groups/?platform_key={org}&name={q}&page=1&page_size=20&include_users=true` — group autocomplete.
## Writes
- **POST** `https://api.iblai.app/dm/api/core/rbac/mentor-access/` — grant / revoke access (all access changes go through this one endpoint):
```json
{
"platform_key": "string (required)",
"mentor_id": "number (required)",
"role": "editor | chat | analytics_viewer (required)",
"users_to_add": "number[]",
"users_to_remove": "number[]",
"groups_to_add": "number[]",
"groups_to_remove": "number[]",
"emails_to_add": "string[]",
"usernames_to_add": "string[]"
}
```
## Example
Grant a user (id `4218`) the **chat** role and revoke a group (id `91`) on the agent:
```bash
curl -X POST \
"https://api.iblai.app/dm/api/core/rbac/mentor-access/" \
-H "Authorization: Api-Token $IBLAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform_key": "'"$IBLAI_ORG"'",
"mentor_id": 1057,
"role": "chat",
"users_to_add": [4218],
"groups_to_remove": [91]
}'
```
## Notes
- The write endpoint takes the **numeric `mentor_id`**, not the `{mentor}` UUID —
resolve it from the `settings/` read first.
- One role per POST: send `role` as `editor`, `chat`, or `analytics_viewer` and
the add/remove arrays apply to that role only.
- Use `permissions/check/` before searching — if the user lacks
access to `/users/` or `/groups/`, skip the corresponding autocomplete.
- `emails_to_add` and `usernames_to_add` invite by identifier without a prior id
lookup; users and groups are added/removed by numeric id from the search reads.