NewHow we catch a seller listing the wrong model, and refund you if one does.
UberLLM

Starter kits

Four small projects you can copy and run. Each one uses UberLLM as the model provider through https://api.uberllm.dev/v1, pins its dependency versions and comes with a smoke test.

Starter What you get Stack
Next.js chat app A streaming chat app with a tool and typed output Next.js, Vercel AI SDK
LangGraph agent An agent that calls tools in a loop Python, LangGraph
CrewAI crew Two agents that research and write Python, CrewAI
Agent CLI, no framework A tool-calling agent in one file with no dependencies TypeScript, Node

Quick start

  1. Copy a starter. Replace tool-agent-cli with nextjs-ai-sdk-chat, langgraph-agent or crewai-crew for the others:

    npx degit PSA-Team-source/uberllm/starters/tool-agent-cli my-agent
    cd my-agent
    
  2. Create a key in Dashboard → Keys and put it in the starter's env file. Accounts start at $0, so add credit before the first call.

    cp .env.example .env   # .env.local for the Next.js starter
    
  3. Run it. Each starter's README has the exact commands:

    Starter Install Run
    nextjs-ai-sdk-chat npm install npm run dev, then open http://localhost:3000
    langgraph-agent pip install -r requirements.txt python agent.py "What would 3 million output tokens of openai/gpt-5.5 cost?"
    crewai-crew pip install -r requirements.txt python crew.py openai/gpt-5.5 anthropic/claude-sonnet-5.5
    tool-agent-cli nothing (Node 22.18 or newer) node agent.ts "What does this project do?"

The default model is deepseek/deepseek-v4-flash. Set UBERLLM_MODEL to any chat model on uberllm.dev/models that takes tools.

What each starter shows

  • Next.js chat app. useChat on the page, streamText in the route, one tool that looks up live model prices, and the provider set up with supportsStructuredOutputs: true, which typed output (Output.object) needs. More on the SDK: Vercel AI SDK.
  • LangGraph agent. The standard agent graph (model → tools → model) with ChatOpenAI pointed at UberLLM. More: LangChain.
  • CrewAI crew. Two agents on one model. The model id is written as "openai/" + <UberLLM id> with custom_openai=True, which is how CrewAI reaches an OpenAI-compatible endpoint.
  • Agent CLI. The whole tool loop in about 200 lines of plain fetch: send the tools, run the calls the model asks for, send the results back, repeat. It prints token counts and the cost of each answer.

What every starter does

  • The key only goes to UberLLM. The base URL is set in code, so an OPENAI_BASE_URL in your shell is not used.
  • Exact versions. Dependencies are pinned, so the starter you copy is the one that was tested.
  • A smoke test. Without a key it runs against a stand-in for the API. With UBERLLM_API_KEY set it also makes a real call, which costs about a cent or less.

Each call costs what its provider charged, and a failed call is not billed. To cap what a key can spend, set a spend limit on it in Dashboard → Keys. See Pricing.

A live price badge for your README

Does your project support UberLLM? A badge shows the current price of the model you recommend. UberLLM serves it as an SVG, so it updates by itself when the price changes.

DeepSeek V4 Flash price on UberLLM

Markdown:

[![DeepSeek V4 Flash price on UberLLM](https://api.uberllm.dev/api/v1/public/badge/deepseek/deepseek-v4-flash.svg)](https://uberllm.dev/models/deepseek/deepseek-v4-flash?utm_source=embed&utm_medium=referral&utm_campaign=price-badge)

HTML:

<a href="https://uberllm.dev/models/deepseek/deepseek-v4-flash?utm_source=embed&amp;utm_medium=referral&amp;utm_campaign=price-badge"><img src="https://api.uberllm.dev/api/v1/public/badge/deepseek/deepseek-v4-flash.svg" alt="DeepSeek V4 Flash price on UberLLM"></a>
  • Put any model id from uberllm.dev/models in both addresses, for example anthropic/claude-sonnet-5.5.
  • An id that does not exist answers 404, so check that the badge loads before you commit.
  • For the numbers instead of a picture, the same prices are JSON at https://api.uberllm.dev/api/v1/public/prices?model=<model id>. No key needed, and browsers can call it. See Price API and price badge.
  • To have your app listed on uberllm.dev/apps, send the two headers in Apps.

More examples

Single-file examples for more SDKs and languages (OpenAI and Anthropic SDKs, LlamaIndex, LiteLLM, Pydantic AI, Go, Rust, Java, .NET, curl, images, video, music and speech) are in the cookbook.