---
title: "List user plans"
method: GET
path: "/users/{userId}/plans"
tags: ["users"]
---

# List user plans

`GET /users/{userId}/plans`

List plans to which the user belongs.

> **Note:** For pagination guidance, refer to [Token-based pagination](/api/smartsheet/guides/basics/pagination#token-based-pagination).

## Query parameters

- `lastKey` string
- `maxItems` integer
- `displayContributorSeatType` boolean

## Response `200`

Returns result object.

**Note:** For pagination guidance, refer to [Pagination](/api/smartsheet/guides/basics/pagination).

- object
  - `lastKey` string — The ID of the last item returned in the set. Use as `lastKey` (query parameter) in the request for the next page.
  - `data` UserPlan[] — List of user' plan objects.
    - `planId` integer — Unique identifier for the plan.
    - `seatType` 'MEMBER' | 'PROVISIONAL_MEMBER' | 'CONTRIBUTOR' | 'GUEST' | 'VIEWER' — User's seat type. **DEPRECATED - As early as the sunset date specified in this [changelog entry](/api/smartsheet/changelog#deprecated-viewer-seat-type-in-favor-of-contributor-new), `VIEWER` will be removed and replaced by `CONTRIBUTOR` for all free-tier plans users.** Commenting and attachments are free to the `CONTRIBUTOR` seat type.
    - `seatTypeLastChangedAt` string, date-time — Timestamp of the user's last seat type change.
    - `isInternal` boolean — Indicates whether the user is internal to the plan's domain.
    - `provisionalExpirationDate` string, date-time, nullable — The expiration timestamp of the user's provisional seat type. It's null if the user doesn't have a `PROVISIONAL_MEMBER` seat type.

## Other responses

- `default` — Generic error payload.

---

[API](https://skmtc.net/smartsheet/apis/smartsheet-openapi-reference.md) · [All operations](https://skmtc.net/smartsheet/apis/smartsheet-openapi-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smartsheet/smartsheet-openapi-reference/versions/b4afda95fb51/schema)
