---
title: "Transfer org ownership to another member AND step down to admin (owner only). To add a co-owner and keep your own role, PUT the member's role instead — an org may have several owners."
method: POST
path: "/v1/orgs/{org_id}/transfer-ownership"
tags: ["orgs"]
---

# Transfer org ownership to another member AND step down to admin (owner only). To add a co-owner and keep your own role, PUT the member's role instead — an org may have several owners.

`POST /v1/orgs/{org_id}/transfer-ownership`

## Request

- Base URL: `https://api.wavehouse.cloud`
- URL: `https://api.wavehouse.cloud/v1/orgs/{org_id}/transfer-ownership`
- Auth: one of:
  - API key in cookie `whc_session`
  - HTTP bearer
  - API key in header `X-API-Key`

## Path parameters

- `org_id` string, required

## Request body

- TransferOrgOwnershipInput
  - `user_id` string, required: the existing member to make the new owner

## Response `200`

OK

- OrgDetailView
  - `connection` ProjectConnectionView
    - `auth_configured` boolean, required: false until the org sets a data-plane auth config
    - `auth_mode` string, required: jwks | hmac | public | unconfigured
    - `hint` string: one-line next step for the customer
    - `hmac_fingerprint` string: non-secret fingerprint (trailing checksum) of the active HMAC secret; shown as whc_hmac_…<fingerprint>
    - `url` string: Public HTTPS endpoint, https://<project_id>.<base-domain>
  - `created_at` string, date-time, required
  - `deletion_grace_seconds` integer, required: how long a deletion scheduled now waits before anything is removed; an owner can cancel it until then
  - `enterprise` boolean, required
  - `icon_url` string
  - `name` string, required
  - `org_id` string, required
  - `owner_email` string
  - `pending_approval` boolean, required
  - `require_mfa` boolean, required
  - `require_sso` boolean, required
  - `role` string, required
  - `status` string, required
  - `tier` string, required
  - `updated_at` string, date-time, required

## Other responses

- `429`: Rate limited, per client IP, API key or org; a client IP is also refused on every route for a while after repeated authentication failures. A limited operation carries RateLimit-Policy and RateLimit on every response; wait Retry-After seconds before retrying.
- `default`: Error

---

[API](https://skmtc.dev/wavehouse/apis/wavehouse-cloud-api.md) · [All operations](https://skmtc.dev/wavehouse/apis/wavehouse-cloud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wavehouse/apis/wavehouse-cloud-api/revisions/adea029bf505?raw)
