Integrate
Your capacity is live.Change the baseURL and carry on.
An OpenAI-compatible client. No new library, no code change beyond the base address.
Base address
https://qa.fullcup.ai
Same route, same fields, same responses as the client you already use.
Your key
fc_live_••••••••••••••••••••••••
Shown once, in the email. Lost it? Reissue the key; the previous one stops working at once.
First call
curl https://qa.fullcup.ai/v1/chat/completions \
-H "Authorization: Bearer $FULLCUP_KEY" \
-H "Content-Type: application/json" \
-H "X-FullCup-Workload: document-translation" \
-d '{"model":"@cf/openai/gpt-oss-120b",
"messages":[{"role":"user","content":"hello"}],
"max_tokens":2048}'
X-FullCup-Workload: a free label you choose for each kind of work, such as document-translation. It lets a backer see what the capacity was spent on.
Token ceiling and reasoning models
Four of the five top models return empty content when max_tokens is low: reasoning eats the ceiling before the answer. If your first call comes back empty, raise max_tokens. It did not fail.
Models allowed in your class
Essential since Oct 9, 2026- @cf/meta/llama-4-scout-17b-16e-instruct
- @cf/google/gemma-4-26b-a4b-it
- @cf/openai/gpt-oss-120b
- @cf/qwen/qwen3-30b-a3b-fp8
- @cf/zai-org/glm-5.3-flash
A model outside the class is refused before any capacity is spent. The list is dated: what counts is the version in force when the cup was funded.
Consumption is public by design.
Every request emits a signed receipt. Your public cup page shows tokens, tag and time, with no login, in about a minute. This is not fine print: it is why anyone trusts you with capacity.
POST /v1/chat/completions · GET /v1/models