Save Instance Image
curl --request POST \
--url https://api.novita.ai/gpu-instance/openapi/v1/job/save/image \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"instanceId": "<string>",
"image": "<string>",
"registryAuthId": "<string>"
}
'import requests
url = "https://api.novita.ai/gpu-instance/openapi/v1/job/save/image"
payload = {
"instanceId": "<string>",
"image": "<string>",
"registryAuthId": "<string>"
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({instanceId: '<string>', image: '<string>', registryAuthId: '<string>'})
};
fetch('https://api.novita.ai/gpu-instance/openapi/v1/job/save/image', 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.novita.ai/gpu-instance/openapi/v1/job/save/image",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'instanceId' => '<string>',
'image' => '<string>',
'registryAuthId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.novita.ai/gpu-instance/openapi/v1/job/save/image"
payload := strings.NewReader("{\n \"instanceId\": \"<string>\",\n \"image\": \"<string>\",\n \"registryAuthId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
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.novita.ai/gpu-instance/openapi/v1/job/save/image")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"instanceId\": \"<string>\",\n \"image\": \"<string>\",\n \"registryAuthId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novita.ai/gpu-instance/openapi/v1/job/save/image")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"instanceId\": \"<string>\",\n \"image\": \"<string>\",\n \"registryAuthId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"jobId": "<string>"
}Image
Save Instance Image
POST
/
gpu-instance
/
openapi
/
v1
/
job
/
save
/
image
Save Instance Image
curl --request POST \
--url https://api.novita.ai/gpu-instance/openapi/v1/job/save/image \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"instanceId": "<string>",
"image": "<string>",
"registryAuthId": "<string>"
}
'import requests
url = "https://api.novita.ai/gpu-instance/openapi/v1/job/save/image"
payload = {
"instanceId": "<string>",
"image": "<string>",
"registryAuthId": "<string>"
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({instanceId: '<string>', image: '<string>', registryAuthId: '<string>'})
};
fetch('https://api.novita.ai/gpu-instance/openapi/v1/job/save/image', 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.novita.ai/gpu-instance/openapi/v1/job/save/image",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'instanceId' => '<string>',
'image' => '<string>',
'registryAuthId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.novita.ai/gpu-instance/openapi/v1/job/save/image"
payload := strings.NewReader("{\n \"instanceId\": \"<string>\",\n \"image\": \"<string>\",\n \"registryAuthId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
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.novita.ai/gpu-instance/openapi/v1/job/save/image")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"instanceId\": \"<string>\",\n \"image\": \"<string>\",\n \"registryAuthId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novita.ai/gpu-instance/openapi/v1/job/save/image")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"instanceId\": \"<string>\",\n \"image\": \"<string>\",\n \"registryAuthId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"jobId": "<string>"
}Request Headers
Enum:
application/jsonBearer authentication format, for example: Bearer {{API Key}}.
Request Body
Instance ID. String, length: 1-255 characters.
Target image address, including registry/repository:tag. String, length: 1-4095 characters.
Container registry authentication ID. Not required for public registries or platform-provided registries. Required for third-party private registries.
Response
Image save job ID. Use this ID to check status and logs in the Console under Job Management.
Last modified on March 26, 2026
Was this page helpful?
⌘I