# Messages (format Anthropic)

> POST /v1/messages, format Anthropic Messages, dipakai Claude Code dan SDK Anthropic.

```http
POST https://api.vikey.ai/v1/messages
```

Format request dan response sama dengan [Messages API Anthropic](https://docs.anthropic.com/en/api/messages). Claude Code dan SDK Anthropic memakai endpoint ini. Semua model teks di Vikey bisa dipanggil lewat format ini, termasuk GPT dan DeepSeek.

## Contoh

```bash
curl https://api.vikey.ai/v1/messages \
  -H "x-api-key: API_KEY_KAMU" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5.5",
    "max_tokens": 1024,
    "system": "Jawab singkat dalam bahasa Indonesia.",
    "messages": [{"role": "user", "content": "Apa beda let dan const di JavaScript?"}]
  }'
```

`Authorization: Bearer API_KEY_KAMU` juga diterima sebagai pengganti `x-api-key`.

## Parameter yang sering dipakai

| Parameter | Keterangan |
| --- | --- |
| `model` | Wajib. Model id Vikey. |
| `max_tokens` | Wajib di format Anthropic. Juga dipakai untuk [pengecekan saldo](/models/pricing/#pengecekan-saldo). |
| `messages` | Wajib. Pesan `user` dan `assistant`, isinya teks atau blok konten (teks, gambar, `tool_use`, `tool_result`). |
| `system` | System prompt, berupa teks atau array blok. |
| `stream` | `true` untuk event stream format Anthropic. |
| `tools`, `tool_choice` | Tool use dengan format Anthropic. |
| `cache_control` | Penanda cache di blok konten diteruskan ke model yang mendukung. |

## Response

```json
{
  "id": "msg_...",
  "type": "message",
  "role": "assistant",
  "model": "anthropic/claude-sonnet-5.5",
  "content": [{"type": "text", "text": "let bisa diubah nilainya, const tidak..."}],
  "stop_reason": "end_turn",
  "usage": {"input_tokens": 32, "output_tokens": 58}
}
```

Error memakai bentuk Anthropic: `{"type": "error", "error": {"type": "...", "message": "..."}}`. Lihat [Kode error](/api/errors/).

Source: https://docs.vikey.ai/api/messages/
