Skip to main content

Public Nodes Feed

Every GPU node currently rentable on Lium, as one unauthenticated JSON call. No key, no signup, no rate-limit negotiation — point your ingester at it and start listing us today.

ResourceURL
Live feedhttps://lium.io/api/public/v1/nodes
OpenAPI schemahttps://lium.io/api/openapi.json
curl -sSL https://lium.io/api/public/v1/nodes

Response

{
"generated_at": "2026-08-17T09:14:03.117Z",
"count": 95,
"nodes": [
{
"id": "ad83de56-8a04-4ab1-ac5a-4ab007b4e2b3",
"gpu_model": "RTX 5090",
"gpu_count": 8,
"available_gpu_count": 8,
"price_per_gpu_hour": 0.55,
"price_per_node_hour": 4.4,
"min_rentable_gpu_count": 8,
"gpu_memory_gb": 32,
"cpu_count": 384,
"ram_gb": 283,
"disk_gb": 2460,
"tier": "secure",
"country": "Japan",
"country_code": "JP",
"region": "13",
"city": "Tokyo",
"rent_url": "https://lium.io/browse-pods/ad83de56-8a04-4ab1-ac5a-4ab007b4e2b3"
}
]
}

Fields

FieldTypeNotes
generated_atISO 8601When this snapshot was built. Use it to detect a stale source.
countintegerNumber of nodes in this response.
idUUIDStable identifier for the node. Safe to use as your primary key.
gpu_modelstring, nullableNormalized name, vendor prefixes stripped — RTX 5090, not NVIDIA GeForce RTX 5090.
gpu_countinteger, nullableGPUs on the node.
available_gpu_countinteger, nullableGPUs free right now. Always at least 1 — a fully rented node leaves the feed.
price_per_gpu_hourfloat, nullableUSD per GPU per hour.
price_per_node_hourfloat, nullableUSD for the whole node per hour, null when the price is unknown. Published so you never have to derive it.
min_rentable_gpu_countinteger, nullableSmallest order we accept on this node. Quoting a single GPU below this number sells an order our checkout refuses.
gpu_memory_gbinteger, nullableVRAM per GPU.
cpu_countinteger, nullableCPU cores on the whole node; a partial rental gets a proportional share.
ram_gbinteger, nullableSystem RAM of the whole node; a partial rental gets a proportional share.
disk_gbinteger, nullableWhole-node disk; a partial rental gets a proportional share.
tierstring, nullablesecure or spot. A spot node may be reclaimed by its provider at any time.
country, country_code, region, citystring, nullableNode location; region is the subdivision code.
rent_urlstringDeep link straight to the rent page for this node.

Only id and rent_url are guaranteed non-null; treat every other field as optional in your ingester.

Freshness

Lium prices are dynamic — providers set them and they move. The feed is rebuilt at most once per minute, so polling faster than that returns the same snapshot. Once a minute is the right cadence.

Rate limit

60 requests per minute per IP. If you need more, get in touch and we will raise it for your ingester.

Compatibility promise

This feed is a published contract, not an internal endpoint that happens to be reachable. Concretely:

  • Fields are only ever added. No field under /public/v1 will be removed or renamed.
  • A field's meaning never changes. If price_per_gpu_hour ever needed to mean something different, it would become a new field, not a redefinition of this one.
  • Breaking changes ship as /public/v2. They never land on /public/v1.
  • A retired version keeps serving for six months after we publish the deprecation notice, so you have half a year to migrate without an outage.

Build against /public/v1/nodes and it will keep working.

Listing Lium on your site

If you run a GPU price comparison site, marketplace, or agent that provisions compute, this feed is everything you need to list us. Ingest it directly instead of scraping — you get correct prices, real availability, and a deploy link that converts.

Questions about a partnership, a higher rate limit, or a custom field: reach us at lium.io.