# LLM Broker — Quickstarts

One OpenAI-compatible key for our own models and the market. Base URL `https://api.llm-broker.net/api/v1`, key
`Authorization: Bearer ast_sk_…` (account via `POST https://llm-broker.net/api/v1/broker/accounts`).
`model: "taylor"` = strongest measured model; any id from `GET /api/v1/broker/models` works too.
`routing` sets criteria per request (`category`, `level`, `min_score`, `max_price`, `region`, `sort`,
`capabilities`); each non-streaming answer carries `broker` (region, cost, routing applied).

## curl

```bash
curl -s https://api.llm-broker.net/api/v1/chat/completions \
  -H "Authorization: Bearer $BROKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "taylor",
       "messages": [{"role": "user", "content": "Say OK"}],
       "routing": {"category": "coding", "level": "best"}}'
```

## Python (OpenAI SDK)

`pip install openai`

```python
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.llm-broker.net/api/v1", api_key=os.environ["BROKER_API_KEY"])
r = client.chat.completions.create(
    model="taylor",
    messages=[{"role": "user", "content": "Say OK"}],
    # criteria per request; the broker picks the cheapest offer that meets them
    extra_body={"routing": {"category": "coding", "level": "best"}},
)
print(r.choices[0].message.content)
print(getattr(r, "broker", None))  # region, cost, routing applied
```

## LangChain / LangGraph

`pip install langchain langchain-openai`

```python
import os
from langchain_openai import ChatOpenAI
from langchain.agents import create_agent  # LangGraph 1.0 agent runtime

llm = ChatOpenAI(
    model="taylor",
    base_url="https://api.llm-broker.net/api/v1",
    api_key=os.environ["BROKER_API_KEY"],
    extra_body={"routing": {"category": "reasoning", "level": "strong"}},
)
agent = create_agent(llm, tools=[])
out = agent.invoke({"messages": [("user", "Say OK")]})
print(out["messages"][-1].content)
```

## CrewAI

`pip install crewai`

```python
import os
from crewai import LLM

# "openai/" tells CrewAI to speak the OpenAI protocol to our base_url
llm = LLM(model="openai/taylor", base_url="https://api.llm-broker.net/api/v1", api_key=os.environ["BROKER_API_KEY"])
print(llm.call("Say OK"))
# use it in an agent: Agent(role=..., goal=..., backstory=..., llm=llm)
```

## AutoGen

`pip install autogen-agentchat "autogen-ext[openai]"`

```python
import asyncio, os
from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient

client = OpenAIChatCompletionClient(
    model="taylor",
    base_url="https://api.llm-broker.net/api/v1",
    api_key=os.environ["BROKER_API_KEY"],
    model_info={"vision": False, "function_calling": True, "json_output": True,
                "family": "unknown", "structured_output": True},
)

async def main():
    agent = AssistantAgent("assistant", model_client=client)
    result = await agent.run(task="Say OK")
    print(result.messages[-1].content)

asyncio.run(main())
```

## LlamaIndex

`pip install llama-index-llms-openai-like`

```python
import os
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(model="taylor", api_base="https://api.llm-broker.net/api/v1", api_key=os.environ["BROKER_API_KEY"],
                 is_chat_model=True, context_window=128000)
print(llm.complete("Say OK"))
```

## MCP (Claude Desktop, Cursor, Cline)

`Registry: net.llm-broker/broker`

```json
{
  "mcpServers": {
    "llm-broker": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.llm-broker.net/api/v1/broker/mcp",
               "--header", "Authorization: Bearer ${BROKER_API_KEY}"],
      "env": {"BROKER_API_KEY": "ast_sk_…"}
    }
  }
}
```

## n8n, Cursor, other OpenAI-compatible tools

```text
Credential / provider type: OpenAI (or "OpenAI-compatible")
Base URL:  https://api.llm-broker.net/api/v1
API key:   ast_sk_…
Model:     taylor   (or any id from GET /api/v1/broker/models)
```
