IPXdocs
API reference

Listings

One price-sorted feed of every available GPU across every cloud, returned as plain JSON.

A listing is a GPU offer we currently have available. Each entry tells you the GPU model, its VRAM, how many GPUs are in the box, the region, whether it is interruptible, and our hourly rate. You rent a listing by passing its id to the Rentals API.

Listings are read-only and public. No bearer token is required to browse them. You only need a token once you create SSH keys, rentals, or top up credits.

Endpoint

GET/api/v1/listings

Returns up to 100 currently-available listings, cheapest first. By default the feed only includes non-interruptible boxes. Use the query params below to narrow the set.

Query parameters

min_vram_gbintegeroptional
Only return boxes with at least this much VRAM per GPU. min_vram_gb=80
interruptiblebooleanoptional
Set to true to include interruptible (spot) boxes, which are cheaper but can be reclaimed by the cloud at any time. Anything other than true keeps the default of non-interruptible only. interruptible=true
limitintegeroptional
How many listings to return. Clamped to the range 1 to 100. Defaults to 100. limit=10

Request

The simplest call takes no parameters and needs no auth.

request
# public endpoint, no token needed
$ curl https://gpu.ipxtechholding.com/api/v1/listings

To find an 80GB+ box, allow interruptible offers, and cap the result to the ten cheapest:

request
$ curl -G https://gpu.ipxtechholding.com/api/v1/listings \
    -d min_vram_gb=80 \
    -d interruptible=true \
    -d limit=10

Response

A 200 OK with a top-level listings array, ordered cheapest first.

response
{
  "listings": [
    {
      "id": 4812,
      "gpu_name": "RTX 4090",
      "vram_gb": 24,
      "num_gpus": 1,
      "region": "us-east",
      "interruptible": false,
      "price_micro_usd_per_hour": 340000,
      "price_usd_per_hour": 0.34
    },
    {
      "id": 5190,
      "gpu_name": "A100 80GB",
      "vram_gb": 80,
      "num_gpus": 1,
      "region": "eu-west",
      "interruptible": false,
      "price_micro_usd_per_hour": 680000,
      "price_usd_per_hour": 0.68
    },
    {
      "id": 5233,
      "gpu_name": "H100 SXM",
      "vram_gb": 80,
      "num_gpus": 8,
      "region": "us-central",
      "interruptible": true,
      "price_micro_usd_per_hour": 18900000,
      "price_usd_per_hour": 18.9
    }
  ]
}

Response fields

idinteger
The listing identifier. Pass this as listing_id when you create a rental.
gpu_namestring
The GPU model, for example A100 80GB or H100 SXM.
vram_gbinteger
VRAM per GPU, in gigabytes. This is what min_vram_gb filters against.
num_gpusinteger
How many GPUs the box contains.
regionstring
The datacenter region the box lives in, for example us-east.
interruptibleboolean
true if the cloud can reclaim this box at any time. Interruptible boxes are cheaper but less reliable for long runs.
price_micro_usd_per_hourinteger
The hourly rate in micro-USD, where 1 USD is 1,000,000 micro. Use this exact integer for arithmetic and spend caps. 680000 is $0.68/hr.
price_usd_per_hournumber
The same rate as a decimal USD value, rounded to four places. Handy for display. 0.68

Money on IPX is always integer micro-USD under the hood. price_usd_per_hour is a convenience derived from price_micro_usd_per_hour / 1000000. When you set a hard spend cap on a rental, express it in micro-USD too. A $5 cap is 5000000.

Notes on the feed

  • Only currently available offers appear. The feed reflects live cloud inventory, so it changes constantly.
  • Results are always sorted by price_micro_usd_per_hour ascending, so listings[0] is the cheapest match.
  • Availability is not a reservation. A listing can disappear between fetching it and renting it. If you try to rent one that is gone, the Rentals API returns 409 Conflict. Re-fetch and pick another.

Interruptible boxes can be reclaimed by the underlying cloud mid-run with little notice. Use them for fault-tolerant or checkpointed work, not for jobs that cannot survive a sudden teardown.

Pick the cheapest box, then rent it

A common pattern: fetch the feed with your constraints, take the first result, and hand its id to the Rentals API.

bash
# grab the id of the cheapest 80GB box
$ LISTING_ID=$(curl -sG https://gpu.ipxtechholding.com/api/v1/listings \
    -d min_vram_gb=80 -d limit=1 \
    | jq '.listings[0].id')

# rent it (this call needs your token)
$ curl -X POST https://gpu.ipxtechholding.com/api/v1/rentals \
    -H "Authorization: Bearer $IPX_TOKEN" \
    -H "Content-Type: application/json" \
    -d "{\"listing_id\": $LISTING_ID, \"max_spend_micro_usd\": 5000000}"

That is the entire Listings API. Browse the same feed visually at the console, then head to Rentals to provision a box.

Next steps