---
title: "Restore to a new server"
method: POST
path: "/servers/{id}/backups/{backupId}/restore"
tags: ["Backups"]
---

# Restore to a new server

`POST /servers/{id}/backups/{backupId}/restore`

## Request

- Base URL: `https://gpucloud.ca/api`
- URL: `https://gpucloud.ca/api/servers/{id}/backups/{backupId}/restore`
- Auth: HTTP bearer

Creates a NEW server (same GPU model and region) from the backup; the original server is not changed. Billed like any new hourly server (first hour from credits, budget limits apply).

## Request body

- object
  - `name` string
  - `expectedHourlyRateCad` number

## Response `200`

New server created

- object

## Other responses

- `401`: No API key (accountAction.code NO_API_KEY) or an invalid, expired, revoked or read only key on a write (INVALID_API_KEY). Provide a valid API key as `Authorization: Bearer <key>`; accountAction gives the links to create an account and a key.
- `402`: Payment required (accountAction.code PAYMENT_REQUIRED: not enough credit, no saved card or a declined card) or a budget cap reached (BUDGET_CAP_REACHED: account or server budget limit, nothing charged). accountAction.balanceCad gives the balance and, when a server is concerned, accountAction.hibernationThresholdCad its hibernation threshold (a server is hibernated when the balance reaches it, kept 12 hours at most, then deleted; it restarts as soon as the balance is above it). Add your card and credits at accountAction.action.url (or raise the cap), then send the same request again.
- `404`: Resource not found
- `409`: Backup not ready / out of stock
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/gpucloud/apis/gpu-cloud-api.md) · [All operations](https://skmtc.dev/gpucloud/apis/gpu-cloud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gpucloud/apis/gpu-cloud-api/revisions/ed530411f5c7?raw)
