Skip to content

Python SDK

LLMTR is OpenAI-compatible, so the official OpenAI Python SDK works with no changes. Just set base_url and api_key.

Terminal window
pip install openai
from openai import OpenAI
client = OpenAI(
base_url="https://llmtr.com/v1",
api_key="sk_your_key"
)
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
{"role": "system", "content": "You are concise."},
{"role": "user", "content": "Explain LLMTR in one line."}
],
temperature=0.3
)
print(response.choices[0].message.content)
stream = client.chat.completions.create(
model="anthropic/claude-sonnet-4.5",
messages=[{"role": "user", "content": "Write a haiku about fog."}],
stream=True
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
print(delta, end="", flush=True)
import asyncio
from openai import AsyncOpenAI
async def main():
client = AsyncOpenAI(
base_url="https://llmtr.com/v1",
api_key="sk_your_key"
)
response = await client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hi"}]
)
print(response.choices[0].message.content)
asyncio.run(main())

The SDK reads OPENAI_API_KEY and OPENAI_BASE_URL:

Terminal window
export OPENAI_API_KEY="sk_your_key"
export OPENAI_BASE_URL="https://llmtr.com/v1"
from openai import OpenAI
client = OpenAI() # reads env vars
response = client.chat.completions.create(
model="google/gemini-2.5-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What is in this photo?"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/photo.jpg"}
}
]
}]
)

The SDK has built-in retry:

client = OpenAI(
base_url="https://llmtr.com/v1",
api_key="sk_your_key",
max_retries=3,
timeout=30.0
)