Restore snapshot
curl --request POST \
--url https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore \
--header 'X-API-Key: <api-key>' \
--header 'X-Project-ID: <x-project-id>'import requests
url = "https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore"
headers = {
"X-Project-ID": "<x-project-id>",
"X-API-Key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Project-ID': '<x-project-id>', 'X-API-Key': '<api-key>'}
};
fetch('https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>",
"X-Project-ID: <x-project-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-Project-ID", "<x-project-id>")
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore")
.header("X-Project-ID", "<x-project-id>")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Project-ID"] = '<x-project-id>'
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Operation completed successfully"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Snapshots
Restore Snapshot
Revert the source VM (or volume) to the state captured in this snapshot.
For VM snapshots, the VM must be in passive state (powered off) before calling this endpoint.
After a successful restore, this snapshot’s status flips to active and the previously-active snapshot (if any) is cleared. An active snapshot cannot be deleted — restore the source to a different snapshot first, or take a fresh one.
POST
/
api
/
v1
/
snapshots
/
{id}
/
restore
Restore snapshot
curl --request POST \
--url https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore \
--header 'X-API-Key: <api-key>' \
--header 'X-Project-ID: <x-project-id>'import requests
url = "https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore"
headers = {
"X-Project-ID": "<x-project-id>",
"X-API-Key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Project-ID': '<x-project-id>', 'X-API-Key': '<api-key>'}
};
fetch('https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>",
"X-Project-ID: <x-project-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-Project-ID", "<x-project-id>")
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore")
.header("X-Project-ID", "<x-project-id>")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rafftechnologies.com/api/v1/snapshots/{id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Project-ID"] = '<x-project-id>'
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Operation completed successfully"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Updated May 8, 2026
Authorizations
API key for authentication. Each key is bound to a specific account.
Headers
Project ID. Required for all mutating operations (create, delete, power actions, resize).
Path Parameters
Snapshot ID
Last modified on May 8, 2026