---
title: "List users"
method: GET
path: "/v4/user"
tags: ["User V4"]
---

# List users

`GET /v4/user`

## Request

- Base URL: `https://developer.meetergo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://developer.meetergo.com/v4/user`
- Auth: one of:
  - API key in header `x-meetergo-api-user-id`
  - HTTP bearer
  - HTTP bearer

Retrieves a list of users from your company with optional filtering and pagination. Admin access required.

## Query parameters

- `userType` 'standard' | 'resource' | 'api-platform' | 'partner' | 'viewer'
- `limit` number
- `offset` number

## Response `200`

Users retrieved successfully

- ListUsersResponseDto
  - `users` UserResponseDto[], required: Array of users matching the query criteria
    - `id` string, required: User unique identifier
    - `companyId` string, nullable: Company ID the user belongs to
    - `email` string: User email address
    - `isAdmin` boolean, required: Whether user is a company administrator
    - `familyName` string, required: User family name/lastname
    - `givenName` string, required: User given name/firstname
    - `picture` string: URL to user profile picture
    - `createdAt` string, required: User creation timestamp
    - `updatedAt` string, required: User last update timestamp
    - `deletedAt` string, nullable: User deletion timestamp
    - `title` string, required: User job title
    - `anonymousBooking` boolean, required: Whether user allows anonymous booking
    - `anonymousCalendarActivity` boolean, required: Whether user allows anonymous calendar activity
    - `slug` string, required: User unique slug for public URLs
    - `showGettingStartedList` boolean, required: Whether to show getting started list
    - `recieveEmailMarketing` boolean, required: Whether user receives marketing emails
    - `timezone` string, required: User timezone
    - `language` 'en' | 'de' | 'fr' | 'es' | 'no' | 'nl' | 'it' | 'pl' | 'se' | 'tr' | 'da', required
    - `referralId` string: Referral ID if user was referred
    - `personalPage` PersonalPageResponseDto, required
      - `useCustomColors` boolean, required: Whether custom colors are enabled for the personal page
      - `primaryColor` string, required: Primary color for the personal page theme
      - `secondaryColor` string, required: Secondary color for the personal page theme
      - `headerImage` string, nullable: Header image URL for the personal page
      - `description` string, required: Personal page description text
      - `onlineProfiles` OnlineProfiles, required
        - `linkedIn` string, required
        - `facebook` string, required
        - `twitter` string, required
        - `instagram` string, required
        - `xing` string, required
        - `phone` string, required
        - `email` string, required
        - `customLinks` CustomLink[], required
          - `name` string, required
          - `url` string, required
          - `icon` string, required
        - `addressStreet` string, required
        - `addressCity` string, required
        - `addressPostalCode` string, required
        - `addressCountry` string, required
      - `meetingTypes` MeetingTypeBasicResponseDto[]: Meeting types assigned to this personal page
        - `meetingInfo` MeetingInfo, required
          - `name` string, required: Name of the meeting type
          - `description` string, required: Description of the meeting type
          - `nameLocalised` LocalisedContent
            - `en` string, required
            - `de` string
            - `fr` string
            - `es` string
            - `no` string
            - `it` string
            - `nl` string
            - `da` string
            - `pl` string
            - `se` string
            - `tr` string
          - `descriptionLocalised` LocalisedContent
            - `en` string, required
            - `de` string
            - `fr` string
            - `es` string
            - `no` string
            - `it` string
            - `nl` string
            - `da` string
            - `pl` string
            - `se` string
            - `tr` string
          - `enableRedirect` boolean, required: Enable redirect after booking completion
          - `redirect` string, required: Redirect URL to navigate after booking
          - `passEventDetailsToRedirect` boolean, required: Pass event details (invitee name, email, form answers) as query params to redirect URL
          - `duration` number, required: Primary duration in minutes
          - `channel` 'local' | 'local-attendee' | 'google' | 'zoom' | 'phone' | 'phone-incoming' | 'whatsapp' | 'connect' | 'webex' | 'skypeForConsumer' | 'skypeForBusiness' | 'teamsForBusiness' | 'teamsForBusiness2' | 'teamsForExchange' | 'teams2ForExchange' | 'custom' | 'resource' | 'whereby' | 'kmeet' | 'zava' | 'jitsi' | 'nextcloudTalk' | 'openTalk' | 'alfaview', required: Meeting channel/location type
          - `customChannelName` string, required: Custom name for the meeting channel
          - `customChannelLink` string, required: Custom link for the meeting channel
          - `connectChannelName` string, required: Custom display name for the connect channel
          - `groupBooking` boolean, required: Enable group booking (multiple attendees per slot)
          - `showAvailableSlots` boolean, required: Show available spots count on the booking page
          - `enrichInvitee` boolean, required: Enable invitee data enrichment
          - `autoCreateSpace` boolean, required: Auto-create a Space when someone books
          - `spacePresetId` object, nullable: Space preset id used for the auto-created Space
          - `spaceAutoInvite` boolean, required: Publish the auto-created Space and invite the booker
          - `confirmationButton` ConfirmationButton, required
            - `useConfirmationButton` boolean, required
            - `text` string, required
            - `color` string, required
            - `link` string, required
          - `bufferBefore` number, required: Buffer time before meeting in minutes
          - `bufferAfter` number, required: Buffer time after meeting in minutes
          - `bufferMustStayWithinWorkingHours` boolean, required: Only offer slots where buffer fits within working hours (no spillover into breaks or after-hours)
          - `rollingSlots` boolean, required: Restart the slot grid after each appointment instead of keeping a fixed grid per working block
          - `color` object, nullable: Color for the meeting type in RGB format, e.g. "rgb(0, 153, 255)"
        - `spots` number, required: Number of available spots for the meeting
        - `enabled` boolean, required: Whether the meeting type is enabled
        - `slug` string, required: Meeting type unique slug
        - `formId` string: Form ID associated with the meeting type
        - `communicationSettingsId` number, nullable: Communication settings ID
        - `availabilityId` string: Availability ID associated with the meeting type
        - `companyId` string, required: Company ID that owns this meeting type
        - `queueId` string: Queue ID if meeting type uses a queue
        - `locations` string[], required: Available meeting locations
        - `workspaceId` string: Workspace ID if meeting type belongs to a workspace
        - `isGlobalQueue` boolean, required: Whether this meeting type uses a global queue
        - `userId` string: User ID who owns this meeting type
        - `createdById` string, required: User ID who created this meeting type
        - `createdAt` string, required: Creation timestamp
        - `deletedAt` string: Deletion timestamp if soft deleted
        - `resourceChannelIds` string[]: IDs of resource channels associated with this meeting type
    - `calendarSyncProviders` CalendarSync
      - `id` string, required
      - `type` 'google' | 'outlook' | 'icloud' | 'caldav' | 'exchange' | 'nextcloud' | 'smart-we' | 'salesforce', required
    - `defaultAvailabilityId` string: Default availability ID
    - `aircallUserId` string: Aircall user ID
    - `phone` string: User phone number
    - `userType` 'standard' | 'resource' | 'api-platform' | 'partner' | 'viewer', required
    - `wherebyApiKey` string, nullable: Whereby API key
    - `fullName` string, required: User full name (computed)
    - `groupIds` string[]: IDs of groups the user belongs to
    - `groupAdminIds` string[]: IDs of groups the user is admin of
    - `meetingTypeIds` string[]: IDs of meeting types owned by the user
    - `meetingTypeTemplateIds` string[]: IDs of meeting type templates created by the user
    - `appointmentIds` string[]: IDs of appointments where user is a host
    - `workspaceIds` string[]: IDs of workspaces the user belongs to
    - `reminderIds` string[]: IDs of reminders owned by the user
    - `formIds` string[]: IDs of forms owned by the user
    - `queueIds` string[]: IDs of queues the user belongs to
    - `queueUserGroupIds` string[]: IDs of queue user groups the user belongs to
    - `availabilityIds` string[]: IDs of availabilities owned by the user
    - `company` CompanyBasicDto
      - `id` string, required: Company unique identifier
      - `name` string, required: Company name
      - `slug` string, required: Company unique slug
      - `logo` string: Company logo URL
      - `description` string: Company description
      - `timezone` string, required: Company timezone
      - `language` string, required: Company language
      - `tier` string: Effective plan tier (trial resolves to the trialled tier)
      - `isInTrial` boolean: Whether the company is in a trial
      - `featureAccess` object: Resolved plan entitlements and limits. Lets an integration explain a limit before hitting it instead of failing into one.
  - `total` number, required: Total number of users matching the query criteria (before pagination)
  - `count` number, required: Number of users returned in this response
  - `offset` number, required: Number of users skipped (pagination offset)

## Other responses

- `400`: The request did not validate. `message` lists the constraints that failed.
- `401`: Missing, malformed, or expired credentials.
- `403`: Authenticated, but not allowed: the plan does not include this feature, or the token is scoped away from it.
- `429`: Rate limited. Back off and retry.

---

[API](https://skmtc.dev/meetergo/apis/meetergo-platform-api.md) · [All operations](https://skmtc.dev/meetergo/apis/meetergo-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meetergo/apis/meetergo-platform-api/revisions/b5d66cd8be67?raw)
