Users are the staff accounts of your workspace: the people who sign in to the app. Use this read-only list to map interview panels and audit actors to people in your directory. Candidate, employee and trainer portal accounts are not listed.
All endpoints sit under /api/v1 and need an API key (Authorization: Bearer jdr_live_…) created by your Workspace Admin in Settings → Integrations.
Endpoints
| Method and path | What it does | Permission |
|---|---|---|
GET /api/v1/users | List staff users (cursor pagination, updatedSince, ?roleId=) | users.view |
Users are read-only through the API. Invite, change roles and remove users in Settings → Users.
The user object
| Field | Type | Notes |
|---|---|---|
id | string | Used in interviewerIds and as the audit actor id. |
fullName | string | |
email | string | The sign-in email. |
role | object or null | { id, name: { ar, en }, isWorkspaceAdmin }, see Roles. Null for a staff account without a role yet. |
status | string | active or disabled (can't sign in). |
disabledAt | ISO 8601 or null | |
locale | string | ar or en. |
personId | string or null | The user's own employee record, when linked. |
createdAt, updatedAt | ISO 8601 |
Passwords, sign-in tokens, two-factor (MFA) settings and session data are never returned.
updatedSince returns users created or changed since that time (a role change counts). Removed users are listed in the deletion feed (GET /api/v1/deleted). Invitations and every other account action appear in the audit feed (users.user.* and users.invitation.*).
Webhook events
| Event | When | data.object |
|---|---|---|
user.updated | The user's role is changed (changedFields: ["role"]), or the account is disabled or re-enabled (changedFields: ["status", "disabledAt"]) | The user |
user.deleted | A staff account is removed | { id, externalRefs: [] } |
These events fire whether the change is made in your workspace's Users & roles settings or by Jadiroon's support team from the Platform Console (disabling and re-enabling an account is console-only).
Invitations send no event: a user appears once the invitation is accepted.
Errors
| Status and code | Meaning |
|---|---|
403 forbidden | The key lacks users.view. |
422 validation_failed | Invalid limit, cursor or updatedSince. |
Example
curl https://jadiroon.com/api/v1/users -H "Authorization: Bearer $JADIROON_KEY"
{
"data": [
{
"id": "cmvikf7xk0003knoqj7x054vw",
"fullName": "Sara Alharbi",
"email": "sara@example.com",
"role": { "id": "cmviqdaf8004lknffw1rpf3ww", "name": { "ar": "مدير مساحة العمل", "en": "Workspace Admin" }, "isWorkspaceAdmin": true },
"status": "active",
"disabledAt": null,
"locale": "ar",
"personId": null,
"createdAt": "2026-10-21T20:29:16.137Z",
"updatedAt": "2026-10-24T10:02:11.420Z"
}
],
"nextCursor": null
}