Skip to main content
Dedalus is model-agnostic. Every model from every provider is accessible through a single, unified API. Switch providers by changing a string.
from dedalus_labs import Dedalus

client = Dedalus()

response = client.chat.completions.create(
    model="openai/gpt-4.1",
    messages=[{"role": "user", "content": "Hello!"}],
)

print(response.choices[0].message.content)
Swap openai/gpt-4.1 for anthropic/claude-sonnet-4 or google/gemini-2.5-pro and everything else stays the same.

Listing available models

models = client.models.list()

for model in models.data:
    print(model.id, model.provider)
Each model object includes capabilities (tools, vision, streaming, structured output, thinking) and provider_info (status, upstream API).
See Response Schemas for the full ListModelsResponse shape.

Provider format

Models use the format provider/model-name:
ProviderExample
OpenAIopenai/gpt-4.1
Anthropicanthropic/claude-sonnet-4
Googlegoogle/gemini-2.5-pro
xAIxai/grok-3
DeepSeekdeepseek/deepseek-r1
Mistralmistral/mistral-large-latest

Read more

Quickstart

Install the SDK and make your first call

BYOK

Bring your own provider API keys

Tools

Give models the ability to call functions

Streaming

Stream responses token by token
Last modified on April 9, 2026