Get a tradable listing
curl --request GET \
--url https://api.ornn.com/v1/markets/schedules/{listingId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ornn.com/v1/markets/schedules/{listingId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ornn.com/v1/markets/schedules/{listingId}', 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.ornn.com/v1/markets/schedules/{listingId}",
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: Bearer <token>"
],
]);
$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.ornn.com/v1/markets/schedules/{listingId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.ornn.com/v1/markets/schedules/{listingId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ornn.com/v1/markets/schedules/{listingId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"schedule": {
"listingId": "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeeee",
"listingKind": "secondary",
"gpuSlug": "nvidia_h100_sxm",
"gpusPerNode": 8,
"nodeCount": 2,
"nodeIds": [
"33333333-3333-4333-8333-333333333333",
"12121212-1212-4212-8212-121212121212"
],
"startsAt": "2026-10-20T00:00:00Z",
"endsAt": "2026-11-03T00:00:00Z",
"status": "active",
"cancelReason": null,
"acceptedWindows": [
{
"startsAt": "2026-10-21T00:00:00.000Z",
"endsAt": "2026-10-23T00:00:00.000Z",
"isMine": false
}
],
"capacityWindows": [
{
"startsAt": "2026-10-20T00:00:00.000Z",
"endsAt": "2026-10-21T00:00:00.000Z",
"nodeCount": 2
},
{
"startsAt": "2026-10-21T00:00:00.000Z",
"endsAt": "2026-10-23T00:00:00.000Z",
"nodeCount": 1
},
{
"startsAt": "2026-10-23T00:00:00.000Z",
"endsAt": "2026-11-03T00:00:00.000Z",
"nodeCount": 2
}
],
"typedTerms": true,
"terms": [
{
"listingTermId": "88888888-8888-4888-8888-888888888888",
"type": "reserved",
"minDurationSeconds": 86400,
"maxDurationSeconds": 604800,
"pricePerGpuHourMicroUsd": 4200000,
"downPaymentCents": null,
"renewable": false
}
],
"askPricePerGpuHourMicroUsd": 4200000,
"spotPricePerGpuHourMicroUsd": 4200000,
"spotGpusInUse": 8,
"spotGpusOffered": 0,
"isMine": false
}
}{
"code": "<string>",
"detail": "<string>"
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "schedule_not_found",
"message": "Ornn could not find that listing."
}
}{
"code": "<string>",
"detail": "<string>"
}Get a tradable listing
Returns one listing as it trades, including its offers. Read it immediately before an offer or purchase to get current terms, prices, and free capacity. Reserve listings return 404 unless your organization is approved or owns the listing.
GET
/
v1
/
markets
/
schedules
/
{listingId}
Get a tradable listing
curl --request GET \
--url https://api.ornn.com/v1/markets/schedules/{listingId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ornn.com/v1/markets/schedules/{listingId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ornn.com/v1/markets/schedules/{listingId}', 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.ornn.com/v1/markets/schedules/{listingId}",
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: Bearer <token>"
],
]);
$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.ornn.com/v1/markets/schedules/{listingId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.ornn.com/v1/markets/schedules/{listingId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ornn.com/v1/markets/schedules/{listingId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"schedule": {
"listingId": "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeeee",
"listingKind": "secondary",
"gpuSlug": "nvidia_h100_sxm",
"gpusPerNode": 8,
"nodeCount": 2,
"nodeIds": [
"33333333-3333-4333-8333-333333333333",
"12121212-1212-4212-8212-121212121212"
],
"startsAt": "2026-10-20T00:00:00Z",
"endsAt": "2026-11-03T00:00:00Z",
"status": "active",
"cancelReason": null,
"acceptedWindows": [
{
"startsAt": "2026-10-21T00:00:00.000Z",
"endsAt": "2026-10-23T00:00:00.000Z",
"isMine": false
}
],
"capacityWindows": [
{
"startsAt": "2026-10-20T00:00:00.000Z",
"endsAt": "2026-10-21T00:00:00.000Z",
"nodeCount": 2
},
{
"startsAt": "2026-10-21T00:00:00.000Z",
"endsAt": "2026-10-23T00:00:00.000Z",
"nodeCount": 1
},
{
"startsAt": "2026-10-23T00:00:00.000Z",
"endsAt": "2026-11-03T00:00:00.000Z",
"nodeCount": 2
}
],
"typedTerms": true,
"terms": [
{
"listingTermId": "88888888-8888-4888-8888-888888888888",
"type": "reserved",
"minDurationSeconds": 86400,
"maxDurationSeconds": 604800,
"pricePerGpuHourMicroUsd": 4200000,
"downPaymentCents": null,
"renewable": false
}
],
"askPricePerGpuHourMicroUsd": 4200000,
"spotPricePerGpuHourMicroUsd": 4200000,
"spotGpusInUse": 8,
"spotGpusOffered": 0,
"isMine": false
}
}{
"code": "<string>",
"detail": "<string>"
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "schedule_not_found",
"message": "Ornn could not find that listing."
}
}{
"code": "<string>",
"detail": "<string>"
}CLI equivalent:
ornn schedules show --listing-id <listing-id>.Authorizations
Create an organization API key in Account Settings > Developer. Do not send this key to the Kubernetes API server.
Path Parameters
Listing ID.
Response
The listing.
A listing as it trades. Prices are what you pay or, for a listing you own, what you receive. Never identifies who supplies the capacity.
Show child attributes
Show child attributes
Was this page helpful?