Get the public API specification
curl --request GET \
--url https://api.hyperbolic.ai/v2/openapi.jsonimport requests
url = "https://api.hyperbolic.ai/v2/openapi.json"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hyperbolic.ai/v2/openapi.json', 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.hyperbolic.ai/v2/openapi.json",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.hyperbolic.ai/v2/openapi.json"
req, _ := http.NewRequest("GET", url, nil)
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.hyperbolic.ai/v2/openapi.json")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperbolic.ai/v2/openapi.json")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"openapi": "3.1.0",
"info": {
"title": "Hyperbolic API",
"description": "HTTP API for Hyperbolic's on-demand GPU compute: rent virtual machines and bare-metal instances, manage storage volumes, and track usage and billing. Authenticate with a Bearer API key (`Authorization: Bearer <api-key>`).",
"version": "2.0.0",
"contact": {
"name": "Hyperbolic",
"url": "https://hyperbolic.ai",
"email": "support@hyperbolic.ai"
}
},
"servers": [
{
"url": "https://api.hyperbolic.ai",
"description": "Production"
},
{
"url": "https://api.hyperbolic.xyz",
"description": "Legacy host — the same API on Hyperbolic's original domain, kept for existing integrations."
}
],
"tags": [
{
"name": "virtual-machine-rentals",
"description": "Manage virtual machine rentals",
"x-group": "Virtual Machine Rentals"
}
],
"paths": {
"/v2/on-demand/virtual-machine-rentals": {
"get": {
"operationId": "ondemand-getActiveVirtualMachineRentals",
"summary": "Get a list of active virtual machine rentals",
"description": "Get a list of active virtual machine rentals",
"tags": [
"virtual-machine-rentals"
],
"security": [
{
"Authorization": []
}
],
"parameters": [],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
},
"401": {
"description": "Authorization not provided",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error.UNAUTHORIZED"
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"Authorization": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"error.UNAUTHORIZED": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}OpenAPI
Get the public API specification
Returns the OpenAPI 3.1 document for the public API exactly as this environment serves it, including only the endpoints this environment has enabled. This endpoint is open: it takes no API key, and sending one changes nothing about the response.
GET
/
v2
/
openapi.json
Get the public API specification
curl --request GET \
--url https://api.hyperbolic.ai/v2/openapi.jsonimport requests
url = "https://api.hyperbolic.ai/v2/openapi.json"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hyperbolic.ai/v2/openapi.json', 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.hyperbolic.ai/v2/openapi.json",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.hyperbolic.ai/v2/openapi.json"
req, _ := http.NewRequest("GET", url, nil)
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.hyperbolic.ai/v2/openapi.json")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperbolic.ai/v2/openapi.json")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"openapi": "3.1.0",
"info": {
"title": "Hyperbolic API",
"description": "HTTP API for Hyperbolic's on-demand GPU compute: rent virtual machines and bare-metal instances, manage storage volumes, and track usage and billing. Authenticate with a Bearer API key (`Authorization: Bearer <api-key>`).",
"version": "2.0.0",
"contact": {
"name": "Hyperbolic",
"url": "https://hyperbolic.ai",
"email": "support@hyperbolic.ai"
}
},
"servers": [
{
"url": "https://api.hyperbolic.ai",
"description": "Production"
},
{
"url": "https://api.hyperbolic.xyz",
"description": "Legacy host — the same API on Hyperbolic's original domain, kept for existing integrations."
}
],
"tags": [
{
"name": "virtual-machine-rentals",
"description": "Manage virtual machine rentals",
"x-group": "Virtual Machine Rentals"
}
],
"paths": {
"/v2/on-demand/virtual-machine-rentals": {
"get": {
"operationId": "ondemand-getActiveVirtualMachineRentals",
"summary": "Get a list of active virtual machine rentals",
"description": "Get a list of active virtual machine rentals",
"tags": [
"virtual-machine-rentals"
],
"security": [
{
"Authorization": []
}
],
"parameters": [],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
},
"401": {
"description": "Authorization not provided",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error.UNAUTHORIZED"
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"Authorization": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"error.UNAUTHORIZED": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Response
Successful response
The OpenAPI 3.1 document describing the public API as the environment serving it actually runs. The example is abridged — the real response lists every public operation and the schemas they reference.

