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
Enum:
application/jsonBearer authentication format, for example: Bearer {{API Key}}.
Query Parameters
Filter by specified cluster ID. String, length limit: 0-255 characters.
Filter by number of GPUs. Integer, valid range: [0, 8].
Filter by product name (fuzzy match). String, length limit: 0-255 characters.
Filter by minimum CPU cores per GPU. Integer, value must be greater than or equal to 0.
Filter by minimum memory per GPU (GB). Integer, value must be greater than or equal to 0.
Filter by minimum root filesystem size per GPU (GB). Integer, value must be greater than or equal to 0.
Filter by billing method. Options:
onDemand: Pay-as-you-go instance (default)monthly: Subscription instance (monthly or yearly)spot: Spot instance billing
Response
GPU product information.
Hide properties
Hide properties
Product ID.
Product name.
Number of CPU cores per GPU.
Memory size per GPU (GB).
Disk size per GPU (GB).
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.
Minimum available root filesystem size (GB).
Maximum available root filesystem size (GB).
Minimum available local storage size (GB).
Maximum available local storage size (GB).
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.
Price for creating a pay-as-you-go instance with this product.
The billing methods supported by this product. Valid values:
onDemand: Pay-as-you-go billingmonthly: Monthly subscription billingspot: Spot instance billing
Spot billing instance price.
Product inventory status:
none: Out of stocklow: Low stocknormal: Normal stockhigh: Sufficient stock
Last modified on October 23, 2025
Was this page helpful?
āI