Users & Teams API

Manage organization users, groups, permissions, and dashboard access.

Users & Teams API

Users

List Users

GET /api/users

Returns all users in the organization. Admin only.

Get User

GET /api/users/:id

Create User

POST /api/users

Admin only. Creates a new user in the organization.

Field Type Required Description
user_email string Yes Email address
user_name string Yes Full name
user_password string Yes Password (min 8 chars)
user_type integer No User type: 1=Admin, 2=Member, 3=Client (default: 2)

Update User

PUT /api/users/:id

Delete User

DELETE /api/users/:id

Upload Avatar

PUT /api/users/:id/avatar

Change Password

PUT /api/users/:id/change-password
Field Type Description
current_password string Current password
new_password string New password (min 8 chars)

User Approval Workflow

For organizations with approval-based onboarding:

Approve User

POST /api/users/:id/approve

Reject User

POST /api/users/:id/reject

Suspend User

POST /api/users/:id/suspend

Reactivate User

POST /api/users/:id/reactivate

AI Access

PATCH /api/users/:id/ai-access

Toggle AI feature access for a user.

Field Type Description
ai_access boolean Enable/disable AI features

User Dashboard Access

Get User Dashboards

GET /api/users/:id/dashboards

Update User Dashboard Access

PUT /api/users/:id/dashboards
Field Type Description
dashboard_ids integer[] Dashboard IDs the user can access

Groups

Groups allow batch dashboard sharing and user organization.

List Groups

GET /api/groups

Create Group

POST /api/groups
Field Type Required Description
group_name string Yes Group name
group_description string No Description
group_color string No Hex color code

Update Group

PUT /api/groups/:groupId

Delete Group

DELETE /api/groups/:groupId

Group Members

GET /api/groups/:groupId/members
POST /api/groups/:groupId/members      # Body: { "user_ids": [1, 2, 3] }
DELETE /api/groups/:groupId/members/:userId

Group Dashboard Access

GET /api/groups/:groupId/dashboards
PUT /api/groups/:groupId/dashboards    # Body: { "dashboard_ids": [1, 2] }

User Types

Type Value Description
Superadmin 1 Full platform access
Admin 2 Organization admin — can manage users, billing, all settings
Member 3 Internal team — can create surveys, view workspaces
Client 6 External — can only view shared dashboards

User Status

Status Value Description
Active 1 Normal access
Pending 2 Awaiting admin approval
Suspended 3 Account suspended
Deleted 0 Soft-deleted

GET /api/invite-links
POST /api/invite-links
Field Type Description
invite_role integer Default role for joining users
invite_max_uses integer Max uses (null = unlimited)
expires_at string Expiration date (ISO 8601)
DELETE /api/invite-links/:id