---
title: "List Seats"
method: GET
path: "/v1/customer-portal/seats"
tags: ["customer_portal", "seats", "public"]
---

# List Seats

`GET /v1/customer-portal/seats`

**Scopes**: `customer_portal:read` `customer_portal:write`

## Query parameters

- `subscription_id` string, uuid4, nullable — Subscription ID
- `order_id` string, uuid4, nullable — Order ID

## Response `200`

Successful Response

- SeatsList
  - `seats` CustomerSeat[], required — List of seats
    - `created_at` string, date-time, required — Creation timestamp of the object.
    - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
    - `id` string, uuid, required — The seat ID
    - `subscription_id` string, uuid, nullable, required — The subscription ID (for recurring seats)
    - `order_id` string, uuid, nullable, required — The order ID (for one-time purchase seats)
    - `status` 'pending' | 'claimed' | 'revoked', required
    - `customer_id` string, uuid, nullable, required — The customer ID. When member_model_enabled is true, this is the billing customer (purchaser). When false, this is the seat member customer.
    - `member_id` string, uuid, nullable, required — The member ID of the seat occupant
    - `member` Member, required — A member of a customer.
      - `id` string, uuid4, required — The ID of the member.
      - `created_at` string, date-time, required — Creation timestamp of the object.
      - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
      - `customer_id` string, uuid4, required — The ID of the customer this member belongs to.
      - `email` string, required — The email address of the member.
      - `name` string, nullable, required — The name of the member.
      - `external_id` string, nullable, required — The ID of the member in your system. This must be unique within the customer.
      - `role` 'owner' | 'billing_manager' | 'member', required
    - `email` string, nullable, required — Email of the seat member (set when member_model_enabled is true)
    - `customer_email` string, nullable, required — The assigned customer email
    - `invitation_token_expires_at` string, date-time, nullable, required — When the invitation token expires
    - `claimed_at` string, date-time, nullable, required — When the seat was claimed
    - `revoked_at` string, date-time, nullable, required — When the seat was revoked
    - `seat_metadata` object, nullable, required — Additional metadata for the seat
  - `available_seats` integer, required — Number of available seats
  - `total_seats` integer, required — Total number of seats for the subscription

## Other responses

- `401` — Authentication required
- `403` — Not permitted or seat-based pricing not enabled
- `404` — Subscription or order not found
- `422` — Validation Error

---

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