---
title: "Move to a lower plan; the instance moves to a smaller machine, keeping its data and its address"
method: POST
path: "/instances/{instance_id}/actions/downsize"
tags: ["actions"]
---

# Move to a lower plan; the instance moves to a smaller machine, keeping its data and its address

`POST /instances/{instance_id}/actions/downsize`

## Request

- Base URL: `https://app.lathe.live/api/v1`
- URL: `https://app.lathe.live/api/v1/instances/{instance_id}/actions/downsize`
- Auth: none declared

The machine cannot shrink, so the instance is moved onto a smaller one: its data is copied across and its
address goes with it, so every connection string and every DNS record of yours keeps working. Expect the
instance to be down for the length of the copy. The daily backups belong to the machine being left and do
not come along; a snapshot of it is kept, and the new machine's own daily backups start the next day. The
unused part of the bigger plan comes back as credit on the
next invoice, which is the payment provider's proration and not a refund, and the smaller price applies from then on.

## Path parameters

- `instance_id` string, required

## Request body

- DownsizeIn
  - `tier` string, required: A lower tier than the current one.
  - `confirm` string, required: The instance's name, or its id, typed exactly.

## Response `202`

Successful Response

- Accepted
  - `status` 'queued' | 'already_queued' | 'removed'
  - `job_id` string, nullable, required
  - `instance_id` string, required
  - `message` string, required
  - `job_url` string, nullable
  - `checkout_url` string, nullable: A free instance's upgrade: open in a browser and pay the plan's first month; the upgrade follows the payment.
  - `verified` boolean, nullable: Registry credentials only: whether the registry took them. Null when there was no image of yours there to try them on.
  - `warning` string, nullable: Registry credentials only: why the registry refused them, when it did. They are saved either way.
  - `cidrs` string[], nullable: The allowlist as normalised (allowlist only).
  - `settings` object, nullable: Engine settings only: the whole engine as it will be once the job has run, secrets masked. A read before the job finishes still answers the previous values, so an `add` reads its result here.

## Other responses

- `422`: Validation Error

---

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