List Products
curl --request GET \
--url https://api.novita.ai/gpus/v2/products \
--header 'Authorization: <authorization>'import requests
url = "https://api.novita.ai/gpus/v2/products"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.novita.ai/gpus/v2/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/gpus/v2/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>"
],
]);
$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/gpus/v2/products"
req, _ := http.NewRequest("GET", url, nil)
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/gpus/v2/products")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novita.ai/gpus/v2/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "prod-a100-80g",
"name": "A100-80G",
"type": "gpu",
"category": "instance",
"description": "NVIDIA A100 80GB",
"region_ids": [
"c-east-1"
],
"resource_spec": {
"gpu": {
"spec_id": "spec-a100-80g",
"name": "A100",
"memory_gb": 80,
"min": 1,
"max": 8,
"available": 6,
"max_available": 6
},
"cpu": 16,
"memory_gb": 128,
"rootfs": {
"min_gb": 50,
"max_gb": 500,
"free_gb": 50
}
},
"pricing": {
"precision": 3,
"postpaid": {
"base_price": 18000,
"final_price": 12600,
"unit": "per_hour"
},
"spot": {
"base_price": 12600,
"final_price": 6000,
"unit": "per_hour"
},
"prepaid": [
{
"spec_id": "spec_a100_1m",
"duration_months": 1,
"final_price": 9072000,
"base_price": 12960000
}
],
"storage_price_per_gb": 50
},
"billing_methods": [
"postpaid",
"prepaid",
"spot"
],
"inventory_state": "normal",
"deployable": true,
"activity": {
"is_activity_product": false,
"active": false,
"purchasable": true
}
}
]
}Product
List Products
GET
/
gpus
/
v2
/
products
List Products
curl --request GET \
--url https://api.novita.ai/gpus/v2/products \
--header 'Authorization: <authorization>'import requests
url = "https://api.novita.ai/gpus/v2/products"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.novita.ai/gpus/v2/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/gpus/v2/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>"
],
]);
$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/gpus/v2/products"
req, _ := http.NewRequest("GET", url, nil)
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/gpus/v2/products")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novita.ai/gpus/v2/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "prod-a100-80g",
"name": "A100-80G",
"type": "gpu",
"category": "instance",
"description": "NVIDIA A100 80GB",
"region_ids": [
"c-east-1"
],
"resource_spec": {
"gpu": {
"spec_id": "spec-a100-80g",
"name": "A100",
"memory_gb": 80,
"min": 1,
"max": 8,
"available": 6,
"max_available": 6
},
"cpu": 16,
"memory_gb": 128,
"rootfs": {
"min_gb": 50,
"max_gb": 500,
"free_gb": 50
}
},
"pricing": {
"precision": 3,
"postpaid": {
"base_price": 18000,
"final_price": 12600,
"unit": "per_hour"
},
"spot": {
"base_price": 12600,
"final_price": 6000,
"unit": "per_hour"
},
"prepaid": [
{
"spec_id": "spec_a100_1m",
"duration_months": 1,
"final_price": 9072000,
"base_price": 12960000
}
],
"storage_price_per_gb": 50
},
"billing_methods": [
"postpaid",
"prepaid",
"spot"
],
"inventory_state": "normal",
"deployable": true,
"activity": {
"is_activity_product": false,
"active": false,
"purchasable": true
}
}
]
}Headers
Bearer authentication format, e.g.: Bearer {{API_KEY}}.
Query Parameters
Product type. Defaults to gpu when empty. Allowed values: gpu, cpu.
Available options:
gpu, cpu Product category. Allowed values: serverless, instance.
Available options:
serverless, instance CPU core tier. Integer, value >= 0.
Memory tier. Integer, value >= 0. Unit: GB.
Root disk size. Integer, value >= 0. Unit: GB.
Billing method. Allowed values: postpaid, prepaid, spot.
Available options:
postpaid, prepaid, spot Region filter. Multiple Region IDs are comma-separated.
Maximum number of items to return. Integer, value >= 0.
Cursor returned by the previous page. Leave empty for the first request. String, length: 0-1024 characters.
Response
200 - application/json
OK
Product list
Show child attributes
Show child attributes
Last modified on June 23, 2026
Was this page helpful?
⌘I