---
title: "Request a space transfer"
method: POST
path: "/v1/space-transfers"
tags: ["Spaces"]
---

# Request a space transfer

`POST /v1/space-transfers`

## Request

- Base URL: `https://api.spacefast.com`
- URL: `https://api.spacefast.com/v1/space-transfers`
- Auth: HTTP bearer

Starts a tenant-local ownership transfer to another principal. The transfer completes at once when the caller can accept for the receiving team, or can create spaces there and the space has no custom domain, database, or paid resource. Otherwise the current owner keeps full control until the receiving side accepts.

## Request body

- object
  - `spaceId` string, required: Space to transfer (`spc_`).
  - `to` object, required: Receiving principal. Must live in the space's tenant; cross-tenant transfers are unsupported.
    - `principalType` 'team' | 'external', required: Receiving principal kind: a first-party team or a host-managed external principal.
    - `principalId` string, required: Tenant-local principal id: a team id or an integrator external customer id.

## Response `201`

Response for status 201

- object
  - `$schema` string, uri: Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.
  - `data` object, required
    - `id` string, required: SpaceTransfer id (`trf_`).
    - `spaceId` string, required: Space being transferred.
    - `from` object, required: Current owner. Keeps full control, serving, and billing attribution until `completed`.
      - `principalType` 'team' | 'external', required: Receiving principal kind: a first-party team or a host-managed external principal.
      - `principalId` string, required: Tenant-local principal id: a team id or an integrator external customer id.
      - `tenantId` string, required: Tenant both transfer parties live in.
    - `to` object, required: Receiving principal. Accept is a to-side action.
      - `principalType` 'team' | 'external', required: Receiving principal kind: a first-party team or a host-managed external principal.
      - `principalId` string, required: Tenant-local principal id: a team id or an integrator external customer id.
      - `tenantId` string, required: Tenant both transfer parties live in.
    - `status` 'pending_confirmation' | 'completed' | 'canceled' | 'expired', required: Transfer state. Accepting moves ownership in one transaction, so a transfer is either still `pending_confirmation` or already terminal.
    - `expiresAt` string, date-time, required: Instant when a pending transfer expires (default 7 days).
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `default`: Problem details (RFC 9457). Any 4xx/5xx response is one `application/problem+json` document.

---

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