cURL
curl "https://api.ornnai.com/api/gpu-types-free"import requests
free = requests.get("https://api.ornnai.com/api/gpu-types-free").json()["data"]
const res = await fetch("https://api.ornnai.com/api/gpu-types-free");
const { data } = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/gpu-types-free");
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.ornnai.com/api/gpu-types-free", nil)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
_ = body
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(
URI.create("https://api.ornnai.com/api/gpu-types-free"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/gpu-types-free")
res = Net::HTTP.get_response(uri)
data = JSON.parse(res.body)
{
"success": true,
"data": [
{
"gpu_name": "H100 SXM",
"region": ""
},
{
"gpu_name": "H200",
"region": ""
},
{
"gpu_name": "B200",
"region": ""
},
{
"gpu_name": "A100 SXM4",
"region": ""
},
{
"gpu_name": "RTX 5090",
"region": ""
}
]
}List free-tier GPU models
Returns the GPU indices available on the public (no-key) tier. Pair this with /api/gpu-types — the full catalog Ornn tracks — to render the free-vs-paid split. The response does not vary by caller tier, so a keyed caller can still ask “what is free?” to build pricing or upsell UI.
GET
/
api
/
gpu-types-free
cURL
curl "https://api.ornnai.com/api/gpu-types-free"import requests
free = requests.get("https://api.ornnai.com/api/gpu-types-free").json()["data"]
const res = await fetch("https://api.ornnai.com/api/gpu-types-free");
const { data } = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/gpu-types-free");
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.ornnai.com/api/gpu-types-free", nil)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
_ = body
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(
URI.create("https://api.ornnai.com/api/gpu-types-free"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/gpu-types-free")
res = Net::HTTP.get_response(uri)
data = JSON.parse(res.body)
{
"success": true,
"data": [
{
"gpu_name": "H100 SXM",
"region": ""
},
{
"gpu_name": "H200",
"region": ""
},
{
"gpu_name": "B200",
"region": ""
},
{
"gpu_name": "A100 SXM4",
"region": ""
},
{
"gpu_name": "RTX 5090",
"region": ""
}
]
}Overview
Returns the GPU indices available on the public (no-key) tier. Pair this with/api/gpu-types - the full catalog Ornn tracks - to render the free-vs-paid split. The response does not vary by caller tier, so a keyed caller can still ask “what is free?” to build pricing or upsell UI.Response
200 - application/json
Free-tier GPUs.

