Genel Bakış
Bu endpoint, yerel Anthropic Messages API uyumluluğu sağlar. Bunu, genişletilmiş düşünme gibi özelliklerle Claude modelleri için kullanın.
Bu endpoint yerel Anthropic sözleşmesini korur. messages, yalnızca user / assistant mesajlarından oluşan bir dizi olmalıdır; system üst seviye system alanına yazılır ve max_tokens zorunludur. Payload messages içinde OpenAI rolleri olan system, developer veya tool kullanıyorsa bunu /v1/chat/completions endpoint’ine gönderin.
Anthropic SDK için Base URL: https://api.tokenlab.sh (/v1 soneki yok)
İstek Başlıkları
TokenLab API anahtarınız. Bearer token’a alternatif.
Anthropic API sürümü. 2023-06-01 kullanın.
İstek Gövdesi
Claude model ID’si (ör. claude-sonnet-4-6 veya claude-opus-4-6).
role ve content içeren mesaj nesneleri dizisi.
Oluşturulacak maksimum token sayısı.
System prompt (messages dizisinden ayrı).
Örnekleme sıcaklığı (0-1).
stream
boolean
varsayılan: "false"
Streaming yanıtlarını etkinleştirir.
Genişletilmiş düşünme yapılandırması (Claude Opus 4.5).
type (string): Etkinleştirmek için "enabled"
budget_tokens (integer): Düşünme için token bütçesi
Model için kullanılabilir araçlar.
Modelin araçları nasıl kullanması gerektiği. Seçenekler: auto, any, tool (belirli araç).
Nucleus sampling parametresi. Hem temperature hem de top_p birlikte değil, yalnızca biri kullanılmalıdır.
Her token için yalnızca en iyi K seçenek arasından örnekleme yapar.
Modelin üretimi durdurmasına neden olacak özel durdurma dizileri.
İzleme amaçları için isteğe eklenecek metadata.
Yanıt
Benzersiz mesaj tanımlayıcısı.
İçerik blokları dizisi (text, thinking, tool_use).
Üretimin neden durduğu (end_turn, max_tokens, tool_use).
input_tokens ve output_tokens ile token kullanımı.
cURL
Python
JavaScript
Go
PHP
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!"}
]
}'
from anthropic import Anthropic
client = Anthropic(
api_key = "sk-your-api-key" ,
base_url = "https://api.tokenlab.sh"
)
message = client.messages.create(
model = "claude-sonnet-4-6" ,
max_tokens = 1024 ,
system = "You are a helpful assistant." ,
messages = [
{ "role" : "user" , "content" : "Hello, Claude!" }
]
)
print (message.content[ 0 ].text)
import Anthropic from '@anthropic-ai/sdk' ;
const client = new Anthropic ({
apiKey: 'sk-your-api-key' ,
baseURL: 'https://api.tokenlab.sh'
});
const message = await client . messages . create ({
model: 'claude-sonnet-4-6' ,
max_tokens: 1024 ,
system: 'You are a helpful assistant.' ,
messages: [
{ role: 'user' , content: 'Hello, Claude!' }
]
});
console . log ( message . content [ 0 ]. text );
package main
import (
" bytes "
" encoding/json "
" fmt "
" io "
" net/http "
)
func main () {
payload := map [ string ] interface {}{
"model" : "claude-sonnet-4-6" ,
"max_tokens" : 1024 ,
"system" : "You are a helpful assistant." ,
"messages" : [] map [ string ] string {
{ "role" : "user" , "content" : "Hello, Claude!" },
},
}
jsonData , _ := json . Marshal ( payload )
req , _ := http . NewRequest ( "POST" , "https://api.tokenlab.sh/v1/messages" , bytes . NewBuffer ( jsonData ))
req . Header . Set ( "x-api-key" , "sk-your-api-key" )
req . Header . Set ( "anthropic-version" , "2023-06-01" )
req . Header . Set ( "Content-Type" , "application/json" )
client := & http . Client {}
resp , _ := client . Do ( req )
defer resp . Body . Close ()
body , _ := io . ReadAll ( resp . Body )
fmt . Println ( string ( body ))
}
<? php
$payload = [
'model' => 'claude-sonnet-4-6' ,
'max_tokens' => 1024 ,
'system' => 'You are a helpful assistant.' ,
'messages' => [
[ 'role' => 'user' , 'content' => 'Hello, Claude!' ]
]
];
$ch = curl_init ( 'https://api.tokenlab.sh/v1/messages' );
curl_setopt_array ( $ch , [
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_POST => true ,
CURLOPT_HTTPHEADER => [
'x-api-key: sk-your-api-key' ,
'anthropic-version: 2023-06-01' ,
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => json_encode ( $payload )
]);
$response = curl_exec ( $ch );
curl_close ( $ch );
$data = json_decode ( $response , true );
echo $data [ 'content' ][ 0 ][ 'text' ];
{
"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
}
}
Görsel Girdi Örneği
Görsel desteği olan Claude modelleri için, resimleri yapılandırılmış görüntü blokları olarak messages[].content içine yerleştirin.
{
"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..."
}
}
]
}
]
}
Genişletilmiş Düşünme Örneği
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 Mesaj Toplu İşlemleri
TokenLab artık /v1/messages yanında yerel Anthropic Message Batches akışını da sunuyor.
Kullanılabilir rotalar:
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
Operasyon notları:
Aynı TokenLab API anahtarını ve Anthropic yerel başlıklarını kullanın.
Batch öğeleri file_id referansı içeriyorsa anthropic-beta: files-api-2025-04-14 başlığını da ekleyin.
Batch işlerinin istek/yanıt biçimi Anthropic yerel formatında kalır; TokenLab ise mutabakat için billing durumunu takip eder.