API Documentation
BadAssModeles is a drop-in OpenAI-compatible API. If a tool speaks OpenAI, it speaks BadAssModeles.
The two things every tool asks for
Base URL: https://badassmodel.com/v1
API Key: sk-bam-... (Dashboard → API Keys → Create key)
curl (the 30-second test)
curl https://badassmodel.com/v1/chat/completions \
-H "Authorization: Bearer sk-bam-..." \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1",
"stream": true,
"messages": [{"role": "user", "content": "hello"}]
}'List models: curl https://badassmodel.com/v1/models -H "Authorization: Bearer sk-bam-..."
Python (official openai SDK)
from openai import OpenAI
client = OpenAI(base_url="https://badassmodel.com/v1", api_key="sk-bam-...")
stream = client.chat.completions.create(
model="deepseek-r1",
messages=[{"role": "user", "content": "hello"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")OpenCode
export BADASS_API_KEY=sk-bam-...
# add to ~/.config/opencode/opencode.json:
{
"provider": {
"badassmodeles": {
"npm": "@ai-sdk/openai-compatible",
"name": "BadAssModeles",
"options": { "baseURL": "https://badassmodel.com/v1", "apiKey": "{env:BADASS_API_KEY}" },
"models": { "deepseek-r1": { "name": "DeepSeek R1" } }
}
}
}Cursor / VS Code (Cline, Roo, Continue) / Open WebUI / SillyTavern
Choose OpenAI Compatible as the provider and fill in:
Base URL: https://badassmodel.com/v1
API Key: sk-bam-...
Model: any id from GET https://badassmodel.com/v1/models
Billing & limits
Prepaid balance only, crypto deposits via NOWPayments ($5 minimum). Every request is billed per token from your balance — no balance, no requests (HTTP 402). 60 requests/min per key. Larger single deposits permanently unlock lower rates ($50, $100, $200 tiers — see pricing).