---
title: "Ask a team's owner to move the team into the organization."
method: POST
path: "/v1/organizations/current/moves"
tags: ["organizations"]
---

# Ask a team's owner to move the team into the organization.

`POST /v1/organizations/current/moves`

## Request

- Base URL: `https://api.50heads.com`
- URL: `https://api.50heads.com/v1/organizations/current/moves`
- Auth: HTTP bearer

Organization admins only (403 `organization_admin_required`), on a browser session with a fresh proof in the `x-50h-reauth` header (401 `reauth_required`). It needs a person: API keys, connected apps and service accounts get 403 `session_required`. Every change is written to the organization's audit. The team's owner reads its id on their Team page. Refused when the team's organization has other open workspaces (409 `source_has_other_workspaces`), holds a verified domain, single sign-on or SCIM (409 `source_has_identity`), when its owner already owns a workspace here (409 `owns_workspace_in_organization`), when asks wait for a spend approval (409 `pending_approvals`), or a request is already open (409 `move_exists`). The owner is emailed and has 14 days to accept, with a fresh re-authentication, on their Team page. When they do, the team keeps its members, credits, questions and history, and its old organization is closed with its audit kept.

## Request body

- OrganizationMoveRequestRequest
  - `workspaceId` string, required

## Response `201`

OK

- OrganizationMoveRequestResponse
  - `move` object, required
    - `id` string, required
    - `workspaceId` string, required
    - `workspaceName` string, required
    - `fromOrganizationId` string, required
    - `toOrganizationId` string, required
    - `toOrganizationName` string, required
    - `requestedBy` object, required
      - `id` string, required
      - `name` string, nullable, required
    - `status` 'pending' | 'accepted' | 'declined' | 'canceled' | 'expired', required
    - `createdAt` string, required
    - `expiresAt` string, required
    - `decidedAt` string, nullable, required

## Other responses

- `400`: The request is not valid; `error.details.validation` lists the fixes.
- `401`: No key or token, or it expired or was revoked.
- `403`: The key or token lacks the scope (`insufficient_scope`), or the action is not allowed.
- `429`: Too many requests; wait for Retry-After.

---

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