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
string
required
Enum:
application/jsonstring
required
Bearer authentication format, for example: Bearer {{API Key}}.
Request Body
string
required
Instance ID. String, length: 1-255 characters.
string
required
Target image address, including registry/repository:tag. String, length: 1-4095 characters.
string
required
Container registry authentication ID. Not required for public registries or platform-provided registries. Required for third-party private registries.
Response
string
required
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