compute.pangle.online — GPU rental market
Live GPU rental market: 2,500+ offers across a dozen provider feeds. History, watches, limit orders.
| Endpoint | https://compute.pangle.online/mcp/ (streamable-http) |
|---|---|
| Registry version | 1.2.0 |
| Now | 25 tools · grade F (35) · pin ts_ba9effb7445938587f23230804016600 · protocol 2025-06-18 |
| First / last listed | 2026-11-01 01:44 UTC / 2026-11-01 01:44 UTC |
| Grade over time | 2026-11-01: F (35), 25 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: search_offers get_offer market_stats price_history idle_history best_value provider_reliability price_position spot_spread will_it_fit true_cost_notes register_account account_usage create_watch watch_status delete_watch create_limit_order limit_order_status cancel_limit_order rent_x402 rent_offer rent_best rental_status destroy_rental fill_limit_order
search_offers | Search live GPU offers. gpu matches the model name (e.g. '4090', 'H100').
offer_class: on_demand | interruptible | reserved. country: ISO-2 (e.g. US),
a comma list ('DE,NL'), or 'EU' for the 27 member states. min_gpu_count
filters to multi-GPU configs (8 = full 8x nodes). region substring-matches
the provider's region/datacenter label. Returns offers ranked
cheapest-first by pr params: gpu, country, offer_class, provider, max_price_per_gpu_hr, min_vram_gb, min_reliability, min_gpu_count, region, limit |
get_offer | Fetch one offer by its id (from search_offers). params: offer_id* |
market_stats | Live market snapshot: total offers, GPU models, idle-capacity share,
per-provider freshness/health, cheapest price per model, current fee_bps. params: none |
price_history | Price history for one GPU model (exact name from search_offers/market_stats,
e.g. 'RTX 4090'). offer_class: on_demand | interruptible. Returns per-provider
series of [ts, min_price_per_gpu_hr, median_price_per_gpu_hr, offer_count];
ranges past 3 days are bucketed (hourly, then 6-hourly past a week). params: gpu, gpu_model, offer_class, hours |
idle_history | The idle-capacity index over time: share of listed GPU capacity that is
interruptible (spot/bid) — idle hardware looking for work. Points are
[ts, idle_share, idle_offers, total_offers]. params: hours |
best_value | Perf-per-dollar board: for each GPU model, best live price vs its FP16
tensor throughput (dense, vendor spec sheets) -> TFLOPS per dollar-hour.
The answer to 'most compute for my budget' rather than 'cheapest card'.
Models without a defensible public spec figure are listed as unrated. params: offer_class, min_vram_gb, limit |
provider_reliability | How dependable each provider's data feed has been for this station
(poll success over the trailing window), plus the provider's own average
machine reliability where reported. feed_score is about the DATA, not
their hardware. params: days |
price_position | Rent-now-or-wait context: where the current best price for one GPU
model sits inside its own trailing 7/30-day range (percentile, 24h trend,
verdict). Descriptive, not a forecast. params: gpu, gpu_model, offer_class |
spot_spread | On-demand vs interruptible spread: the live discount for idle capacity
per model; pass gpu_model for its history too. params: gpu_model, hours |
will_it_fit | Will this model fit, and what does a fitting machine cost right now?
Deterministic VRAM arithmetic — weights (params x bytes/precision) + KV
cache (2 x layers x kv_heads x head_dim x context x batch) + stated
overhead — checked against the live book, cheapest fitting offers first.
Pass a known model slug (llama-3.1-8b/70b/405b, mistral-7b, mixtral-8x7b,
qwen2.5-7b/32b/72b, gemm params: model, params_b, precision, context, batch, offer_class, tokens_per_s, limit |
true_cost_notes | The billing fine print behind the $/hr, verified per provider from
their own published pages (source URL + date on every claim): billing
granularity (per-second vs per-minute), whether storage bills while
stopped, bandwidth/egress fees, and the commonly-missed gotchas (e.g.
Vast bandwidth never appears in $/hr; RunPod stopped volume disk costs
double). Providers we have not ver params: none |
register_account | Create a metering account: returns a bearer token (shown once, we keep
only a hash). Pass it as account_token on rent calls to build a usage
ledger you can read back with account_usage. Optional — renting works
without one. params: label |
account_usage | Your metered usage ledger: placements, destroys, estimated hours and USD,
and the platform fee (2.5%, $0.01 min, $5.00 cap per lease per UTC day) priced
at the rate live at event time. Distinct from fee_bps, the display markup. params: account_token*, days |
create_watch | Create a price watch (tripwire): fires when the best live fee-adjusted
price per GPU-hour matching gpu (and optional offer_class) drops to or
under max_price_per_gpu_hr. Checked every poll (~5 min). Returns the watch
with its id — the id is the only key; poll it with watch_status, or give a
public webhook_url to be POSTed on each trip. Watches re-arm when the
price climbs 2% ba params: gpu*, max_price_per_gpu_hr*, offer_class, webhook_url |
watch_status | Current state of a watch: armed/tripped, last price seen, recent
events, and the best matching offer right now. params: watch_id* |
delete_watch | Delete a watch by id. params: watch_id* |
create_limit_order | Place a standing LIMIT ORDER: when the best live fee-adjusted price for
gpu (and optional offer_class) trades at or under max_price_per_gpu_hr,
the station cuts a signed FILL TICKET naming the exact offer. The station
never holds your provider key — the ticket is executed by whoever does:
the open-source keyholder sidecar (/agents/#sidecar), your own agent
long-polling POST /ap params: gpu*, max_price_per_gpu_hr*, offer_class, min_vram_gb, min_gpu_count, webhook_url, auto_destroy_budget_usd, standing, max_refills, cooloff_seconds, spend_alert_usd, age_alert_hours |
limit_order_status | State of a limit order (armed/ticketed/filled/cancelled/expired), last
price seen, recent events. Pass order_secret to also read the live fill
ticket when one is cut. params: order_id*, order_secret |
cancel_limit_order | Cancel a limit order. Requires the order_secret from create_limit_order. params: order_id*, order_secret* |
rent_x402 | Rent a prepaid block of GPU time with a wallet and NO account, NO API key
and no human, over x402 (HTTP 402 micropayments, USDC on Base).
Call it with no arguments and you get the payment challenge: an x402
PaymentRequirementsResponse whose accepts[0].extra.x402_fee states the block
price, the platform fee IN DOLLARS, that there are no refunds, and that you
are charged only af params: x_payment, blocks, lease_id, originator, ssh_pubkey |
rent_offer | Place a rental on YOUR provider account (BYO key — it is used for this
one call and never stored). Default is a DRY RUN returning exactly what
would be executed; a live placement needs dry_run=false AND confirm=true.
The offer is re-quoted live first and refused if its price exceeds
max_price_per_gpu_hr. Executes on vast and runpod offers. Pass an
idempotency_key so retries ret params: offer_id*, api_key*, max_price_per_gpu_hr*, confirm, dry_run, idempotency_key, image, disk_gb, label, auto_destroy_budget_usd, account_token |
rent_best | One-shot rent: search the live book with these filters and place on the
best (cheapest) matching offer — 'cheapest H100 under $2/hr, go'. Same
guarantees as rent_offer (dry-run default, live re-quote, your
max_price_per_gpu_hr is absolute). If the best offer is already gone it
walks to the next, at most 3, and reports what it skipped. params: api_key*, max_price_per_gpu_hr*, gpu, offer_class, provider, country, min_vram_gb, min_gpu_count, confirm, dry_run, idempotency_key, image, disk_gb, label, auto_destroy_budget_usd, account_token |
rental_status | Live state of an instance on your account: running/starting/stopped/
gone, uptime, price, estimated spend so far, and the budget guard's state
if one is armed. Read-only; your key passes through and is never stored. params: provider*, provider_instance_id*, api_key* |
destroy_rental | Destroy an instance previously placed on your account (vast or runpod).
Your key passes through and is never stored. params: provider*, provider_instance_id*, api_key* |
fill_limit_order | Execute a limit order's live fill ticket on YOUR provider key (used for
this one call, never stored). Only works while the order is ticketed; the
offer is re-quoted live and refused above the order's line. Idempotent per
order — a retry returns the first receipt rather than renting a second
machine. The order's auto_destroy_budget_usd (if set) arms the budget
guard exactly as r params: order_id*, order_secret*, api_key*, confirm, dry_run, image, disk_gb, account_token |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.