Same models · Same API · Cheapest channel
The model you already use is sold on several marketplaces at wildly different prices. Buoy shops all of them on every request and fills from the cheapest source that can actually deliver. One OpenAI-compatible URL. Your code, your prompts, and your answers stay the same.
Get a key ( scroll )No. 01 Harbor price current
| Model | Typical retail | You pay | Saved |
|---|---|---|---|
| Pulling live retail and fill prices… | |||
Typical retail is OpenRouter’s list price for the same weights (prompt / completion). You pay is Buoy’s cheapest live fill. Ranked by savings, one row per model family. Retail catalog cached 15 minutes; this sheet refreshes about every minute. Last good sheet is shown while a refresh is in flight.
The sounding
Catalog shape from the markets, plus live router totals. One reading.
No. 01b Agents · mint alone
Sign a Solana challenge, mint a bu0y_… key, fund with USDC or card, then
point your OpenAI client at the API. No waitlist. Credits are prepaid and
non-refundable.
# 1) challenge → sign → mint (see scripts/agent-mint-key.ts)
curl "$API/v1/auth/challenge?address=$PUBKEY"
# POST $API/v1/auth/keys { message, signature }
# 2) fund (Solana USDC to treasury, then confirm) or Stripe Checkout
curl -H "Authorization: Bearer $KEY" "$API/v1/deposits/solana"
# 3) fill
curl "$API/v1/chat/completions" \
-H "Authorization: Bearer $KEY" \
-H "content-type: application/json" \
-d '{"model":"glm4.6","messages":[{"role":"user","content":"hi"}]}'
No. 01b Humans · passkeys
Register once on Account, mint a bu0y_… key, buy credits with card or
USDC, then keep your usual OpenAI client. Same API either way. Credits are prepaid
and non-refundable.
Use a device that supports passkeys. No waitlist.
Create a passkey, or unlock an existing one. That is your login.
Copy the bu0y_… secret when it appears. We only show it once.
Card via Checkout, or Solana USDC to the treasury address we give you.
Same OpenAI SDK. Change the base URL and send the key.
No. 02 The API · prepaid fills
Keep your SDK, your prompts, and your code. Change the base URL and nothing else. Quoting is free and read-only, so you can watch which source wins, and what you would pay, before a cent moves. Fills are prepaid: we reserve the worst case, run the request, then settle before the response finishes.
GET /v1/models
Every model you can reach, with the cheapest going rate for each.
LivePOST /v1/quote
What a request will cost, before you send it. Free.
LiveGET /health
Whether requests can fill right now, source by source.
LiveGET /v1/stats
Aggregate totals only. Requests, tokens, models. No per-user data.
Livecurl https://api.bu0y.com/v1/quote \
-H 'content-type: application/json' \
-d '{"model":"glm4.6","inputTokens":1500,"maxOutputTokens":800}'
{
"model": "glm4.6",
"best": {
"sourceId": "surplus",
"reserveMicros": 32,
"confidence": 0.9
},
"quotes": [ ... ]
}
No. 03 The guarantees
Five hard rules on every fill. No override path, no fine print beneath the quote.
Worst case set aside first. You pay what ran, never more than the quote.
Integer microdollars only. Fractions round down on your bill, against us.
Flat percentage on the winning price. No hidden spread on the upstream rate.
Price and capacity both count. A thin book cannot win on price alone.
No silent swaps. Aliases only when the weights are the same; never batch as live.