> ## Documentation Index
> Fetch the complete documentation index at: https://docs.instapods.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transfer a Pod

> Hand a pod and its billing over to another InstaPods account.

You can give a pod to someone else's InstaPods account - a client taking over the site you built for them, a project moving to a company account, or a co-founder picking up a service you no longer run.

A transfer is a two-step handshake. You make an offer; the recipient has to accept it. Nothing moves, and nobody's bill changes, until they do.

## Sending an offer

Open the pod and find the **Transfer ownership** card at the bottom of its **Overview** tab. Click **Transfer this pod**, enter the recipient's email address, and optionally add a message.

The recipient gets an email with a link into their dashboard. The offer stays open for **7 days** and then expires.

Over the API:

```bash theme={null}
curl -X POST https://app.instapods.com/api/pods/my-app/transfer \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "them@example.com",
    "message": "All yours - the deploy docs are in the README."
  }'
```

While an offer is pending you can withdraw it at any time (**Withdraw offer** on the card, or `DELETE /api/pods/my-app/transfer`). Only one offer can be outstanding per pod.

<Note>
  The recipient doesn't have to have an InstaPods account yet. They'll be prompted to create one, and the offer is matched to whatever account signs in with that email address.
</Note>

## What the recipient inherits

Almost everything keyed to the pod goes with it:

* Files and application data
* Databases and managed services
* Environment variables
* Backups
* Custom domains
* Deployment history, including build logs
* Any visitor feedback the pod has collected

Two things are deliberately removed at the moment of handover, because they are *your* credentials rather than the pod's:

* **Your Git connection.** The repository link, deploy key and webhook are deleted, and the token embedded in the checkout's `origin` remote is stripped. Auto-deploy stops until the new owner connects their own repository.
* **Your SSH keys.** The pod's `authorized_keys` is emptied. The new owner adds their own key from the dashboard to get shell access.

<Warning>
  Once the recipient accepts, **you lose all access to the pod** and it disappears from your dashboard. There is no undo - getting it back means asking the new owner to transfer it to you.
</Warning>

## Accepting an offer

Incoming offers appear as a banner on your dashboard and on the **Transfers** page. Each one shows the pod, its plan, and who it's from.

```bash theme={null}
# See offers addressed to you
curl https://app.instapods.com/api/pod-transfers \
  -H "Authorization: Bearer YOUR_TOKEN"

# Take the pod on
curl -X POST https://app.instapods.com/api/pod-transfers/TRANSFER_ID/accept \
  -H "Authorization: Bearer YOUR_TOKEN"

# Or turn it down
curl -X POST https://app.instapods.com/api/pod-transfers/TRANSFER_ID/decline \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Accepting a pod puts a recurring charge on your account, so the same checks apply as when you create a pod yourself:

| Requirement                    | Why                                                                                                          |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| A payment method on file       | The pod bills to you from the moment you accept                                                              |
| No unpaid invoices             | You can't take on another charge while past due                                                              |
| Trust limits, for new accounts | A brand-new account can't accept a Scale or Turbo pod, or exceed its pod cap, until its first payment clears |

The dashboard shows why an offer can't be accepted before you click, rather than failing at the last step.

## How billing splits

Billing splits at the **moment of acceptance**, not at the start or end of the month. The sender is invoiced for the days up to the handover; the recipient is invoiced from then on. Neither side pays for the handover day twice.

<Note>
  You can't transfer a pod out of an account with an unpaid invoice - settle it first. Days already accrued stay on your invoice either way.
</Note>

## When a transfer is refused

| Message                                                   | What to do                                        |
| --------------------------------------------------------- | ------------------------------------------------- |
| The pod is *creating*, *migrating* or otherwise unsettled | Wait for it to finish and try again               |
| The pod's container is missing                            | Contact support before transferring               |
| Settle your outstanding invoice first                     | Pay the open invoice on the sending account       |
| This transfer expired                                     | Offers last 7 days - ask the sender for a new one |
| This pod is already owned by your active team             | Switch to the team you meant to receive it into   |
