> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dedaluslabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Models API

> One endpoint. Any model. OpenAI-compatible.

Dedalus Models API is an OpenAI-compatible endpoint that routes to every major LLM provider. One API key. Any model from Anthropic, OpenAI, Google, Meta, xAI, DeepSeek, Mistral, and more.

## What you get

* **One key, any model.** Switch providers with a string change.
* **OpenAI-compatible.** Works with the OpenAI SDK, OpenAI Agents SDK, Vercel AI SDK, or any OpenAI-compatible client.
* **Streaming, tools, structured outputs, multimodal.** All standard fields pass through.
* **Automatic retries and fallbacks** across providers.
* **Token-for-token pricing.** No markup. [BYOK](/sdk/byok) supported.

## Supported models

Every major provider, routed through one endpoint. See the full catalog in [Supported Models](/api/models), or fetch the live list via [`GET /v1/models`](/api/list-models). Latest additions: `anthropic/claude-opus-4-6`, `openai/gpt-5.2`, `google/gemini-3-pro-preview`, `xai/grok-4-1-fast-reasoning`.

## Quickstart

Use the official Dedalus SDK:

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import asyncio
  from dedalus_labs import AsyncDedalus, DedalusRunner

  async def main():
      client = AsyncDedalus()
      runner = DedalusRunner(client)

      response = await runner.run(
          input="What is the capital of France?",
          model="anthropic/claude-opus-4-5",
      )

      print(response.final_output)

  asyncio.run(main())
  ```

  ```typescript TypeScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import Dedalus, { DedalusRunner } from "dedalus-labs";

  const client = new Dedalus();
  const runner = new DedalusRunner(client);

  const response = await runner.run({
  	input: "What is the capital of France?",
  	model: "anthropic/claude-opus-4-5",
  });

  console.log(response.finalOutput);
  ```

  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -X POST https://api.dedaluslabs.ai/v1/chat/completions \
    -H "Authorization: Bearer $DEDALUS_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "anthropic/claude-opus-4-5",
      "messages": [{"role": "user", "content": "What is the capital of France?"}]
    }'
  ```
</CodeGroup>

<Note>
  **OpenAI-compatible.** The same endpoint works drop-in with the OpenAI SDK, the OpenAI Agents SDK, the Vercel AI SDK, or any OpenAI-compatible client. Point `baseURL` at `https://api.dedaluslabs.ai/v1` and pass your Dedalus API key.
</Note>

## Also works with

<CardGroup cols={3}>
  <Card title="OpenAI SDK" icon="code" href="https://platform.openai.com/docs/libraries">
    Set `baseURL` and your Dedalus key.
  </Card>

  <Card title="OpenAI Agents SDK" icon="bot" href="https://github.com/openai/openai-agents-python">
    Full agent loop, compatible out of the box.
  </Card>

  <Card title="Vercel AI SDK" icon="triangle" href="https://ai-sdk.dev">
    Use the openai-compatible provider.
  </Card>
</CardGroup>

## Capabilities

All standard OpenAI Chat Completions fields pass through. Deeper guides live in the SDK section:

<CardGroup cols={2}>
  <Card title="Streaming" icon="bolt" href="/sdk/streaming">
    Server-sent events, token-by-token.
  </Card>

  <Card title="Tool calling" icon="wrench" href="/sdk/tools">
    Let the model call your functions.
  </Card>

  <Card title="Structured outputs" icon="braces" href="/sdk/structured-outputs">
    Pydantic and Zod schemas, enforced.
  </Card>

  <Card title="Supported models" icon="grid" href="/api/models">
    Browse the full catalog.
  </Card>
</CardGroup>

## API Reference

Full endpoint-level reference lives in [API Reference > Models API](/api-reference/api).
