# Anthropic SDK

SumoRouter menyediakan `POST /v1/messages` yang kompatibel dengan Anthropic Messages API. Endpoint ini
bisa dipakai untuk **semua model chat**, bukan hanya Claude: request diterjemahkan otomatis.

:::caution
Base URL untuk Anthropic SDK **tanpa** `/v1`, karena SDK menambahkannya sendiri.
:::

## Python

```python
import anthropic

client = anthropic.Anthropic(base_url="https://ai.brandkamu.id", api_key="sk-...")

msg = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Jelaskan rekursi dengan analogi sederhana"}],
)
print(msg.content[0].text)
```

## TypeScript

```ts
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://ai.brandkamu.id",
  apiKey: process.env.SUMOROUTER_API_KEY,
});

const msg = await client.messages.create({
  model: "deepseek-v4-pro",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Halo!" }],
});
```

## Extended thinking

```python
msg = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    thinking={"type": "enabled", "budget_tokens": 2048},
    messages=[{"role": "user", "content": "Buktikan bahwa akar 2 irasional"}],
)
```

## Hitung token

`POST /v1/messages/count_tokens` mengembalikan **estimasi** `input_tokens` dan tidak ditagih.

```python
client.messages.count_tokens(model="claude-sonnet-5", messages=[{"role": "user", "content": "Halo"}])
```
