Skip to content

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.

Documentation last built on May 23, 2026