Docs
OpenAI-Compatible API Quickstart
One Bearer token, one OpenAI-compatible endpoint. If your code already talks to the OpenAI API, you change two lines: the base URL and the key.
Get your key
Request an invite, then create a key in your dashboard.Create an account, then create a key in the console.Swap the base URL
Point your SDK at the Bearer Club endpoint.Show your card at the door
Send your key as a Bearer token.
Get your key
During the private beta, keys are open to invited accounts. Not invited yet? Join the waitlist. Invited? Create your account and open API keys in the console.
Create your account and open API keys in the console.
Keys look like this (example only, not a real key):
bc_live_xxxxxxxxxxxxStore it in an environment variable. The examples below read BEARER_CLUB_API_KEY:
export BEARER_CLUB_API_KEY="bc_live_xxxxxxxxxxxx" # example placeholderTreat your key like a password. Don't commit it, paste it into chats, or ship it in front-end code.
Base URL and auth
- Base URL:
https://api.bearer.club/v1 - Auth header:
Authorization: Bearer <your key>
Your API key is your membership card. Show it at the door on every request.
Your first request
curl https://api.bearer.club/v1/chat/completions \ -H "Authorization: Bearer $BEARER_CLUB_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek/deepseek-v4-flash", "messages": [{"role": "user", "content": "Hello from the Club!"}] }'import osfrom openai import OpenAIclient = OpenAI( base_url="https://api.bearer.club/v1", api_key=os.environ["BEARER_CLUB_API_KEY"], # your membership card)resp = client.chat.completions.create( model="deepseek/deepseek-v4-flash", messages=[{"role": "user", "content": "Hello from the Club!"}],)print(resp.choices[0].message.content)import OpenAI from "openai";const client = new OpenAI({ baseURL: "https://api.bearer.club/v1", apiKey: process.env.BEARER_CLUB_API_KEY, // your membership card});const resp = await client.chat.completions.create({ model: "deepseek/deepseek-v4-flash", messages: [{ role: "user", content: "Hello from the Club!" }],});console.log(resp.choices[0].message.content);That's the whole migration. Streaming, tool calls and JSON mode pass through where the model supports them.
Streaming
Set stream: true to get tokens as they're generated (server-sent events, same format as the OpenAI API).
import osfrom openai import OpenAIclient = OpenAI( base_url="https://api.bearer.club/v1", api_key=os.environ["BEARER_CLUB_API_KEY"],)stream = client.chat.completions.create( model="deepseek/deepseek-v4-flash", messages=[{"role": "user", "content": "Write a haiku about bulk discounts."}], stream=True,)for chunk in stream: if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True)import OpenAI from "openai";const client = new OpenAI({baseURL: "https://api.bearer.club/v1",apiKey: process.env.BEARER_CLUB_API_KEY,});const stream = await client.chat.completions.create({model: "deepseek/deepseek-v4-flash",messages: [{ role: "user", content: "Write a haiku about bulk discounts." }],stream: true,});for await (const chunk of stream) {process.stdout.write(chunk.choices[0]?.delta?.content ?? "");}List models
GET /v1/models returns every model you can call, in the OpenAI list format. Browse the same catalog with prices in the aisles.
curl https://api.bearer.club/v1/models \ -H "Authorization: Bearer $BEARER_CLUB_API_KEY"Choose a data policy
Each key is Private or Research Share. You set it when you create the key in your dashboard. Switching applies only to future requests.
- Private: Your prompts and outputs are never used for training and never shared or licensed. For security, abuse prevention and debugging we store request and response content, encrypted, and delete it after 30 days; error details may be kept longer. We also keep usage details (model, tokens, cost, latency, status and time).
- Research Share: opt in and pay less. Prompts and outputs from that key are scrubbed for personal data and secrets, then will be used to accelerate AGI and supplied to top frontier labs for AGI purposes.
Guest keys always use Research Share: it's the condition of the free Guest tier. Read how the Research Program works.
Use it with your tools
Tools that speak the OpenAI API, like Cursor, Cline, Continue, Open WebUI and LiteLLM, can point at Bearer Club. Look for an "OpenAI-compatible" (or custom OpenAI base URL) provider option and fill in three values:
Base URL: https://api.bearer.club/v1
API key: your Bearer Club key (bc_live_β¦)
Model id: deepseek/deepseek-v4-flash (any id from GET /v1/models)Setting names vary by tool version
Each tool labels these fields differently, and menus move between releases. Check your tool's docs for where to set a custom OpenAI base URL.
Errors
Draft: final codes ship with the API
This table is a draft summary. The API reference lists every error type.
Errors use the OpenAI shape: { "error": { "type": "β¦", "message": "β¦" } }.
| Code | Meaning |
|---|---|
| 401 | Missing or invalid key |
| 402 | Insufficient credits |
| 403 | Model not available for your tier or region |
403 guest_spend_cap_reached | Guest annual usage cap ($10,000 per calendar year) reached. Upgrade to Member or wait for the yearly reset. |
| 404 | Unknown model |
| 429 | Rate limit or spend cap reached |
| 5xx | Upstream issue: retry with backoff |
Usage and billing
Draft
Billing details may change before launch.Responses include standard usage token counts. Your dashboard shows list price vs your price per request. Usage is paid from prepaid credits. See Pricing for credit rules.
Good to know
- AI outputs can be inaccurate, so verify important facts.
- If you build a chatbot, tell your users they're talking to AI.
- Follow the Acceptable Use Policy.
- Need more detail? Read the API reference or how models are hosted.