Skip to content
Preview. The endpoints on this page are illustrative and are likely to change as they move toward general availability. Documentation is published in advance so you can start shaping your integration; treat request and response details as subject to revision.

User

A User represents a human member of a Cirrus organization. Every user belongs to exactly one org.

Returned by the endpoints under /api/v1alpha1/users and referenced by other resources' owner.userId, host.userId, hostId, and invitedBy.userId fields.

The User schema

json
{
  "id": "usr_...",
  "orgId": "org_...",
  "email": "alex@example.com",
  "firstName": "Alex",
  "lastName": "Rivera",
  "displayName": "Alex Rivera",
  "title": "Director of Sales Ops",
  "department": "Revenue Operations",
  "phoneNumber": "+1-415-555-0199",
  "profileImageUrl": "https://cdn.example.com/avatars/usr_....png",
  "role": "Admin",
  "active": true,
  "invitationStatus": "accepted",
  "invitedBy": {
    "userId": "usr_...",
    "displayName": "Sam Chen"
  },
  "invitedAt": "2026-05-01T12:00:00Z",
  "lastLoginAt": "2026-08-19T14:22:00Z",
  "twoFactorEnabled": true,
  "sourceRefs": {
    "salesforce": {
      "userId": "0051U00000abcXYZ"
    }
  },
  "createdAt": "2026-05-01T12:00:00Z",
  "updatedAt": "2026-07-14T09:30:00Z"
}

Fields

id string

User id, prefixed usr_.

orgId string

The organization this user belongs to, prefixed org_. Always matches the caller's token org context — cross-org users are never returned.

email string

Canonical email. Lower-cased server-side. Not mutable via PATCH — email changes are a security-sensitive dashboard flow.

firstName, lastName string

May be null on freshly invited users who haven't completed signup.

displayName string

Derived — "{firstName} {lastName}" when both are set, else email. Convenient for tables and cards.

title, department, phoneNumber string

Optional profile fields. Any may be null. Mutable via PATCH.

profileImageUrl string

Public CDN URL. Hotlinkable. null when the user hasn't uploaded an avatar.

role string

The user's role. One of:

ValueMeaning
UserStandard org member.
AdminOrganization administrator. Can manage users, settings, and integrations.
Partner AdminAdditional role available only on partner-admin organizations. Grants delegation over child orgs — see Partner Delegation.

Mutable via PATCH. Setting role to Partner Admin on a non-partner-admin org returns 400 invalid-role.

active boolean

true — user can log in and tokens issued to them are valid. false — soft-deactivated; row preserved, tokens invalidated, existing bookings still resolve. Reactivation restores the user's role as it was at deactivation.

invitationStatus string

  • accepted — user has set a password and logged in at least once.
  • pending — invitation has been sent; user hasn't completed signup yet. Still counts against the org's seat cap.
  • expired — invitation link is older than 14 days. Deactivate and re-invite to recover.

invitedBy object

Who issued the invitation. null on users who existed before invitation-tracking was added (grandfathered).

AttributeTypeDescription
userIdstringThe inviting user's id.
displayNamestringDenormalised display name at invite time.

invitedAt string

ISO 8601 UTC. When the invitation was issued. null for grandfathered users.

lastLoginAt string

ISO 8601 UTC. null for users who've never logged in (pending invites, freshly-created accounts).

twoFactorEnabled boolean

Read-only externally. Enrolment is a dashboard flow.

sourceRefs object

External-system references. Present only when the user has connected the corresponding integration.

AttributeTypeDescription
salesforce.userIdstringLinked Salesforce User id. Raw Salesforce id, not wrapped in a usr_ prefix.

createdAt, updatedAt string

ISO 8601 UTC.

  • Organization — parent object. Every user has exactly one orgId.
  • Dealowner.userId references a User.
  • Meetinghost.userId references a User.
  • TranscripthostId and speaker matches reference a User.

Raleigh, NC — a Cirruspath, Inc. company