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

# From Anthropic

> Migrate from Anthropic to Radium

<Error>
  This page contains placeholder values, assumptions, or outdated info marked in <span style="color:red">red</span>. These need verification from stakeholders (Vijay, Adam, Alex, Product/Legal).
</Error>

# From Anthropic

Radium serves the Anthropic Messages endpoint at `POST /v1/messages`. The Anthropic SDK, Claude Code, PydanticAI, and any framework that targets Anthropic can point at Radium by changing the base URL.

## Before and after

```diff Python theme={null}
  from anthropic import Anthropic
  client = Anthropic(
-     api_key=os.environ["ANTHROPIC_API_KEY"],
-     base_url="https://api.anthropic.com",
+     api_key=os.environ["RADIUM_API_KEY"],
+     base_url="https://api.radium.cloud",
  )
  response = client.messages.create(
-     model="claude-4-sonnet-20250929",
+     model="clarke-1.0",
      max_tokens=1024,
      messages=[{"role": "user", "content": "Hello"}],
  )
```

```diff TypeScript theme={null}
  import Anthropic from "@anthropic-ai/sdk";
  const client = new Anthropic({
-   apiKey: process.env.ANTHROPIC_API_KEY,
-   baseURL: "https://api.anthropic.com",
+   apiKey: process.env.RADIUM_API_KEY,
+   baseURL: "https://api.radium.cloud",
  });
  const response = await client.messages.create({
-   model: "claude-4-sonnet-20250929",
+   model: "clarke-1.0",
    max_tokens: 1024,
    messages: [{ role: "user", content: "Hello" }],
  });
```

## Supported endpoints

| Endpoint | Status |
| - | - |
| `POST /v1/messages` | Supported |
| `POST /v1/messages/count_tokens` | Supported |

## Reading the response

When reasoning is enabled, the response contains a `thinking` content block before the `text` block. Read the last content block, not the first one. This is the same pattern the Anthropic SDK uses.

```python theme={null}
# Correct: read the last block
print(response.content[-1].text)

# Incorrect: may return the thinking block
print(response.content[0].text)
```

## Prompt caching

The `cache_control` parameter is supported on all models. Cache hits reduce latency by approximately 50% and billed at the cached input rate.

## Known differences

* Model strings are different. Using `claude-*` returns a model-not-found error.
* Radium does not publish the names of underlying open-weight models.
* Rate limits and pricing differ. See [Rate limits](/core-concepts/rate-limits) and [Pricing](/core-concepts/pricing-and-billing).

## Model mapping

| Anthropic model | Radium equivalent |
| - | - |
| <span style="color:red">Claude 4 Opus</span> | Hal 1.0 |
| <span style="color:red">Claude 4 Sonnet</span> | Clarke 1.0 |
| <span style="color:red">Claude 4 Haiku</span> | Tycho 1.0 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.