Transfer projects between organizations
Transfers selected projects, identified by their IDs, from your organization to another specified organization.
POST /organizations/{source_org_id}/projects/transfer
Transfers selected projects, identified by their IDs, from your organization to another specified organization.
curl "https://console.neon.tech/api/v2/organizations/$SOURCE_ORG_ID/projects/transfer" \
-X POST \
-H "Authorization: Bearer $NEON_API_KEY"Also available in
import { createNeonClient, raw } from '@neon/sdk';
const neon = createNeonClient({ apiKey: process.env.NEON_API_KEY });
const { data } = await raw.transferProjectsFromOrgToOrg({
client: neon.client,
path: {
source_org_id: process.env.SOURCE_ORG_ID
}
});Console path: Organization → Settings → Transfer projects
Parameters
Section titled “Parameters”Source org ID
source_org_id
string
The Neon organization ID (source org, which currently owns the project)
Request body
Section titled “Request body”2 required Required: destination_org_id, project_ids.
Destination org ID
destination_org_id
string
The destination organization identifier
Project IDs
project_ids
array
The list of projects ids to transfer. Maximum of 400 project ids
Response
Section titled “Response”200
Projects successfully transferred from organization to organization
No example available.
Errors
Section titled “Errors”406
Transfer failed. The target organization has too many projects or an incompatible plan. Reduce projects or upgrade the target organization.
422
Transfer failed. Projects with active integrations (for example, GitHub or Vercel) cannot be transferred.
default
General error
This endpoint can return the standard Neon API error response.
Response fields
messageRequired. Human-readable error message.codeRequired. Machine-readable error code.request_idOptional. Request identifier for debugging. You can provide one with theX-Request-IDheader.
Retry guidance
If no response is returned, the request may still have reached the server. This is why retry safety depends on the method and status code.
Idempotent methods (GET, HEAD, OPTIONS) are generally safe to retry after a network error or timeout. Non-idempotent methods (POST, PATCH, DELETE, PUT) can change state, so avoid automatic retries unless your workflow can tolerate duplicate effects.
Responses with 423 Locked or 503 Service Unavailable are safe to retry. 423 Locked means the resource is temporarily locked, usually because another operation is in progress.