Quickstart
UberLLM is a single endpoint for every model. It speaks the OpenAI and Anthropic wire formats, so most tools and SDKs work by changing one setting: the base URL. Your existing code stays the same.
- OpenAI-compatible base URL:
https://api.uberllm.dev/v1 - Anthropic-compatible base URL:
https://api.uberllm.dev(endpoint/v1/messages)
1. Create an API key
- Sign in at uberllm.dev and open Dashboard → Keys.
- Click Create key, name it, and (optionally) set a spend limit or per-minute rate limit.
- Copy the key — it is shown once. Keys look like
ull_followed by 43 characters (ull_R7f2...). Store it in an environment variable, never in source control.
export UBERLLM_API_KEY="ull_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2. Add credits
Inference is prepaid and new accounts start at $0. Open Dashboard → Credits and top up (minimum $5) via Stripe. Each call is routed to the cheapest healthy seller on a live marketplace and you pay the price shown, which already includes UberLLM's 10% fee. A separate 5% fee applies to the credit purchase itself. See Pricing.
3. Make your first call
Point any OpenAI-compatible client at https://api.uberllm.dev/v1 with your
ull_ key as the API key.
curl (streaming)
curl -N https://api.uberllm.dev/v1/chat/completions \
-H "Authorization: Bearer $UBERLLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek/deepseek-v4-flash",
"stream": true,
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}'
Python (official openai SDK)
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.uberllm.dev/v1",
api_key=os.environ["UBERLLM_API_KEY"],
)
stream = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "Say hello in one sentence."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
TypeScript (official openai SDK)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.uberllm.dev/v1",
apiKey: process.env.UBERLLM_API_KEY,
});
const stream = await client.chat.completions.create({
model: "deepseek/deepseek-v4-flash",
messages: [{ role: "user", content: "Say hello in one sentence." }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
4. Confirm it worked
Open Dashboard → Activity. You will see the request logged with the model, the provider it was routed to, token counts, latency, and the exact cost deducted from your balance.
Next steps
- OpenAI SDK drop-in — full guide including non-streaming, tools.
- Anthropic SDK — use
client.messagesagainst/v1/messages. - Models & routing — model ids, automatic retries, and routing options.
- Editor integrations: Cursor, Cline, Roo Code, Aider, Continue.
- Frameworks: LangChain, Vercel AI SDK.