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

# Anthropic (Claude)

> Use Claude models through Orbitrage — in plain OpenAI format.

Orbitrage speaks **OpenAI format only**. You don't use the Anthropic SDK — just
name a Claude model in a normal chat-completions call and Orbitrage routes it to
Anthropic for you.

<CodeGroup>
  ```python Python theme={null}
  import os, orbitrage
  orbitrage.init(os.environ["ORBITRAGE_API_KEY"], user_id="customer_42")

  from openai import OpenAI                 # the OpenAI SDK — not the Anthropic one
  OpenAI().chat.completions.create(
      model="claude-sonnet-4-6",            # name a Claude model → routed to Anthropic
      messages=[{"role": "user", "content": "hi"}],
  )
  ```

  ```typescript Node.js theme={null}
  import { orbitrage } from "orbitrage";
  await orbitrage.init({ apiKey: process.env.ORBITRAGE_API_KEY, userId: "customer_42" });

  import OpenAI from "openai";
  await new OpenAI().chat.completions.create({
    model: "claude-sonnet-4-6",
    messages: [{ role: "user", content: "hi" }],
  });
  ```
</CodeGroup>

* Name any Claude model (`claude-sonnet-4-6`, `claude-opus-4-8`, …) and Orbitrage forwards to Anthropic and translates the request behind the scenes.
* Or pass `model="auto"` and let the router choose an open-weight model.
* Tools, streaming, and vision work exactly as in [Tool calling](/examples/tool-calling) and [Streaming](/examples/streaming).

<Note>
  Claude models are **BYOK-only**. Save and enable an Anthropic key on the
  [Models page](https://app.orbitrage.ai/models) — the call then runs on your
  Anthropic account at your rate and Orbitrage charges **\$0** for the tokens. With
  no enabled key, `claude-*` returns `403 byok_key_required` rather than falling
  back to pooled inference. You still call in OpenAI format either way. See
  [BYOK](/concepts/byok).
</Note>
