Skip to content

Offer ownership to another member

The ownership_transfers.create operation: POST /api/v1/ownership_transfers in the REST API and the ownership_transfers_create tool in the MCP server.

POST/api/v1/ownership_transfers

An owner offers ownership of the organization to another member. The member is emailed and has 7 days to accept (ownership_transfers.accept, with their own recent sign-in). When they accept, they become an owner and you become an admin (org_admin), so the organization keeps the same number of owners. Until then nothing changes, and you can withdraw the offer (ownership_transfers.cancel). One offer is open at a time.

Only an owner can offer ownership, from the console, with a sign-in in the last 15 minutes.

At a glance

  • REST: POST /api/v1/ownership_transfers
  • MCP tool: ownership_transfers_create
  • Operation ID: ownership_transfers.create
  • Scope: Organization
  • Permission: org:admin
  • Risk tier: security
  • Dry run: Supported (send Ownrecord-Dry-Run: true)
  • Idempotency: Idempotency-Key required
  • Modes: Test and live
  • Authentication: API key with the org:admin scope
  • Fresh sign-in: In the console, a sign-in within the last 15 minutes
  • Since: M12

Request

Body

A JSON object (Content-Type: application/json):

FieldTypeRequiredDescription
toUserIdusr_… IDYesThe member who would become the owner.

Response

201 Created with a JSON object:

FieldTypeDescription
object"ownership_transfer"
orgIdorg_… ID
fromUserIdusr_… ID
toUserIdusr_… ID
toEmailstring or null
statusone of pending
createdAtdate-time
expiresAtdate-time

Examples

Offer ownership to an admin

HTTP
POST /api/v1/ownership_transfers
Authorization: Bearer or_test_…
Idempotency-Key: 3f1c9a52-7d0e-4b8f-9a61-0c2d5e8b7f14
Content-Type: application/json

{
  "toUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xb"
}

Response (201):

JSON
{
  "object": "ownership_transfer",
  "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
  "fromUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
  "toUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xb",
  "toEmail": "ana@acme.example",
  "status": "pending",
  "createdAt": "2026-10-26T09:00:00.000Z",
  "expiresAt": "2026-11-02T09:00:00.000Z"
}

Errors

CodeHTTP statusWhenWhat to do
owner_required403You aren't an owner of the organization (or you aren't a person).Ask an organization owner (org_owner).
ownership_transfer_not_allowed409The person isn't a member, is an owner already, or is you (details.problem).Offer ownership to another member of the organization who isn't an owner yet.
ownership_transfer_exists409An offer is open already; cancel it first.Cancel the open offer first (ownership_transfers.cancel), then make a new one.
fresh_auth_required403Your last sign-in is older than 15 minutes.Sign in again, then repeat the action within 15 minutes.
permission_denied403You can't manage this organization.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: validation_failed, api_version_unsupported, invalid_json, unsupported_media_type, authentication_required, api_key_invalid, resource_not_found, idempotency_key_required, idempotency_key_reused, idempotency_in_progress, approval_required, approval_rejected, approval_expired, stale_approval, approval_policy_denied, rate_limited, internal_error.