---
title: "Accept a pending incoming transfer (target org owner/admin)"
method: POST
path: "/v1/transfers/{id}/accept"
tags: ["Transfers"]
---

# Accept a pending incoming transfer (target org owner/admin)

`POST /v1/transfers/{id}/accept`

## Path parameters

- `id` string, required

## Request body

- AcceptTransferRequest
  - `sshKeyIds` string[] — SSH key ids of the ACCEPTING org, which replace the source org's on the transferred VM. Required when the transfer moves a vm (at least one id, each naming a live key of the accepting org); ignored for a cluster, which has no per-resource key list.

## Response `204`

Accepted

## Other responses

- `400` — The request is invalid
- `401` — Missing or invalid API key
- `403` — API key lacks the required scope
- `404` — Resource not found
- `409` — The request conflicts with existing state

## Changes

- **2026-09-05** `383d5864ac75` — 1 breaking, 1 info
  - the `sshKeyIds` request property's minItems was increased to `1`
  - added the non-success response with the status `409`

[Change history](https://skmtc.dev/openrelay/apis/openrelay-api/changes/v1/transfers/:id/accept/post.md)

---

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