Ferndesk

Users

List help center users

Returns help center users for your organization, newest first, cursor-paginated. Use the optional email filter to look up a specific user before updating saved attributes. Requires the content:write scope.

Required scope: content:write

GET /users

List help center users

curl --request GET \
  --url 'https://api.ferndesk.com/v1/users' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "results": [
    {
      "id": "<string>",
      "helpdeskId": "<string>",
      "email": "<email>",
      "name": "<string>",
      "emailVerified": true,
      "disabled": true,
      "attributes": {},
      "lastLoginAt": "<string>",
      "createdAt": "<string>",
      "updatedAt": "<string>"
    }
  ],
  "has_more": true,
  "next_cursor": "<string>"
}

Cursor-paginated help center users

Authorizations

  • Authorization string required header

    All requests require a Bearer token in the Authorization header. API keys are prefixed with fdsk_ and should be kept secret. You can generate and manage keys from the Developer settings page.

    Keys can be restricted to any subset of these scopes (each endpoint lists the scope it requires via x-required-scopes):

    • content:read: Read and search help center articles, collections, sections, and translations
    • content:write: Create and edit article drafts, users, tasks; move articles and collections
    • content:publish: Publish, unpublish, restore, and trash content (make changes live)
    • analytics:read: Read help center reporting, analytics, and article feedback
    • conversations:read: Read AI assistant conversations and transcripts
    • webhooks:manage: Create and manage outbound webhook subscriptions

    Granting content:write or content:publish implies content:read. Keys minted before scoping have null scopes = full access (legacy mode).

Query Parameters

  • email string (email)

    Optional exact email filter. Matching is case-insensitive. Example: [email protected]

  • page_size integer

    Number of items to return per page (1-100). Example: 20

  • start_cursor string

    Opaque pagination cursor. Pass the next_cursor from a previous response to fetch the next page. Example: eyJ2IjoxLCJrIjpbIjIwMjYtMDEtMDEiLCJhcnRfMSJdfQ

Response

application/json
  • results[] object array

    Items in this page. Help center user payload.

    + Show Child Attributes
    • id string

      Ferndesk help center user ID (hcusr_...).

    • helpdeskId string

      Ferndesk helpdesk ID (help_...).

    • email string (email)

      Help center user email address. Emails are stored lowercase.

    • name string | null

      Display name for the help center user.

    • emailVerified boolean

      Whether the email has been verified through a help center auth flow.

    • disabled boolean

      Whether the user is disabled. Disabled users cannot keep active sessions.

    • attributes object

      Saved user attributes used by user-group rules. Values may be strings, numbers, booleans, or arrays of one primitive type. Nested objects are stored flattened into dot-path keys.

      + Show Child Attributes
      • [key: string] anyOf additional
        + Show Child Attributes
        • anyOf options 4 variants anyOf

          One or more options can apply.

          + Show Child Attributes
          • option 1 string | number | boolean
          • option 2 array
            + Show Child Attributes
            • items[] string array item
          • option 3 array
            + Show Child Attributes
            • items[] number array item
          • option 4 array
            + Show Child Attributes
            • items[] boolean array item
    • lastLoginAt string | null

      Most recent help center login timestamp, if any.

    • createdAt string

      ISO 8601 timestamp in UTC.

    • updatedAt string

      ISO 8601 timestamp in UTC.

  • has_more boolean

    Whether more items are available after this page.

  • next_cursor string | null

    Cursor to pass as start_cursor for the next page, or null on the last page.