# Add user

Adds a user to the organization account.

> Who can use this operation?
>
> Permissions: System Admin

If successful, and user auto provisioning (UAP) is on, and user matches the auto provisioning rules, user is added to the org. If UAP is off, or user does not match UAP rules, user is invited to the org and must explicitly accept the invitation to join.

> Note: On user model plans, this operation sets licensedSheetCreator to true, regardless of the value provided in the request body.

> Note: In some specific scenarios, supplied attributes such as firstName and lastName may be ignored. For example, if you are inviting an existing Smartsheet user to join your organization account, and the invited user has not yet accepted your invitation, any supplied firstName and lastName are ignored.

Endpoint: POST /users
Version: 2.0.0
Security: APIToken, OAuth2

## Header parameters:

  - `Authorization` (string)
    API Access Token used to authenticate requests to Smartsheet APIs.

  - `smartsheet-integration-source` (string)
    Uses the following metadata to distinguish between human-initiated API requests and third-party service-initiated calls by AI Connectors or ITSM:

- Integration source type
- Organization name
- Integration source name 

Format:


TYPE,OrgName,SourceName


Examples: 

AI,SampleOrg,My-AI-Connector-v2

SCRIPT,SampleOrg2,Accounting-updater-script

APPLICATION,SampleOrg3,SheetUpdater
    Example: "AI,SampleOrg,My-AI-Connector-v2"

## Query parameters:

  - `sendEmail` (boolean)
    Either true or false to indicate whether to notify the user by email. Default is false. If true, limit is 1000 emails.

## Request fields (application/json):

  - `admin` (boolean)
    Indicates whether the user is a system admin (can manage user accounts and organization account).
    Example: true

  - `email` (string)
    User's primary email address.
    Example: "jane.doe@smartsheet.com"

  - `firstName` (string)
    User's first name.
    Example: "Jane"

  - `groupAdmin` (boolean)
    Indicates whether the user is a group admin (can create and edit groups).
    Example: true

  - `lastName` (string)
    User's last name.
    Example: "Doe"

  - `licensedSheetCreator` (boolean)
    Indicates whether the user is a licensed user (can create and own sheets).

Note: On user model plans, the [POST /users](/api/smartsheet/openapi/users/add-user) operation sets licensedSheetCreator to true, regardless of the value provided in the request body.
    Example: true

  - `profileImage` (object)

  - `profileImage.imageId` (string)
    Unique image ID.
    Example: "u!1!nAtdn5RJB_o!k6_e_3h2R3w!wmYXPek-yVD"

  - `profileImage.height` (integer)
    Image height.
    Example: 1050

  - `profileImage.width` (integer)
    Image width.
    Example: 1050

  - `resourceViewer` (boolean)
    Indicates whether the user is a resource viewer (can access resource views).
    Example: true

  - `status` (string)
    User status, set to one of the listed enum values.
    Enum: "ACTIVE", "DECLINED", "PENDING", "DEACTIVATED"

## Response 200 fields (application/json):

  - `message` (string)
    Message that indicates the outcome of the request. (One of SUCCESS or PARTIAL_SUCCESS.)
    Enum: "PARTIAL_SUCCESS", "SUCCESS"

  - `resultCode` (number)
    * '0' Success
* '3' Partial Success of Bulk Operation
    Enum: 0, 3

  - `result` (object)
    User object.

  - `result.id` (number)
    User ID.
    Example: 48569348493401200

  - `result.admin` (boolean)
    Indicates whether the user is a system admin (can manage user accounts and organization account).
    Example: true

  - `result.customWelcomeScreenViewed` (string)
    Timestamp of viewing an Enterprise Custom Welcome Screen by the current user.
    Example: "2020-08-25T12:15:47Z"

  - `result.email` (string)
    User's primary email address.
    Example: "jane.doe@smartsheet.com"

  - `result.firstName` (string)
    User's first name.
    Example: "Jane"

  - `result.groupAdmin` (boolean)
    Indicates whether the user is a group admin (can create and edit groups).
    Example: true

  - `result.isInternal` (boolean)
    Indicates whether the user is internal to the plan's domain. 

Note: It's present only when a planId query parameter is supplied.
    Example: true

  - `result.lastLogin` (string)
    The timestamp of the user's last login to Smartsheet.

This property is only included in the response when all of the following conditions are met:

- The include=lastLogin query parameter is present
- The user has logged in to Smartsheet at least once
- The caller has System Admin permissions
- The total number of users in the response is 100 or fewer

This property is excluded from the response if any of the following conditions apply:

- The includeAll=true query parameter is present
- The planId query parameter is present
- The seatType query parameter is present
- The pageSize query parameter is set to a value greater than 100
    Example: "2020-10-04T18:32:47Z"

  - `result.lastName` (string)
    User's last name.
    Example: "Doe"

  - `result.licensedSheetCreator` (boolean)
    Indicates whether the user is a licensed user (can create and own sheets).

Note: On user model plans, the [POST /users](/api/smartsheet/openapi/users/add-user) operation sets licensedSheetCreator to true, regardless of the value provided in the request body.
    Example: true

  - `result.name` (string)
    User's full name (read-only).
    Example: "Jane Doe"

  - `result.profileImage` (object)

  - `result.profileImage.imageId` (string)
    Unique image ID.
    Example: "u!1!nAtdn5RJB_o!k6_e_3h2R3w!wmYXPek-yVD"

  - `result.profileImage.height` (integer)
    Image height.
    Example: 1050

  - `result.profileImage.width` (integer)
    Image width.
    Example: 1050

  - `result.provisionalExpirationDate` (string,null)
    The expiration timestamp of the user's provisional seat type. It's null if the user doesn't have a PROVISIONAL_MEMBER seat type.

Note: It's present only when a planId query parameter is supplied.
    Example: "2025-06-14T09:55:30Z"

  - `result.resourceViewer` (boolean)
    Indicates whether the user is a resource viewer (can access resource views).
    Example: true

  - `result.seatType` (string)
    User's seat type. 

Note: It's only present when either or both the planId and seatType query parameters are supplied (available to system admins only).
    Enum: "MEMBER", "PROVISIONAL_MEMBER", "GUEST", "VIEWER"

  - `result.seatTypeLastChangedAt` (string)
    Timestamp of the user's last seat type change. 

Note: It's only present when either or both the planId and seatType query parameters are supplied (available to system admins only).
    Example: "2025-06-14T09:55:30Z"

  - `result.status` (string)
    User status, set to one of the listed enum values.
    Enum: "ACTIVE", "DECLINED", "PENDING", "DEACTIVATED"

  - `result.sheetCount` (number)
    SUNSET - The sheetCount attribute now holds the value -1 and is included only if the retrieved user's status is ACTIVE.
    Example: -1

## Response default fields (application/json):

  - `refId` (string)
    The ID of the specific error occurrence. Please include this information when contacting Smartsheet support.

  - `errorCode` (number)
    Custom error code from Smartsheet. See the complete [Error Code List](/api/smartsheet/error-codes).

  - `message` (string)
    Descriptive error message.


