GPU + CPU pricing
Returns hourly GPU rates per model and tier (with your organization's negotiated rates applied), CPU rates per machine size, and VM disk size bounds.
Required permission
Requires the catalog.read permission. See Permissions for the roles and API key permissions that include it.
Command line
The orl CLI wraps this endpoint:
orl catalog pricing getapiKeyAuthorizationBearer <token>OpenRelay API key. Send it as Authorization: Bearer or_… (legacy vl_… keys still work).
Pricing
application/json- response
gpu*array<>cpu*array<>vmDisk*Live VM boot-disk size bounds the control plane accepts. Runtime env-tunable, so clients read these instead of hardcoding a ceiling that would drift from the server. A request outside the range is a 400.
curl -X GET 'https://api.openrelay.inc/v1/pricing'{ "gpu": [ { "gpuModelId": "string", "gpuModelName": "string", "vramGb": 0, "tier": "string", "pricePerHourCents": 0 } ], "cpu": [ { "resourceSize": "string", "pricePerHourCents": 0, "vcpu": 0, "ramMb": 0 } ], "vmDisk": { "minGb": 0, "maxGb": 0 }}GPU model catalog GET
Returns every GPU model in the catalog with its name, manufacturer, VRAM, architecture, form factor, and interconnect, and whether it is hidden.
Published GPU list rates (no auth) GET
List rates for every sellable GPU model (community and verified, per GPU-hour) and online token rates for public models, with no API key required. GPU rates are read from the platform's GPU catalog. Unauthenticated, so it never applies a caller's negotiated overrides: GET /v1/pricing answers with those and keeps its API key. Hidden models, and models missing either tier, are omitted rather than quoted at zero. Served from a short-lived cache, so generatedAt trails the request.