เอกสาร API Hop
Claude Messages
API ดั้งเดิมที่เข้ากันได้กับ Claude Messages เอนด์พอยต์นี้ใช้รูปแบบคำขอและตอบกลับ Anthropic Messages รวมการเรียกเครื่องมือและเหตุการณ์ Anthropic SSE
https://api.apihop.ai/anthropic/v1/messagesAPI ดั้งเดิมที่เข้ากันได้กับ Claude Messages เอนด์พอยต์นี้ใช้รูปแบบคำขอและตอบกลับ Anthropic Messages รวมการเรียกเครื่องมือและเหตุการณ์ Anthropic SSE
ผู้ให้บริการต้นทางรองรับ Claude Sonnet 4.6 (claude-sonnet-4-6) แต่ปัจจุบันยังไม่เผยแพร่บน API Hop และไม่ใช่ค่าเริ่มต้นการเชื่อมต่อที่ใช้งาน ก่อนเรียกโมเดลใด ให้ยืนยันสิทธิ์ด้วยการตอบกลับ GET https://api.apihop.ai/v1/models ของคุณเอง
POST https://api.apihop.ai/anthropic/v1/messagesการยืนยันตัวตน
ทุกคำขอต้องใช้คีย์ API ของ API Hop โดย SDK Anthropic, Claude Code และไคลเอนต์ที่เข้ากันได้มักใช้ x-api-key ไคลเอนต์ HTTP ทั่วไปใช้การยืนยันตัวตน Bearer Token ได้ด้วย
x-api-key: YOUR_APIHOP_API_KEY
anthropic-version: 2023-06-01Authorization: Bearer YOUR_APIHOP_API_KEY
anthropic-version: 2023-06-01เนื้อหาคำขอ
modelstringจำเป็นค่าเริ่มต้น: claude-sonnet-5-5ID โมเดล Claude ที่รองรับ
claude-fable-5claude-fable-5-1claude-opus-4-6claude-opus-4-7claude-opus-4-8claude-opus-5claude-opus-5-5claude-sonnet-5claude-sonnet-5-5
ใช้ GET https://api.apihop.ai/v1/models ดูโมเดลที่คีย์ API ของคุณใช้ได้ปัจจุบัน
max_tokensintegerจำเป็นจำนวนโทเคนเอาต์พุตสูงสุดเป็นจำนวนเต็มบวกในช่วงปลอดภัย งบนี้รวมโทเคนการคิดและข้อความสุดท้าย ค่าที่ขาด เป็นศูนย์ ติดลบ เศษส่วน สตริง หรือจำนวนเต็มไม่ปลอดภัยส่ง HTTP 400 พร้อม invalid_request_error ก่อนสร้างหรือคิดค่าบริการ โมเดลอาจกำหนดสูงสุดต่ำกว่านี้
สำหรับโมเดลที่สร้างการคิด งบน้อย เช่น 128 อาจให้เฉพาะบล็อกการคิดก่อนจบด้วย stop_reason: "max_tokens" โดยไม่มีข้อความ กำหนดงบชัดเจนตามงานและโมเดล เผื่อทั้งการคิดและคำตอบสุดท้าย ค่าในตัวอย่างเป็นงบที่แก้ไขได้ ไม่ใช่ค่าเริ่มต้นต้นทางหรือขีดจำกัดโมเดล งบมากขึ้นอาจเพิ่มการใช้เอาต์พุตและค่าใช้จ่าย
messagesobject[]จำเป็นข้อความสนทนา แต่ละข้อความมี role และ content
role รองรับ user และ assistant ส่วน content อาจเป็นสตริงหรืออาร์เรย์บล็อกเนื้อหา
systemstring | object[]พรอมต์ระบบ Anthropic Messages ใช้ฟิลด์ system ระดับบนแทนบทบาท system ใน messages
streambooleanค่าเริ่มต้น: falseจะส่งเหตุการณ์ Anthropic SSE หรือไม่
temperaturenumberอุณหภูมิการสุ่ม ค่าที่ยอมรับและผลต่างตามโมเดลที่เลือก
top_pnumberพารามิเตอร์สุ่มแบบ nucleus การยอมรับไม่รับประกันว่าจะเปลี่ยนพฤติกรรมสร้าง
top_kintegerพารามิเตอร์สุ่ม Top-k การรองรับขึ้นอยู่กับโมเดลที่เลือก
stop_sequencesstring[]ลำดับหยุด
คำขอที่มีลำดับหยุดไม่ว่างจะหลีกเลี่ยงบริการโมเดลที่ทราบว่าไม่รองรับ หากไม่มีบริการที่เข้ากันได้ คำขอส่ง 400 ก่อนสร้างหรือคิดค่าบริการ
toolsobject[]นิยามเครื่องมือ Anthropic เครื่องมือฟังก์ชันมักมี name, description และ input_schema
tool_choiceobjectนโยบายเลือกเครื่องมือ เช่น { "type": "auto" } หรือ { "type": "tool", "name": "..." }
thinkingobjectการตั้งค่าการคิดดั้งเดิมของ Anthropic ขึ้นอยู่กับการรองรับของโมเดลและผู้ให้บริการ Claude 4.5 ใช้ { "type": "enabled", "budget_tokens": 1024 } ส่วน Claude Sonnet/Opus 4.6 รองรับการคิดแบบปรับตัวด้วย อย่ากำหนดงบด้วยตนเองให้ทุกเวอร์ชัน ในการต่อเนื่องเครื่องมือ ส่งเนื้อหาผู้ช่วยครบตามลำดับ รวม thinking, signature, redacted_thinking และ tool_use กลับโดยไม่เปลี่ยน คงการตั้งค่าการคิดและเฮดเดอร์ anthropic-beta ที่ต้องใช้ให้สอดคล้องตลอดรอบเครื่องมือ สำหรับ SSE ให้ต่อชิ้น signature_delta.signature ของบล็อกเนื้อหาเดียวกัน สรุปการคิดว่างไม่ได้หมายความว่าทิ้งลายเซ็นได้ การปฏิเสธสิทธิ์บัญชีผู้ให้บริการเป็นความล้มเหลวต้นทาง ไม่ใช่หลักฐานลายเซ็นไม่ถูกต้อง การปฏิเสธสิทธิ์บัญชี Bedrock ที่รู้จักส่ง HTTP 502 พร้อม api_error ข้อผิดพลาดตรวจไคลเอนต์ทั่วไปคง HTTP 400 การยอมรับยังต้องใช้บัญชีต้นทางที่เปิดใช้
metadataobjectเมทาดาทาคำขอ
การแคชพรอมต์
เพิ่ม cache_control: { "type": "ephemeral" } ใน system หรือบล็อกเนื้อหาข้อความ การใช้แคชอาจมี cache_creation_input_tokens, cache_read_input_tokens และกลุ่มสร้าง 5 นาทีหรือ 1 ชั่วโมงที่รองรับ TTL 1 ชั่วโมงต้องมีเฮดเดอร์ anthropic-beta ที่ตรงกันด้วย
ตัวอย่างคำขอ
ไม่สตรีม
{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, introduce yourself in one sentence."
}
],
"stream": false
}สตรีม
{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Reply exactly OK."
}
],
"stream": true
}การตอบกลับ
การตอบกลับไม่สตรีมคงรูปแบบ Anthropic Message
idstringID การตอบกลับ เช่น msg_...
typestringชนิดออบเจ็กต์ โดยทั่วไป message
rolestringโดยทั่วไป assistant
modelstringโมเดล Claude ที่ใช้จริง
contentobject[]บล็อกเนื้อหาเอาต์พุตดั้งเดิม รวม text, tool_use และ thinking เมื่อใช้
stop_reasonstringเหตุผลหยุด เช่น end_turn, max_tokens, stop_sequence หรือ tool_use
usageobjectการใช้โทเคน รวม input_tokens และ output_tokens รวมฟิลด์โทเคนแคชเมื่อมี
ตัวอย่างสำเร็จ
{
"id": "msg_01...",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-5-5",
"content": [
{
"type": "text",
"text": "Hello, I am Claude and can help with writing, coding, and analysis tasks."
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 18,
"output_tokens": 24
}
}การตอบกลับสตรีม
เมื่อ stream: true เอนด์พอยต์ส่งเหตุการณ์ Anthropic SSE เหตุการณ์ที่พบบ่อย ได้แก่:
message_startcontent_block_startcontent_block_deltacontent_block_stoppingmessage_deltamessage_stop
การตอบกลับข้อผิดพลาด
ดูรหัสข้อผิดพลาดและการแก้ปัญหา สำหรับรหัสอ้างอิงทั้งหมด ความต่างโปรโตคอล และขั้นตอนวินิจฉัย
การตอบกลับข้อผิดพลาดใช้รูปแบบ Anthropic:
{
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid credentials or API key has expired."
}
}