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.AI | Hoonify | Notes |
|---|---|---|
| Bid / ask | Per-second on-demand or up-front reservation | No bidding, no auctions. Posted prices, accepted at request time. |
| Machine ID | SKU + pool | Pick what you need (h200-141, 8 GPUs, eu) — Hoonify routes to a qualified operator within the pool. |
| Host reputation | Pool-level SLA + reliability scoring | Hoonify drops underperforming operators automatically. You don't curate hosts. |
| ssh_key field on rental | ssh_keys array on instance create | Same idea. Hoonify accepts an array; first key is primary. |
| Onstart script | image + entrypoint | Pre-bake your environment in the OCI image. The Hoonify base image is ghcr.io/hoonify/cuda-base:cu128. |
| Spot interruptions | Not preempted | Hoonify never preempts. On-demand can fail at create time, but won't be terminated mid-run. |
| Per-host inference endpoint | Hosted inference API | Most workloads don't need a rented GPU on Hoonify — call /v1/chat/completions directly. |
Account setup
- Sign up at /login. The first $50 of credit is free, no card required.
- Create an API key at /api-keys. Default scopes (
inference:write+inference:read) are enough for the inference API. For instance management addcompute:write. - 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/pytorchor 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