Documentation
An OpenAI-compatible endpoint. Point your client at it and change the model id.
Quickstart
Base URL https://api.example.invalid/v1
Model id qwen3.8-27b
API key Keys start with gc_live_ and are shown once, when you create them in the portal.
curl
curl https://api.example.invalid/v1/chat/completions \
-H "Authorization: Bearer $GPUCLUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"qwen3.8-27b","messages":[{"role":"user","content":"Hello"}]}' Node (openai)
import OpenAI from 'openai';
const client = new OpenAI({ baseURL: 'https://api.example.invalid/v1', apiKey: process.env.GPUCLUB_API_KEY });
const res = await client.chat.completions.create({
model: 'qwen3.8-27b',
messages: [{ role: 'user', content: 'Hello' }],
});
console.log(res.choices[0].message.content); Python (openai)
from openai import OpenAI
client = OpenAI(base_url="https://api.example.invalid/v1", api_key=os.environ["GPUCLUB_API_KEY"])
res = client.chat.completions.create(
model="qwen3.8-27b",
messages=[{"role": "user", "content": "Hello"}],
)
print(res.choices[0].message.content) Streaming works the same way: set stream to true.
Priority, not limits
Within your budget your requests go first. Past it, they still run whenever the card has spare capacity, at full speed when nobody else is using it.
Every response carries X-GPUClub-* headers with your period usage, your budget and your current priority state.
Error codes
| Status | Code | Meaning |
|---|---|---|
| 401 | invalid_api_key | The key is unknown or revoked. |
| 401 | subscription_past_due | The subscription behind the key has an unpaid invoice. |
| 429 | rate_limit_exceeded | Too many requests in a minute for this plan. |
| 503 | club_unavailable | The club’s GPU is being started or replaced, or no host is available under its price ceiling. Retry after the Retry-After header. |
Always on
Your club’s GPU runs around the clock. If a host fails or is replaced, requests get 503 club_unavailable with a Retry-After header until the new machine is healthy; we publish uptime and restart counts on every club page.