Langsung ke konten utama

Documentation Index

Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt

Use this file to discover all available pages before exploring further.

Ringkasan

Endpoint ini menyediakan kompatibilitas native dengan Anthropic Messages API. Gunakan ini untuk model Claude dengan fitur seperti extended thinking. Endpoint ini tetap mengikuti kontrak native Anthropic. messages harus berupa array pesan user / assistant, system berada pada field top-level system, dan max_tokens wajib dikirim. Jika payload menggunakan role OpenAI seperti system, developer, atau tool di dalam messages, kirim ke /v1/chat/completions.
Base URL untuk Anthropic SDK: https://api.tokenlab.sh (tanpa sufiks /v1)

Header Permintaan

x-api-key
string
wajib
TokenLab API key Anda. Alternatif untuk token Bearer.
anthropic-version
string
wajib
Versi Anthropic API. Gunakan 2023-06-01.

Body Permintaan

model
string
wajib
ID model Claude (misalnya, claude-sonnet-4-6 atau claude-opus-4-6).
messages
array
wajib
Array objek message dengan role dan content.
max_tokens
integer
wajib
Jumlah token maksimum yang akan dihasilkan.
system
string
Prompt sistem (terpisah dari array messages).
temperature
number
default:"1"
Temperature sampling (0-1).
stream
boolean
default:"false"
Aktifkan respons streaming.
thinking
object
Konfigurasi extended thinking (Claude Opus 4.5).
  • type (string): "enabled" untuk mengaktifkan
  • budget_tokens (integer): Anggaran token untuk thinking
tools
array
Tools yang tersedia untuk model.
tool_choice
object
Bagaimana model harus menggunakan tools. Opsi: auto, any, tool (tool tertentu).
top_p
number
Parameter nucleus sampling. Gunakan temperature atau top_p, bukan keduanya.
top_k
integer
Hanya ambil sampel dari K opsi teratas untuk setiap token.
stop_sequences
array
Urutan stop kustom yang akan menyebabkan model berhenti menghasilkan.
metadata
object
Metadata yang dilampirkan ke permintaan untuk tujuan pelacakan.

Respons

id
string
Pengidentifikasi message yang unik.
type
string
Selalu message.
role
string
Selalu assistant.
content
array
Array blok konten (text, thinking, tool_use).
model
string
Model yang digunakan.
stop_reason
string
Alasan generation berhenti (end_turn, max_tokens, tool_use).
usage
object
Penggunaan token dengan input_tokens dan output_tokens.
curl -X POST "https://api.tokenlab.sh/v1/messages" \
  -H "x-api-key: sk-your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "system": "You are a helpful assistant.",
    "messages": [
      {"role": "user", "content": "Hello, Claude!"}
    ]
  }'
{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello! How can I help you today?"
    }
  ],
  "model": "claude-sonnet-4-6",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 15,
    "output_tokens": 10
  }
}

Contoh Input Visual

Untuk model Claude dengan dukungan visi, letakkan gambar di dalam messages[].content sebagai blok gambar terstruktur.
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "url",
            "url": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Contoh Extended Thinking

message = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{"role": "user", "content": "Solve this math problem..."}]
)

for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Response: {block.text}")

Anthropic Batch Pesan

TokenLab kini juga menyediakan alur native Anthropic Message Batches di samping /v1/messages. Rute yang tersedia:
  • POST /v1/messages/batches
  • GET /v1/messages/batches
  • GET /v1/messages/batches/:message_batch_id
  • GET /v1/messages/batches/:message_batch_id/results
  • POST /v1/messages/batches/:message_batch_id/cancel
  • DELETE /v1/messages/batches/:message_batch_id
Catatan operasional:
  • Gunakan API key TokenLab yang sama bersama header native Anthropic.
  • Jika item batch mereferensikan file_id, sertakan juga anthropic-beta: files-api-2025-04-14.
  • Batch job mempertahankan bentuk request/response native Anthropic, sementara TokenLab melacak siklus settlement internalnya.