Build on llm.buzz
Keep the SDK you already use. Change the base URL and the key.
Two lines in either SDK
Streaming, tools and the rest work as they are. Model names are the ones on llm.buzz, such as moonshotai/kimi-k3.
OpenAI SDK
import os
from openai import OpenAI
client = OpenAI(
Removed: base_url="https://api.openai.com/v1",
Added: base_url="https://api.llm.buzz/api/v1",
Removed: api_key=os.environ["OPENAI_API_KEY"],
Added: api_key=os.environ["LLM_BUZZ_KEY"],
)
Anthropic SDK
import os
from anthropic import Anthropic
client = Anthropic(
Added: base_url="https://api.llm.buzz/api",
Removed: api_key=os.environ["ANTHROPIC_API_KEY"],
Added: api_key=os.environ["LLM_BUZZ_KEY"],
)
Make a request
The same call in three languages, against a model live on llm.buzz now.
curl
Added: curl https://api.llm.buzz/api/v1/chat/completions \
-H "Authorization: Bearer $LLM_BUZZ_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "moonshotai/kimi-k3",
"messages": [{"role": "user", "content": "Hello"}]}'
Python
import os
from openai import OpenAI
client = OpenAI(
Added: base_url="https://api.llm.buzz/api/v1",
api_key=os.environ["LLM_BUZZ_KEY"],
)
reply = client.chat.completions.create(
model="moonshotai/kimi-k3",
messages=[{"role": "user", "content": "Hello"}],
)
TypeScript
import OpenAI from "openai";
const client = new OpenAI({
Added: baseURL: "https://api.llm.buzz/api/v1",
apiKey: process.env.LLM_BUZZ_KEY,
});
const reply = await client.chat.completions.create({
model: "moonshotai/kimi-k3",
messages: [{ role: "user", content: "Hello" }],
});
- Base URL
- https://api.llm.buzz/api/v1
- Header
- Authorization: Bearer $LLM_BUZZ_KEY
- Endpoints
- POST /chat/completions
POST /responses
POST /messages
POST /embeddings
GET /models
Every way in.
The SDKs you know, the OpenRouter routes, and plain files an agent can read.
- llm.buzz APIChat, Responses, Messages, Embeddings
- OpenAI SDKPoint base_url at llm.buzz
- Anthropic SDKWorks through /api/v1/messages
- OpenRouter routesThe OpenRouter-compatible /api/v1
- llms.txtWhat llm.buzz is, every model and provider
- llms-full .txtEvery docs page in one Markdown file
- For AIEvery machine-readable surface of the site
The public catalog
Read-only JSON with no key: the data these pages are built from. It is the site’s data, not a stable API, so programs should call the model API.
GET /siteThe catalog’s counts, the standard rate and the billing facts.
GET /modelsEvery public model with its prices, context, capabilities and providers.
GET /models/{name}One model with each provider’s prices, limits, data policy and performance.
GET /providersEvery public provider.
GET /rankingsThe most used models and apps of the last complete weeks.
curl
curl https://api.llm.buzz/public/v1/models
For programs, GET https://api.llm.buzz/api/v1/models lists the public models without a key too, in OpenRouter’s shape.
Building something on llm.buzz?Ask questions and share what you made in the Surogate Discord.