guide
Python / JS / curl
If you write it yourself. Same three fields. Ready snippets below — put the key in and run.
Three fields. Copy, don’t type
url
https://cheapai.lol/v1
model
claude-opus-4.8
python
from openai import OpenAI
c = OpenAI(base_url="https://cheapai.lol/v1", api_key="sk-…")
print(c.chat.completions.create(model="claude-opus-4.8", messages=[{"role":"user","content":"ping"}]))
curl
curl https://cheapai.lol/v1/chat/completions \
-H "Authorization: Bearer sk-…" \
-H "Content-Type: application/json" \
-d '{"model":"claude-opus-4.8","messages":[{"role":"user","content":"ping"}]}'
Do it in order. Don’t skip
Copy one of the blocks below — Python or curl.
Replace sk-… with your key. Leave the rest.
Run. The reply should have a content field with text.
401 — key. 404 model — model name. Network — Base URL.
Check
The command printed reply text, not JSON with error.
If it didn’t start
- “401 / unauthorized / invalid api key” — the key was not copied whole. It starts with sk- and has no space at either end.
- “model not found” / “named models unavailable” / model in red — the name must match exactly: claude-opus-4.8. Not “Opus 5”, not opus, not claude-3, not gpt-4.
- The app shows no models — reopen its settings page: the model list is served from our address and appears once the Base URL and key are right.
- “Connection error” / spinner and silence — wrong Base URL. Almost every app wants the address with a /v1 tail.
- “/v1/v1” in the error — the app appends /v1 itself. Drop the tail, leave the site address.
- It replied, then stopped — you ran out of tokens. The balance is in your dashboard. Topping up on FunPay from the same nick lands on the same key.