OTHER · MIGRATION

Migrating from Vast.AI

Hoonify and Vast.AI both let you run on independent operators' GPUs, but the operating models are different: Vast.AI is a marketplace where you bid for specific machines; Hoonify is a managed pool with posted prices and an inference API on top. This page maps the concepts and shows the code diff.

The 80% case

Most teams migrate to Hoonify because they want OpenAI-compatible inference, not because they want a different way to rent GPUs. If you're using Vast.AI as a place to host a vLLM or TGI server, you can probably skip the GPU rental entirely and call /v1/chat/completions directly. See Quickstart.

Concept map

Vast.AIHoonifyNotes
Bid / askPer-second on-demand or up-front reservationNo bidding, no auctions. Posted prices, accepted at request time.
Machine IDSKU + poolPick what you need (h200-141, 8 GPUs, eu) — Hoonify routes to a qualified operator within the pool.
Host reputationPool-level SLA + reliability scoringHoonify drops underperforming operators automatically. You don't curate hosts.
ssh_key field on rentalssh_keys array on instance createSame idea. Hoonify accepts an array; first key is primary.
Onstart scriptimage + entrypointPre-bake your environment in the OCI image. The Hoonify base image is ghcr.io/hoonify/cuda-base:cu128.
Spot interruptionsNot preemptedHoonify never preempts. On-demand can fail at create time, but won't be terminated mid-run.
Per-host inference endpointHosted inference APIMost workloads don't need a rented GPU on Hoonify — call /v1/chat/completions directly.

Account setup

  1. Sign up at /login. The first $50 of credit is free, no card required.
  2. Create an API key at /api-keys. Default scopes (inference:write + inference:read) are enough for the inference API. For instance management add compute:write.
  3. Optional: set up an IP allowlist to restrict where production keys can be used.

Code diff

diff
# Before — Vast.AI compute API
import requests, os
r = requests.put(
    "https://console.vast.ai/api/v0/asks/",
    headers={"Authorization": f"Bearer {os.environ['VAST_API_KEY']}"},
    json={"price": 0.50, "machine_id": 12345, "image": "pytorch/pytorch", ...},
)

# After — Hoonify compute API
import requests, os
r = requests.post(
    "https://api.hoonify.dev/v1/instances",
    headers={"Authorization": f"Bearer {os.environ['HOONIFY_API_KEY']}"},
    json={"sku": "h200-141", "gpus": 8, "duration_hours": 4, "image": "pytorch/pytorch"},
)

What you don't bring over

  • Bidding strategies. Posted prices on Hoonify, no auction logic to port.
  • Host curation. No reputation scoring on your side — Hoonify drops operators that miss the SLA.
  • Bid-aware schedulers. Reservations replace the"wait for a cheap slot" pattern. Pick a duration, pay the floor.
  • Per-host firewall rules. Hoonify exposes one API origin and one webhook source range — see Webhooks · IP allowlist.

What stays the same

  • OCI images. Your pytorch/pytorch or custom image works as-is.
  • SSH-based access for interactive debugging on /v1/instances.
  • The mental model of "a GPU is a GPU." SKUs are explicit and the per-hour rate is uniform.

Migration help

Email migrate@hoonify.dev with your Vast.AI account ID and we'll match the spend rate with credits for the first 30 days. No commitment, no contract — the credit is just there if you want to side-by-side.

Related: Quickstart · Compute / instances