---
title: "Create VM restore (flat)"
method: POST
path: "/virtual_machine_restores"
tags: ["Virtual machine restores"]
---

# Create VM restore (flat)

`POST /virtual_machine_restores`

Restores the backup referenced in the body into a new Virtual Machine. Optionally accepts a `name` for the restored VM and a target `site` slug to restore into another region.

## Request body

- VirtualMachineRestorePayload
  - `data` object
    - `type` 'virtual_machine_restores'
    - `attributes` object
      - `backup` string — Source backup id. Required on the flat `POST /virtual_machine_restores`; taken from the path when nested under a backup.
      - `name` string, nullable — Optional name for the restored VM. Auto-generated from the source VM when omitted.
      - `site` string, nullable — Optional target site slug. Restores into that region (migration) instead of the backup's own region. Defaults to the backup's site.

## Response `201`

Created

## Other responses

- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict — another operation on this backup is in progress (`BACKUP_LOCKED`)
- `422` — Unprocessable Entity — the source backup is not ready (`SOURCE_BACKUP_NOT_READY`) or no cluster in the requested site can host the restore (`NO_ELIGIBLE_CLUSTER`)

---

[API](https://skmtc.net/latitude/apis/latitude-sh-api.md) · [All operations](https://skmtc.net/latitude/apis/latitude-sh-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/latitude/latitude-sh-api/versions/7302d79e39bb/schema)
