API Hop

เอกสาร

เอกสาร API Hop

Claude Messages

API ดั้งเดิมที่เข้ากันได้กับ Claude Messages เอนด์พอยต์นี้ใช้รูปแบบคำขอและตอบกลับ Anthropic Messages รวมการเรียกเครื่องมือและเหตุการณ์ Anthropic SSE

POSThttps://api.apihop.ai/anthropic/v1/messages

API ดั้งเดิมที่เข้ากันได้กับ Claude Messages เอนด์พอยต์นี้ใช้รูปแบบคำขอและตอบกลับ Anthropic Messages รวมการเรียกเครื่องมือและเหตุการณ์ Anthropic SSE

ผู้ให้บริการต้นทางรองรับ Claude Sonnet 4.6 (claude-sonnet-4-6) แต่ปัจจุบันยังไม่เผยแพร่บน API Hop และไม่ใช่ค่าเริ่มต้นการเชื่อมต่อที่ใช้งาน ก่อนเรียกโมเดลใด ให้ยืนยันสิทธิ์ด้วยการตอบกลับ GET https://api.apihop.ai/v1/models ของคุณเอง

text
POST https://api.apihop.ai/anthropic/v1/messages

การยืนยันตัวตน

ทุกคำขอต้องใช้คีย์ API ของ API Hop โดย SDK Anthropic, Claude Code และไคลเอนต์ที่เข้ากันได้มักใช้ x-api-key ไคลเอนต์ HTTP ทั่วไปใช้การยืนยันตัวตน Bearer Token ได้ด้วย

http
x-api-key: YOUR_APIHOP_API_KEY
anthropic-version: 2023-06-01
http
Authorization: Bearer YOUR_APIHOP_API_KEY
anthropic-version: 2023-06-01

เนื้อหาคำขอ

modelstringจำเป็นค่าเริ่มต้น: claude-sonnet-5-5

ID โมเดล Claude ที่รองรับ

  • claude-fable-5
  • claude-fable-5-1
  • claude-opus-4-6
  • claude-opus-4-7
  • claude-opus-4-8
  • claude-opus-5
  • claude-opus-5-5
  • claude-sonnet-5
  • claude-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 ที่ตรงกันด้วย

ตัวอย่างคำขอ

ไม่สตรีม

json
{
  "model": "claude-sonnet-5-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself in one sentence."
    }
  ],
  "stream": false
}

สตรีม

json
{
  "model": "claude-sonnet-5-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Reply exactly OK."
    }
  ],
  "stream": true
}

การตอบกลับ

การตอบกลับไม่สตรีมคงรูปแบบ Anthropic Message

idstring

ID การตอบกลับ เช่น 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 รวมฟิลด์โทเคนแคชเมื่อมี

ตัวอย่างสำเร็จ

json
{
  "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_start
  • content_block_start
  • content_block_delta
  • content_block_stop
  • ping
  • message_delta
  • message_stop

การตอบกลับข้อผิดพลาด

ดูรหัสข้อผิดพลาดและการแก้ปัญหา สำหรับรหัสอ้างอิงทั้งหมด ความต่างโปรโตคอล และขั้นตอนวินิจฉัย

การตอบกลับข้อผิดพลาดใช้รูปแบบ Anthropic:

json
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid credentials or API key has expired."
  }
}