---
title: "Take ownership of a firm whose Owner has left"
method: POST
path: "/internal/api/settings/team/claim-ownership"
tags: ["SETTINGS"]
---

# Take ownership of a firm whose Owner has left

`POST /internal/api/settings/team/claim-ownership`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/settings/team/claim-ownership`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

For the departed-Owner case, which transfer-ownership cannot serve because only the sitting Owner may call that. Refused while the Owner is still ACTIVE, so a live Owner always hands over deliberately. Audited as a critical access-control event.

## Response `200`

Successful Response

- TeamListResponse
  - `data` TeamMemberResponse[], required
    - `id` string, uuid, required
    - `type` 'user' | 'invite', required: Discriminates the two sources merged into one roster row. The client keys rows on ``f"{type}:{id}"`` and otherwise never needs to know that users and invites are separate tables.
    - `email` string, required
    - `name` string, nullable
    - `role` 'OWNER' | 'ADMIN' | 'USER' | 'SUPER_ADMIN' | 'REVIEWER' | 'PREPARER' | 'MANAGER', required
    - `status` 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | 'INVITED' | 'EXPIRED', required: Roster status — the union of user status and invite lifecycle.
    - `last_login_at` string, date-time, nullable
    - `created_at` string, date-time, required
    - `invited_by` InvitedByRef
      - `id` string, uuid, required
      - `name` string, nullable
    - `invite_expires_at` string, date-time, nullable
    - `is_self` boolean
  - `meta` TeamListMeta, required
    - `total` integer, required
    - `seats` SeatUsage, required: Seats consumed = ACTIVE users + PENDING invites. INACTIVE and SUSPENDED users are free on purpose: deactivating is how a firm frees capacity without destroying the attribution history that IRC §6107(b) retention depends on.
      - `used` integer, required
      - `limit` integer, required
    - `pending_invites` integer, required
    - `expired_invites` integer
    - `can_manage_team` boolean, required
    - `can_transfer_ownership` boolean, required
    - `current_user_role` 'OWNER' | 'ADMIN' | 'USER' | 'SUPER_ADMIN' | 'REVIEWER' | 'PREPARER' | 'MANAGER', required

---

[API](https://skmtc.dev/signalshq/apis/signals-api.md) - [All operations](https://skmtc.dev/signalshq/apis/signals-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signalshq/apis/signals-api/revisions/2c22af3b5576?raw)
