Claude API เรียกใช้งานไม่ได้ทั้งที่ API Key ถูกต้อง? เช็ก 8 จุดพร้อมวิธีแก้

แม้ API Key จะดูถูกต้อง แต่ Claude API ยังเรียกใช้งานไม่ได้ได้จากหลายสาเหตุ เช่น คีย์หมดอายุหรือถูกเพิกถอน เลือก Workspace ผิด สิทธิ์ไม่ถึงโมเดล ตั้งค่า Billing ไม่ครบ หรือส่งคำขอไปยัง Endpoint และ Header ที่ไม่ตรง

วิธีแก้ที่เร็วที่สุดคือดู HTTP status code, error.type และข้อความแจ้งเตือนจาก API ก่อน แล้วไล่ตรวจตามลำดับในบทความนี้ อย่าเพิ่งสร้าง API Key ใหม่ทันที เพราะถ้าปัญหาอยู่ที่สิทธิ์หรือการตั้งค่าบัญชี คีย์ใหม่ก็อาจเจอ Error เดิม

❶ ดูรหัส Error ก่อนแก้

เปิดรายละเอียด Response จากแอปหรือโปรแกรมที่เรียก API แล้วจดรหัสสถานะ เช่น 401 หรือ 403 รวมถึงค่า error.type และ error.message รหัสเหล่านี้ช่วยชี้ว่าควรตรวจจุดไหน

  • 400 invalid_request_error — ตรวจรูปแบบ JSON พารามิเตอร์ ชื่อโมเดล และข้อจำกัดการใช้งาน บางกรณีอาจเกิดจากถึงวงเงินที่กำหนดไว้ใน Organization หรือ Workspace
  • 401 authentication_error — ตรวจว่าคีย์ถูกต้อง ยังไม่หมดอายุ และไม่ได้ถูกเพิกถอน รวมถึงตรวจว่าระบบกำลังส่งคีย์ตัวที่ตั้งใจใช้จริง
  • 402 billing_error — ตรวจข้อมูลการชำระเงินและสถานะ Billing ใน Claude Console
  • 403 permission_error — ตรวจสิทธิ์ของคีย์ การเข้าถึง Organization และการตั้งค่า Workspace
  • 404 not_found_error — ตรวจเส้นทาง Endpoint และรหัสทรัพยากร เช่น ชื่อโมเดล
  • 429 rate_limit_error — ตรวจ Rate Limit และวงเงินการใช้งาน เพราะ Error นี้อาจเกี่ยวกับข้อจำกัดการเรียกหรือ Spend Limit
  • 500, 504 หรือ 529 — อาจเป็นปัญหาชั่วคราวของระบบหรือการหมดเวลา ลองใหม่ตามช่วงเวลาที่เหมาะสม และบันทึก Request ID ไว้

❷ เช็กว่าระบบใช้ API Key ตัวที่ถูกต้อง

บางครั้งคีย์ใน Claude Console ใช้งานได้ แต่แอปกำลังอ่านคีย์คนละตัวจาก Environment Variable, Secret Manager หรือไฟล์ตั้งค่าเก่า โดยเฉพาะเมื่อมีหลายสภาพแวดล้อม เช่น เครื่องพัฒนา ระบบทดสอบ และระบบจริง

ตรวจสอบว่า:

  • ชื่อตัวแปรที่โค้ดเรียกตรงกับชื่อตัวแปรที่ตั้งไว้
  • ระบบ Deploy หรือเซิร์ฟเวอร์อ่าน Secret ชุดล่าสุด
  • ไม่มีคีย์เก่าจากไฟล์ .env หรือค่าที่ตั้งไว้ใน CI/CD มาทับ
  • รีสตาร์ตแอปหรือ Deploy ใหม่หลังแก้ Secret หากระบบต้องโหลดค่าใหม่

อย่าพิมพ์ API Key ลงใน Log หรือส่งคีย์ให้ผู้อื่นเพื่อขอให้ช่วยตรวจ หากสงสัยว่าคีย์รั่ว ให้เพิกถอนคีย์นั้นและสร้างคีย์ใหม่อย่างปลอดภัย

❸ ตรวจ Organization และ Workspace ของคีย์

API Key อาจผูกกับ Workspace หนึ่ง แต่คำขอถูกส่งไปใช้กับอีก Workspace หรือคีย์อาจไม่มีสิทธิ์เข้าถึงทรัพยากรที่ร้องขอ

เข้า Claude Console แล้วตรวจว่า:

  1. API Key มาจาก Organization ที่ต้องการใช้งาน
  2. Workspace ที่เลือกถูกต้อง
  3. บัญชีหรือคีย์มีสิทธิ์เรียกใช้โมเดลและ API ที่ต้องการ
  4. หากคีย์ไม่ได้ผูกกับ Workspace เดียว ให้ตรวจว่าคำขอส่ง anthropic-workspace-id ตามที่ระบบกำหนดหรือไม่

กรณีใช้คีย์ที่ผูกกับ Workspace โดยเฉพาะ การละบุ Workspace Header อาจไม่ใช่ปัญหาเสมอไป แต่ควรยืนยันให้ตรงกับชนิดคีย์และการตั้งค่าบัญชีของคุณ

❹ ตรวจ Endpoint และ Header

สำหรับการเรียก Claude API โดยตรง ให้ตรวจว่าใช้โดเมนและเส้นทางของ API ที่ถูกต้อง เช่น Messages API ใช้ https://api.anthropic.com/v1/messages

คำขอต้องมีข้อมูลยืนยันตัวตนและ Header ที่จำเป็น โดยเอกสารปัจจุบันระบุ Authorization หรือ x-api-key สำหรับ API Key, anthropic-version และ content-type: application/json ทั้งนี้ หากใช้ SDK ทางการ SDK จะจัดการ Header หลายรายการให้อัตโนมัติ

ตัวอย่างโครงสร้างคำขอสำหรับ cURL:

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: YOUR_API_VERSION" \
  -H "content-type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "max_tokens": 256,
    "messages": [
      {"role": "user", "content": "สวัสดี"}
    ]
  }'

แทน YOUR_API_VERSION และ YOUR_MODEL_ID ด้วยค่าที่รองรับในบัญชีและเอกสาร API ปัจจุบัน อย่าใส่ API Key จริงลงในบทความ โค้ดที่แชร์สาธารณะ หรือภาพหน้าจอ

❺ ตรวจ Billing และ Spend Limit

คีย์ที่ยืนยันตัวตนได้ไม่ได้แปลว่าบัญชีพร้อมส่งคำขอเสมอไป หากขึ้น 402 ให้ตรวจข้อมูลการชำระเงินใน Claude Console หากขึ้น 400 หรือ 429 ให้ตรวจวงเงินและข้อจำกัดการใช้งานของ Organization หรือ Workspace เพิ่มด้วย

ตรวจสอบ:

  • วิธีชำระเงินและสถานะ Billing
  • Usage และ Spend Limit ของ Organization
  • ขีดจำกัดที่ตั้งไว้เฉพาะ Workspace
  • Rate Limit และระดับการใช้งานของบัญชี

แก้ไขวงเงินหรือการชำระเงินผ่านผู้ดูแลบัญชีที่มีสิทธิ์ หากใช้ Claude ผ่านผู้ให้บริการ Cloud ให้ตรวจ Billing และสิทธิ์ฝั่งผู้ให้บริการนั้นด้วย

❻ ตรวจชื่อโมเดลและสิทธิ์การเข้าถึง

ถ้าคำขอใช้ชื่อโมเดลที่พิมพ์ผิด โมเดลที่ไม่มีในบัญชี หรือโมเดลที่ไม่มีสิทธิ์เรียก อาจได้รับ Error แม้ API Key จะผ่านการตรวจสอบแล้ว

ตรวจชื่อโมเดลจากเอกสารหรือรายการโมเดลที่ API รองรับ และเปรียบเทียบกับค่าในโค้ดอย่างตรงตัว อย่าเดาชื่อโมเดลจากชื่อที่เห็นในหน้าแชต เพราะชื่อสำหรับ API อาจมีรูปแบบเฉพาะ

❼ แยก Claude API โดยตรงออกจากบริการ Cloud

การเรียก API โดยตรงจาก Anthropic ใช้การยืนยันตัวตนและการตั้งค่าใน Claude Console ส่วน Amazon Bedrock, Google Cloud และแพลตฟอร์ม Cloud อื่นอาจใช้บัญชี Billing, IAM, Endpoint และ Credential ของผู้ให้บริการนั้น

ดังนั้น API Key จาก Claude Console อาจใช้แทน Credential ของ Cloud Provider ไม่ได้ หากระบบเรียกผ่าน Cloud ให้ทำตามคู่มือของแพลตฟอร์มนั้น และตรวจว่ากำลังส่งคำขอไปยัง Endpoint ที่ถูกต้อง

❽ ทดสอบใหม่อย่างเป็นขั้นตอน

เพื่อแยกปัญหาจากโค้ดออกจากปัญหาบัญชี ให้ทดสอบด้วยคำขอขั้นต่ำและ SDK ทางการ หากทำได้:

  1. เรียก Endpoint ที่ถูกต้องด้วยโมเดลที่บัญชีเข้าถึงได้
  2. ใช้ API Key จาก Secret ที่ระบบอ่านจริง
  3. ส่ง Header และ JSON ขั้นต่ำตามเอกสาร
  4. บันทึก HTTP status, error.type, error.message และ request_id
  5. เปรียบเทียบผลจากเครื่องทดสอบกับระบบที่มีปัญหา

หากต้องติดต่อฝ่ายสนับสนุน ให้ส่ง Request ID เวลาเกิดปัญหา Endpoint และข้อความ Error พร้อมปกปิด API Key และข้อมูลลับ วิธีตรวจแบบเป็นลำดับนี้ช่วยให้ทีม ComSiam และผู้ดูแลระบบแยกได้ว่าปัญหาอยู่ที่คีย์ สิทธิ์ บัญชี หรือคำขอ API

สรุป

เมื่อ Claude API ใช้งานไม่ได้ทั้งที่ API Key ดูถูกต้อง ให้เริ่มจากรหัส Error แล้วตรวจคีย์ที่ระบบใช้งานจริง Workspace และสิทธิ์โมเดล Header และ Endpoint รวมถึง Billing กับ Spend Limit หากใช้ผ่าน Cloud Provider ให้ตรวจ Credential และการตั้งค่าฝั่งผู้ให้บริการนั้นด้วย

เก็บ Request ID และรายละเอียด Error ไว้ทุกครั้งที่ทดสอบ โดยไม่เปิดเผย API Key วิธีนี้ช่วยให้วิเคราะห์ปัญหาได้เร็วขึ้น และทำให้ ComSiam หรือผู้ดูแลระบบตรวจสอบต่อได้ตรงจุด