GET /api/v1/users

List all users in the organization with pagination.

Parameters

NameTypeRequiredDescription
pageintegerOptionalPage number, default 1
per_pageintegerOptionalResults per page, default 20, max 100
rolestringOptionalFilter by role (admin, member, viewer)
statusstringOptionalFilter by status (active, suspended, pending)

Response Fields

NameTypeRequiredDescription
usersarrayOptionalList of user objects
totalintegerOptionalTotal number of matching users
pageintegerOptionalCurrent page
per_pageintegerOptionalResults per page

Example Response

{
  "users": [],
  "total": 42,
  "page": 42,
  "per_page": 42
}
GET /api/v1/users/{user_id}

Get detailed profile for a specific user.

Parameters

NameTypeRequiredDescription
user_idstringRequiredThe unique user identifier

Response Fields

NameTypeRequiredDescription
idstringOptionalUser ID
emailstringOptionalUser email address
namestringOptionalFull name
rolestringOptionalUser role
created_atstringOptionalISO 8601 timestamp
last_loginstringOptionalISO 8601 timestamp of last login

Example Response

{
  "id": "id_123",
  "email": "user@example.com",
  "name": "name value",
  "role": "role value",
  "created_at": "created at value",
  "last_login": "last login value"
}
POST /api/v1/users

Create a new user account.

Parameters

NameTypeRequiredDescription
emailstringRequiredEmail address for the new user
namestringRequiredFull name
rolestringOptionalRole assignment, default "member"

Response Fields

NameTypeRequiredDescription
idstringOptionalNew user ID
emailstringOptionalConfirmed email
statusstringOptional"pending" until email verified

Example Response

{
  "id": "id_123",
  "email": "user@example.com",
  "status": "pending"
}
PATCH /api/v1/users/{user_id}

Update user profile fields.

Parameters

NameTypeRequiredDescription
user_idstringRequiredUser to update
namestringOptionalUpdated name
rolestringOptionalUpdated role

Response Fields

NameTypeRequiredDescription
idstringOptionalUser ID
updated_fieldsarrayOptionalList of fields that were changed

Example Response

{
  "id": "id_123",
  "updated_fields": []
}
DELETE /api/v1/users/{user_id}

Deactivate a user account. Does not permanently delete data.

Parameters

NameTypeRequiredDescription
user_idstringRequiredUser to deactivate

Response Fields

NameTypeRequiredDescription
statusstringOptional"deactivated"

Example Response

{
  "status": "deactivated"
}