Getting started
Quickstart
A working request in about a minute, from whichever client you already have.
Get a key
Open the console, copy your key, and fund the prepaid balance. A few dollars goes a long way — a typical exchange on a mid-sized model costs well under a cent.
export VACUUM_KEY="vac_live_..."Your first request
curl https://api.vacuumfi.com/v1/chat/completions \ -H "Authorization: Bearer $VACUUM_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen2.5-32b-instruct", "messages": [ {"role": "user", "content": "Summarise this receipt in one line."} ] }'What comes back
{ "id": "cmpl_8Qd2mK9xR4tPwZ1n", "object": "chat.completion", "created": 1789517810, "model": "qwen2.5-32b-instruct", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "..." }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 214, "completion_tokens": 96, "total_tokens": 310 }, "vacuum": { "receipt": "0x9f3c1e7a2b8d40f6", "node": "vac1q7f4mk2xw9d3hs8p", "node_class": "Core", "epoch": 2926, "cost_usdc": "0.0000461" }}Everything outside the vacuum block is the format your client already parses, so an existing integration keeps working untouched. The extra block tells you which node served you, under which epoch, and what it cost.
Migrating an app
In most codebases this is two lines.
const client = new OpenAI({- baseURL: "https://api.openai.com/v1",- apiKey: process.env.OPENAI_API_KEY,+ baseURL: "https://api.vacuumfi.com/v1",+ apiKey: process.env.VACUUM_KEY,});Then change the model name to one in the catalogue. Vacuum serves open-weight models, so there is no drop-in equivalent for a proprietary one — pick by size and benchmark rather than by name.
Read the receipt
The x-vacuum-receipt response header carries the same ID as the vacuum.receipt field. Pass it to the receipts endpoint to get the signed record, and once the epoch closes, a Merkle proof against the root published on Arc.
curl https://api.vacuumfi.com/v1/receipts/0x9f3c1e7a2b8d40f6 \ -H "Authorization: Bearer $VACUUM_KEY"- Receipts and proofs explains what is in there and how to check it yourself.