OpenAI SDK Compatibility¶
IndoxHub is compatible with the OpenAI Python SDK. Just change the base_url to use any of our 200+ models with the same code.
Setup¶
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.indoxhub.com/v1"
)
Chat Completions¶
response = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain quantum computing simply."}
],
temperature=0.7,
max_tokens=500
)
print(response.choices[0].message.content)
Use Any Provider¶
The same SDK works with all providers — just change the model name:
# OpenAI
response = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[{"role": "user", "content": "Hello!"}]
)
# Anthropic
response = client.chat.completions.create(
model="anthropic/claude-haiku-4.5",
messages=[{"role": "user", "content": "Hello!"}]
)
# DeepSeek (cheapest)
response = client.chat.completions.create(
model="deepseek/deepseek-chat",
messages=[{"role": "user", "content": "Hello!"}]
)
# Google
response = client.chat.completions.create(
model="google/gemini-2.0-flash",
messages=[{"role": "user", "content": "Hello!"}]
)
Streaming¶
stream = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[{"role": "user", "content": "Write a short story"}],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
Embeddings¶
response = client.embeddings.create(
model="openai/text-embedding-3-small",
input="IndoxHub makes AI simple."
)
vector = response.data[0].embedding
print(f"Dimensions: {len(vector)}")
Image Generation¶
response = client.images.generate(
model="openai/dall-e-3",
prompt="A robot painting a sunset",
size="1024x1024",
n=1
)
print(response.data[0].url)
Text Completions¶
response = client.completions.create(
model="openai/gpt-4o-mini",
prompt="The future of AI is",
max_tokens=100
)
print(response.choices[0].text)
Vision¶
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}],
max_tokens=300
)
print(response.choices[0].message.content)
Migration from OpenAI¶
To migrate an existing OpenAI application to IndoxHub, make two changes:
# Before (OpenAI direct)
client = OpenAI(api_key="sk-your-openai-key")
# After (IndoxHub)
client = OpenAI(
api_key="YOUR_API_KEY", # Your IndoxHub API key
base_url="https://api.indoxhub.com/v1" # IndoxHub base URL
)
Everything else stays the same. You can now switch between any of 200+ models from 14+ providers without changing your code.