List GPU Products
curl --request GET \
--url https://api.novita.ai/gpu-instance/openapi/v1/products \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.novita.ai/gpu-instance/openapi/v1/products"
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'}
};
fetch('https://api.novita.ai/gpu-instance/openapi/v1/products', 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/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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"
"net/http"
"io"
)
func main() {
url := "https://api.novita.ai/gpu-instance/openapi/v1/products"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://api.novita.ai/gpu-instance/openapi/v1/products")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novita.ai/gpu-instance/openapi/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"name": "<string>",
"cpuPerGpu": 123,
"memoryPerGpu": 123,
"diskPerGpu": 123,
"availableDeploy": true,
"minRootFS": 123,
"maxRootFS": 123,
"minLocalStorage": 123,
"maxLocalStorage": 123,
"regions": {},
"price": 123,
"monthlyPrice": [
{
"price": 123,
"month": 123
}
],
"billingMethods": [
"<string>"
],
"spotPrice": "<string>",
"inventoryState": "<string>"
}
]
}Product
List GPU Products
GET
/
gpu-instance
/
openapi
/
v1
/
products
List GPU Products
curl --request GET \
--url https://api.novita.ai/gpu-instance/openapi/v1/products \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.novita.ai/gpu-instance/openapi/v1/products"
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'}
};
fetch('https://api.novita.ai/gpu-instance/openapi/v1/products', 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/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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"
"net/http"
"io"
)
func main() {
url := "https://api.novita.ai/gpu-instance/openapi/v1/products"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://api.novita.ai/gpu-instance/openapi/v1/products")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novita.ai/gpu-instance/openapi/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"name": "<string>",
"cpuPerGpu": 123,
"memoryPerGpu": 123,
"diskPerGpu": 123,
"availableDeploy": true,
"minRootFS": 123,
"maxRootFS": 123,
"minLocalStorage": 123,
"maxLocalStorage": 123,
"regions": {},
"price": 123,
"monthlyPrice": [
{
"price": 123,
"month": 123
}
],
"billingMethods": [
"<string>"
],
"spotPrice": "<string>",
"inventoryState": "<string>"
}
]
}Request Headers
string
required
Enum:
application/jsonstring
required
Bearer authentication format, for example: Bearer {{API Key}}.
Query Parameters
string
Filter by specified cluster ID. String, length limit: 0-255 characters.
integer
Filter by number of GPUs. Integer, valid range: [0, 8].
string
Filter by product name (fuzzy match). String, length limit: 0-255 characters.
integer
Filter by minimum CPU cores per GPU. Integer, value must be greater than or equal to 0.
integer
Filter by minimum memory per GPU (GB). Integer, value must be greater than or equal to 0.
integer
Filter by minimum root filesystem size per GPU (GB). Integer, value must be greater than or equal to 0.
string
Filter by billing method. Options:
onDemand: Pay-as-you-go instance (default)monthly: Subscription instance (monthly or yearly)spot: Spot instance billing
Response
object[]
required
GPU product information.
Hide properties
Hide properties
string
required
Product ID.
string
required
Product name.
integer
required
Number of CPU cores per GPU.
integer
required
Memory size per GPU (GB).
integer
required
Disk size per GPU (GB).
boolean
required
Whether this product can be used to create an instance. Values:
- true: The product can be used to create an instance.
- false: Insufficient resources, cannot create an instance.
integer
required
Minimum available root filesystem size (GB).
integer
required
Maximum available root filesystem size (GB).
integer
required
Minimum available local storage size (GB).
integer
required
Maximum available local storage size (GB).
[string]
required
Available clusters. Indicates that this product is only available in the specified clusters. If the list is empty, the product is available in all clusters.
integer
required
Price for creating a pay-as-you-go instance with this product.
object[]
required
string[]
required
The billing methods supported by this product. Valid values:
onDemand: Pay-as-you-go billingmonthly: Monthly subscription billingspot: Spot instance billing
string
Spot billing instance price.
string
Product inventory status:
none: Out of stocklow: Low stocknormal: Normal stockhigh: Sufficient stock
Last modified on October 23, 2025
Was this page helpful?
⌘I