---
title: "Transfer Ownership"
method: POST
path: "/v2/teams/{team_id}/transfer"
tags: ["v2 - Teams"]
---

# Transfer Ownership

`POST /v2/teams/{team_id}/transfer`

## Request

- Base URL: `https://api.jubjubapp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.jubjubapp.com/v2/teams/{team_id}/transfer`
- Auth: HTTP bearer

Transfer team ownership to another admin.

Only the current owner can transfer ownership.
The new owner must be an Admin of the team.

## Path parameters

- `team_id` string, required

## Headers

- `Authorization` string
- `X-JubJub-Service-Key` string
- `X-JubJub-Agent-Key` string
- `X-JubJub-Platform-Key` string
- `Origin` string
- `Referer` string
- `X-JubJub-Trial-Token` string

## Request body

- TransferOwnershipRequest: Request to transfer team ownership.
  - `new_owner_member_ref` string, required: The new owner's member_ref (or, from older clients, profile ID). Must be an Admin.

## Response `200`

Successful Response

- TeamResponse: Full team response with all details.
  - `team_id` string, required
  - `name` string, required
  - `description` string, nullable
  - `avatar_url` string, nullable
  - `owner_member_ref` string, nullable
  - `owner` PublicPersonResponse: Another person as anyone may see them (founder's rule, 2026-09-25). Never a profile ID, never an email. `member_ref` is the opaque, per-context handle routes accept for this person (null where there is no context to mint one in). `display_name` is a public name or, with none, the person's role and team where the response knows them ("Admin (via Kong)"), else "Member" (2026-10-08; never "JubJub member").
    - `member_ref` string, nullable
    - `display_name` string, required
    - `avatar_url` string, nullable
    - `handle` string, nullable
    - `is_you` boolean
    - `role` string, nullable
    - `via_team` string, nullable
  - `is_owner` boolean
  - `my_role` string, nullable
  - `owner_display_name` string, nullable
  - `owner_avatar_url` string, nullable
  - `owner_email` string, nullable
  - `members` TeamMemberResponse[]
    - `member_ref` string, required
    - `email` string, nullable
    - `display_name` string, required
    - `avatar_url` string, nullable
    - `role` string, required
    - `joined_at` string, date-time, required
    - `invited_by` string, nullable
    - `is_you` boolean
  - `stats` TeamStatsResponse, required: Response DTO for team statistics.
    - `member_count` integer
    - `workspace_count` integer
    - `shared_credential_count` integer
    - `total_contents` integer
    - `total_launches` integer
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, nullable
  - `default_split_mode` string, nullable
  - `default_custom_splits` object[], nullable
  - `pending_invite_split` object, nullable
  - `requested_platforms` string[]
  - `catalogue_contract_address` string, nullable
  - `minted_allocation` object[], nullable
  - `split_locked` boolean
  - `split_locked_reason` string, nullable
  - `saved_split_matches_minted` boolean, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/jubjubapp/apis/jubjub-api.md) - [All operations](https://skmtc.dev/jubjubapp/apis/jubjub-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jubjubapp/apis/jubjub-api/revisions/353157b296f2?raw)
