Skip to main content
POST
Propose a node

Authorizations

Authorization
string
header
required

An API key from your dashboard, sent as Authorization: Bearer gpk_….

Headers

Idempotency-Key
string

Validated and echoed on Radar writes; not stored there.

Required string length: 1 - 255
Pattern: ^[\x20-\x7E]+$

Body

application/json
title
string
required
Required string length: 1 - 200
gpu_model
string | null
Maximum string length: 120
gpu_count
integer | null
Required range: 1 <= x <= 72
gpu_memory_gb
integer | null
Required range: 1 <= x <= 2048
cpu_model
string | null
Maximum string length: 120
cpu_sockets
integer | null
Required range: 1 <= x <= 16
ram_gb
integer | null
Required range: 1 <= x <= 16384
ram_type
string | null
Maximum string length: 60
storage_tb
integer | null
Required range: 1 <= x <= 4096
storage_type
string | null
Maximum string length: 60
interconnect
string | null
Maximum string length: 120
Maximum string length: 120
os
string | null
Maximum string length: 120
spec_summary
string | null
Maximum string length: 4000
quantity_available
integer
default:1
Required range: 1 <= x <= 1000
price_per_hour_cents
integer | null
Required range: 0 <= x <= 1000000
region
string | null
Maximum string length: 120
available_from
string<date-time> | null
duration_min
string | null
Maximum string length: 40
duration_max
string | null
Maximum string length: 40

Response

The proposal, pending review

id
string
required
title
string
required
gpu_model
string | null
required
gpu_count
integer | null
required

GPUs in ONE node

gpu_memory_gb
integer | null
required
cpu_model
string | null
required
cpu_sockets
integer | null
required
ram_gb
integer | null
required
ram_type
string | null
required
storage_tb
integer | null
required
storage_type
string | null
required
interconnect
string | null
required
os
string | null
required
spec_summary
string | null
required
quantity_available
integer
required

Nodes on offer

currency
enum<string>
required
Available options:
usd
price_per_hour_cents
integer | null
required

Per GPU-hour; null while the rate is still being agreed

region
string | null
required
available_from
string<date-time> | null
required
duration_min
string | null
required
duration_max
string | null
required
auction
null | object
required

Null on a fixed-price node, and null on any node with no lot taking bids right now — the two look identical here, which is correct: neither has anything to bid on. format is what lets you tell them apart from "there is a live lot with no leading bid yet". Always present as a key, never omitted, so an absent value is never ambiguous between "no lot" and "not sent yet".

A CLOSED lot is not this field's business: once a lot's window passes it stops being "live" and this goes back to null for that node. Reading a decided lot's outcome — who won, the settlement amount — is not something this API offers today, and placing a bid through this API is a separate, unreleased scope: neither is this field's concern.

status
enum<string>
required
Available options:
pending,
approved,
rejected
rejection_reason
string | null
required
listed
boolean
required

Whether buyers can see it right now

created_at
string<date-time>
required