Authenticate
In the supplier portal’s Developers section, select Create key. Enter a name in the dialog and create the key. Copy it before selecting Done; it is only shown once. Send it as a bearer token tohttps://api.ornn.com.
The Developer quickstart banner above the API keys list shows a copyable request. Your API base URL and organization ID appear underneath with copy controls. Choose a request from Code example above the snippet to update and copy a curl example for authentication, inventory, telemetry, enrollment, or listing submission. Replace the placeholders before running a command in your terminal.
id is your organization ID. Supplier routes require that organization to be a supplier. See API keys to create, revoke, and secure keys.
Routes
Nodes and VMs
The node list returnsnodes and, when there are more, next_cursor. Send that cursor unchanged on the same path until it is null.
Telemetry
The batch read acceptsnode_ids, virtual_machine_ids, or both, up to 5,000 IDs in total.
start and end timestamps, a comma-separated metrics list, and max_points from 1 to 500. Available metrics are gpu_temperature, gpu_utilization, cpu_utilization, cpu_temperature, and memory_utilization. The response contains windows, each with metric, start, end, mean, min, and max.
429, wait for the Retry-After interval before retrying.
Enrollment
Create an enrollment command with your organization ID:GET /v1/orchestrator/enrollment-logs.
Custom network setup
When Ornn has enabled a custom network setup for your organization, your custom installer can request it withPOST /v1/orchestrator/enrollment/gateway and read its status with GET on the same path. These calls use the installer’s enrollment token as the bearer token, rather than your API key. Send no request body or organization header.
Repeated calls share one setup request for your organization. The status is queued, provisioning, ready, or failed; GET returns 404 before a request exists. Stop and contact Ornn if setup fails. Downloading an installer does not start setup. A ready response confirms this network setup step only; enrollment and customer access still need their own verification.
When setup reports an error, display its error_message and include the error_code when contacting Ornn. Both fields are null when no error is recorded.
Listing fee
GET /commerce/supplier/fees returns { "listingFeePpm": 0 }. To estimate take-home after the transaction fee, add ?pricePerGpuHourMicroUsd=2000000 for a $2/GPU-hour price. The response also includes takeHomePerGpuHourMicroUsd, calculated by subtracting the current fee amount, rounded to the nearest micro-dollar. The estimate does not change your submitted listing rate. Submissions omit expectedFeePpm.
Submit a listing from an enrolled node
Send aPOST to /commerce/supplier/listings with an Idempotency-Key header. Reuse the same key when you retry the same submission.
supplierPricePerGpuHouris your listing price in USD per GPU-hour, as a decimal string with up to six decimal places and a minimum of0.01.startAtandendAtare ISO timestamps in whole seconds.- The node must be enrolled and on-grid (not off-grid or terminated), with GPU inventory. Hardware and location come from enrollment, so you don’t send them.
PATCH /commerce/supplier/listings/{id}, sending the same fields plus the expectedRevision you last read. A published request can no longer be edited.
Facilities for manual capacity offers
List your facilities withGET /commerce/facilities?owned=true using your selected organization. For a manual offer, send either facilityId or newFacility: { "displayName": "US East", "region": "us-east", "zone": "" }. Region and zone are optional. A new facility is saved with the offer and returned as facilityId; reuse that ID for subsequent edits or offers. An existing facility must belong to your selected organization. Enrolled-node offers use the facility recorded during enrollment.