---
title: "Get account user"
method: GET
path: "/accounts/{account_id}/users/{id}"
tags: ["Account"]
---

# Get account user

`GET /accounts/{account_id}/users/{id}`

Retrieve a user's details within the context of an account, including their roles across the account's workspaces. Returns 404 if the user has no role in any of the account's workspaces. Available to company admins; workspace members or properly permissioned API keys see the user only within their own workspaces.

## Path parameters

- `account_id` string, required
- `id` string, required

## Response `200`

User that was retrieved

- User
  - `id` string — Unique identifier representing a specific user
  - `created_time` integer — Time at which the user was created
  - `created_by_id` string — The ID of the user who created this user
  - `desktop_app_installed` boolean — Flag indicating whether or not the user has installed electron app
  - `last_updated_time` integer — Time at which the user was last updated
  - `last_updated_by_id` string — The ID of the user who last updated this user
  - `email` string — The user's E-Mail address
  - `email_verified` boolean — Flag indicating whether or not the user's e-mail address has been verified
  - `name` string — The user's full name
  - `given_name` string — The user's first/given name
  - `family_name` string — The user's surname
  - `nickname` string — The user's nickname
  - `locale` string — The user's locale
  - `picture` string — URL of the user's picture
  - `roles` UserRole[] — This user's roles, scoped to the requested workspace or account
    - `role` 'owner' | 'editor' | 'viewer', required — The possible values for user role
    - `workspace_id` string — The workspace this role applies to. Preferred over `organization_id`. At least one of `workspace_id` or `organization_id` must be present.
    - `organization_id` string — Deprecated alias for `workspace_id`. Retained so legacy callers keep working; new code should use `workspace_id`.
    - `acknowledged_status` 'requires_acknowledgement' | 'acknowledged' — Status marking whether the user has acknowledged the welcome message in the joined workspace
  - `company_roles` UserCompanyRole[] — This user's company roles
    - `role` 'owner' | 'editor' | 'viewer', required — The possible values for user role
    - `company_id` string, required — The company to which this role applies
  - `firebase_token` string — Token to use for Firebase authentication
  - `onboarded` boolean — flag indicating whether the workspace the user has joined has gone through onboarding
  - `accepted_invitation` boolean — flag indicating whether the user has ever accepted invitation to any workspace
  - `preferences` UserPreferences
    - `default_workspace_id` string — The workspace to start in each new session
    - `web_ui_theme` 'standard' | 'dark' — The users preferred theme for the web ui
    - `page_settings` object — The settings to load for specified pages
    - `trainer_type` 'chrome_extension' | 'electron' — The users preferred type for the trainer
    - `customer_view_mode` 'standard' | 'customer' — When set to customer, hides employee-only features for demo purposes
  - `company` string — The user's company
  - `phone` string — The user's phone number
  - `onboarding` UserOnboarding — An object containing the onboarding information for a specific User.
    - `lang_prompt_shown` boolean — Indicates if the user was ever prompted to change the language.
    - `existing_email_domain` boolean — Indicates if the user has an email that matched the registered ones in the CompanyDomain entity, at the moment of the user creation. This is a ReadOnly field that's only filled when the user doesn't have a role in any workspace.
    - `should_create_trial_with_existing_email_domain` boolean — Indicates if a trial workspace should be created even when the email domain matches an existing one.
    - `guided_test_creation` 'complete' | 'skipped' | 'not_started' | 'not_available' | 'incomplete' — Indicates the status of the browser test creation guided tour
    - `guided_run_test_results` 'complete' | 'skipped' | 'not_started' | 'not_available' | 'incomplete' — Indicates the status of the browser test run guided tour
    - `mobile_testing_guide_status` 'complete' | 'skipped' | 'not_started' | 'not_available' | 'incomplete' — Indicates the status of the guided mobile testing experience
  - `type` 'agent' | 'normal' — Classification of the user. A null/unset value is equivalent to `normal` and is the default for existing users. `agent` users are synthetic users created to act on behalf of AI agent sessions that were initiated by an API key rather than a human user.

## Other responses

- `400` — Invalid or missing parameter
- `401` — User not authenticated
- `403` — User not authorized
- `404` — User is not a member of this account
- `default` — Unknown error

---

[API](https://skmtc.net/mabl/apis/mabl-api.md) · [All operations](https://skmtc.net/mabl/apis/mabl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mabl/mabl-api/revisions/d0fc0114da66/schema)
