Skip to main content

Models Catalog

Emby lets you access multiple open-source and commercial models through one simple, OpenAI-compatible API. Every model has a model ID — use this ID inside your API calls.

Live Models Data

🔄 Interactive model list coming soon.
For now, refer to the tables below.

Model Selection Guide

By Use Case

Fast Responses

  • kimi-k1.5-mini
  • qwen2.5-coder-mini
  • deepseek-v3-mini
  • glm-4-air-mini

Complex Reasoning

  • kimi-k2
  • deepseek-v3
  • glm-4.1
  • qwen3.5-coder-large

Cost-Effective

  • deepseek-v3-mini
  • qwen2.5-coder-mini
  • glm-4-air-mini

Large Context Windows

  • qwen3.5-coder-large-128k
  • glm-4.1-200k
  • deepseek-r1-128k

Vision Models

  • glm-4v
  • qwen2.5-vision
  • deepseek-v3-vision

Code Generation

  • kimi-k2
  • deepseek-v3
  • qwen3.5-coder-large

By Budget

Budget TierRecommended ModelsUse Cases
Economydeepseek-v3-mini, qwen-2.5-coder-miniSimple tasks, prototyping
Standardkimi-k1.5-pro, glm-4-airProduction coding assistants
Premiumkimi-k2, qwen-3.5-coder-largeReasoning, refactoring
Enterprisedeepseek-v3-128k, glm-4.1-200kComplex systems, RAG, long context

Using Models in Code

Use the model ID in all Emby API requests.

Python

from openai import OpenAI

client = OpenAI(
    base_url="https://api.emby.dev/v1",
    api_key="your-emby-key"
)

# Kimi K2
resp = client.chat.completions.create(
    model="kimi-k2",
    messages=[{"role": "user", "content": "Hello!"}]
)

# DeepSeek V3
resp = client.chat.completions.create(
    model="deepseek-v3",
    messages=[{"role": "user", "content": "Explain async in Python"}]
)

# Qwen 3.5 Coder
resp = client.chat.completions.create(
    model="qwen3.5-coder-large",
    messages=[{"role": "user", "content": "Refactor this code"}]
)

JavaScript

const response = await fetch("https://api.emby.dev/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.EMBY_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "kimi-k2",
    messages: [{ role: "user", content: "Hello!" }]
  })
});

console.log(await response.json());

cURL

curl https://api.emby.dev/v1/chat/completions \
  -H "Authorization: Bearer $EMBY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v3",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

Automatic Fallback

Use model fallback to ensure requests never fail:
client.chat.completions.create(
    model="kimi-k2",
    messages=messages,
    fallback_models=["deepseek-v3", "qwen3.5-coder-large"],
    fallback_on_rate_limit=True,
    fallback_on_error=True,
)