---
title: "Claim Seat"
method: POST
path: "/v1/customer-seats/claim"
tags: ["customer-seats", "public"]
---

# Claim Seat

`POST /v1/customer-seats/claim`

## Request

- Base URL: `https://api.polar.sh`
- URL: `https://api.polar.sh/v1/customer-seats/claim`
- Auth: none declared

## Request body

- SeatClaim
  - `invitation_token` string, required: Invitation token to claim the seat

## Response `200`

Successful Response

- CustomerSeatClaimResponse: Response after successfully claiming a seat.
  - `seat` CustomerSeat, required
    - `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
  - `customer_session_token` string, required: Session token for immediate customer portal access

## Other responses

- `400`: Invalid, expired, or already claimed token
- `403`: Seat-based pricing not enabled for organization
- `422`: Validation Error

---

[API](https://skmtc.dev/polar/apis/polar-api.md) - [All operations](https://skmtc.dev/polar/apis/polar-api/llms.txt) - [OpenAPI document](https://skmtc.dev/polar/apis/polar-api/revisions/77e4ef94fcc3?raw)
