Docs / SDK & Frameworks
SDK & Frameworks
RelayRouter works with any tool or framework that supports a custom OpenAI-compatible endpoint. The only change is the base URL and the API key.
| Setting | Value |
|---|---|
baseURL / base_url | https://relayrouter.io/v1 |
apiKey / api_key | Your RelayRouter API key |
#OpenAI SDK (drop-in)
TypeScript
index.tstypescript
import OpenAI from "openai";
// Change two values, keep everything else.
const client = new OpenAI({
apiKey: process.env.RELAYROUTER_API_KEY,
baseURL: "https://relayrouter.io/v1",
});
const response = await client.chat.completions.create({
model: "claude-opus-4-8",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);Python
main.pypython
from openai import OpenAI
import os
client = OpenAI(
api_key=os.environ["RELAYROUTER_API_KEY"],
base_url="https://relayrouter.io/v1",
)
response = client.chat.completions.create(
model="claude-opus-4-8",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)#Anthropic SDK (native protocol)
The gateway also speaks the Anthropic protocol at POST /v1/messages, so the official Anthropic SDK works without an adapter. Set base_url to https://relayrouter.io (the site root, not /v1) and keep your code unchanged. Gemini-style /v1beta endpoints are available too.
anthropic_sdk.pypython
import anthropic
import os
client = anthropic.Anthropic(
api_key=os.environ["RELAYROUTER_API_KEY"],
base_url="https://relayrouter.io",
)
msg = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}],
)
print(msg.content[0].text)#LangChain
langchain_example.pypython
from langchain_openai import ChatOpenAI
import os
llm = ChatOpenAI(
model="claude-opus-4-8",
openai_api_key=os.environ["RELAYROUTER_API_KEY"],
openai_api_base="https://relayrouter.io/v1",
)
res = llm.invoke("What is the capital of France?")
print(res.content)#LiteLLM
litellm_example.pypython
import litellm, os
response = litellm.completion(
model="openai/claude-opus-4-8", # openai/ prefix selects the OpenAI-compatible driver
messages=[{"role": "user", "content": "Hello!"}],
api_key=os.environ["RELAYROUTER_API_KEY"],
api_base="https://relayrouter.io/v1",
)
print(response.choices[0].message.content)#Other OpenAI-compatible tools
Desktop apps and web UIs (Chatbox, Cherry Studio, OpenWebUI and similar) work the same way: pick the OpenAI provider type, set the base URL to https://relayrouter.io/v1 and paste your key.
Always include the
/v1 suffix in the base URL when configuring third-party tools.