The spot market
for idle GPUs.

Live prices from the GPU rental marketplaces, ranked and routed toward hardware that already exists. Zero platform fees.

each light is one live offer
reading the market…

The market, live.

Every offer below is real and current, normalized across providers so a one-card host and an eight-card cluster compare on the same number: dollars per GPU per hour. Compare any two side by side, or price a whole job before you rent.

GPU Config Class Region Status $ / GPU / hr Rent link

The tape.

Every half hour the recorder writes down the best and median price of each GPU on each feed. This is that tape, played back. The whole market in one line lives on the spot index.

Lines follow the best live price per GPU-hour; the medians ride along in the readout. Hover or arrow-key across the tape. The raw series is at /api/history.

table view

The readings.

Six instruments over the same market: what a dollar actually buys, what patience saves, where today’s price sits in its own season, whether the feeds held up, where the whole market is headed, and what just moved.

Value · FP16 TFLOPS-hours per dollar

taking the reading…

Spec-sheet dense FP16 throughput against the best live price — a hardware ceiling, not a benchmark. Dotted rows are idle capacity. Models without a defensible public figure are unrated, not guessed. Full list at /api/value.

The idle discount · % off on-demand, live

taking the reading…

Best live on-demand against best live interruptible for the same GPU, market-wide. The bar is what choosing idle capacity saves right now. Every model at /api/spread.

Timing · where today sits

taking the reading…

Descriptive only: where the current best price sits inside its own trailing 7- and 30-day range. Not a forecast. Raw at /api/timing.

The feeds · 30 days

The score measures our polling success against each provider’s API — the dependability of this data, not of their machines. Machine average is the provider’s own per-host figure where one exists. Raw at /api/reliability.

The index · compute spot, chained

taking the reading…

A ten-model basket chained so coverage changes cannot move it — only prices can. Methodology in full at /spot; raw series at /api/index.

The wire · latest notable moves

taking the reading…

Best-price moves over ~a day, from our own tape; books under three listings and moves under 5% don’t make the wire. All of it at /wire — RSS at /wire.rss.

The tripwire.

Set a line under the market. Every five minutes the station checks the best live price against it; the moment one crosses under, your watch trips. No account — you get a private feed URL any RSS reader or webhook can ring on. Watches re-arm when the price climbs back over.

The resting order.

The tripwire's grown-up sibling — the first resting order on GPU compute anywhere. Name your price and leave it on the book. When the market crosses your line the station cuts a signed fill ticket; your own keyholder daemon executes it with your provider key, on your machine. We hold the order, you hold the key — no account, no custody, and fills are idempotent, so a retry can never rent a second machine. Orders rest for 30 days.

Execution needs the open-source keyholder sidecar running with your Vast or RunPod key — one file, stdlib only, dry-runs by default: keyholder.py · how it works. Without it the order still rests and the ticket still cuts; it just waits for you. Add "standing": true and the order survives its machine: when a rented box dies the keyholder reports it and the order refills from the current best offer — possibly on a different provider. Machine, not work: resume rides your own checkpoints. The limits, stated plainly.

Aggregate, rank, route.

Vast.ai feed RunPod feed DataCrunch feed Akash feed one offer table humans agents

Aggregate

Adapters poll the marketplaces on a tiered cadence — the deep keyed books about every five minutes, the keyless catalogs every thirty — current where it matters, gentle on every API. A provider that stops answering is recorded as down and its rows are flagged stale, never silently reused.

Rank

Offers normalize into one schema and rank on dollars per GPU per hour, tie-broken by host reliability. A four-card rig and a single card compare honestly.

Route

You click through to the provider and rent there at their price. Idle, interruptible capacity sorts to the top of most searches because it is usually the cheapest thing on the board.

The frog test.

Ecologists judge a wetland by listening for frogs. Frogs breathe through their skin, so they register trouble first, and they return first when the water runs clean. A loud pond is a healthy pond.

Our pond is the GPU market, and our frog is idle silicon: racked, powered, priced, and waiting for work. Routing demand there squeezes more out of machines that already exist instead of arguing for new ones.

of listed capacity is idle and rentable right now, measured from live interruptible listings

That number is computed from the live table above, nothing else. We do not publish carbon figures we cannot measure. The index has its own page, charted since the recorder first ran.

A tree frog perched on a branch against a black background, lit from the side, one gold eye toward the camera

Agents are first-class here.

The same ranked table behind this page is served as a clean JSON API and a native MCP endpoint. No key, no signup, no scraping required. Copy-paste configs for Claude Code, Claude Desktop, Python and LangChain live in the integration guide.

REST
curl 'https://compute.wick.pics/api/offers?gpu=4090&max_price=0.30'

{ "count": 4, "fee_bps": 0, "offers": [
  { "gpu_model": "RTX 4090", "price_per_gpu_hr": 0.202,
    "class": "interruptible", "provider": "vast", "link": "..." },
  ...
] }
MCP
endpoint  https://compute.wick.pics/mcp/   (streamable HTTP)

tools     search_offers   gpu, country, offer_class, max_price_per_gpu_hr
          get_offer       one offer by id
          market_stats    totals, idle share, provider health
          price_history   the tape for one GPU, per provider
          idle_history    the idle-capacity index over time
          create_watch    tripwire: fires under your price line

The platform fee is zero.

Every API response carries the fee in the open: fee_bps: 0.
You pay the provider their listed price. We add nothing to it.
If that number ever changes, it changes there first, in public, for everyone.