กลับไปที่บล็อก

การแก้ไขปัญหาคู่มือ

ข้อผิดพลาดการเชื่อมต่อที่พบบ่อยและวิธีแก้ไข

401, 402, 400, 404, 413, 429 และ 503 หมายถึงอะไรเมื่อคุณเชื่อมต่อกับ CheapTokens API การตอบกลับมีหน้าตาอย่างไร และวิธีแก้ไขแต่ละอย่าง

โดย CheapTokens Teamเผยแพร่เมื่อ ใช้เวลาอ่าน 3 นาที

รายการรหัสสถานะ HTTP 401, 402, 400, 404 และ 429 พร้อมคำอธิบายสั้น ๆ ในเทอร์มินัล
ในหน้านี้
  1. ตรวจสอบแบบเร็ว
  2. 401 — API key ไม่ถูกต้อง
  3. 402 — ยอดคงเหลือว่างหรือไม่มีคีย์ในคำขอ
  4. 404 — ที่อยู่ผิด
  5. 400 — ไม่พบโมเดล
  6. 413 — คำขอใหญ่เกินไป
  7. 429 — คำขอมากเกินไป
  8. 503 — โมเดลไม่พร้อมใช้งานชั่วคราว
  9. การรอนานและ timeout

ปัญหาเรื่องการเชื่อมต่อเกือบทั้งหมดมาจากสี่สิ่ง: ที่อยู่ คีย์ รหัสโมเดล และยอดคงเหลือ เริ่มจากการตรวจสอบแบบเร็วด้านล่าง แล้วดูรหัสสถานะของคุณ เนื้อหาการตอบกลับที่ยกมาที่นี่คือการตอบกลับจริงของ API (ตุลาคม 2026)

ตรวจสอบแบบเร็ว#

bash
# 1. The address is reachable — this request needs no key
curl https://api.cheaptokens.dev/v1/models

# 2. The key and the balance work — a tiny request (costs a fraction of a cent)
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-ai/DeepSeek-V4-Flash-0731", "max_tokens": 5,
       "messages": [{"role": "user", "content": "ping"}]}'

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

401 — API key ไม่ถูกต้อง#

json
{"error": {"message": "Invalid API key", "type": "authentication_error"}}

ไคลเอนต์สไตล์ Anthropic จะได้ข้อผิดพลาดเดียวกันในรูปแบบของตัวเอง:

json
{"type": "error", "error": {"type": "authentication_error", "message": "Invalid API key"}}

สาเหตุ:

  • คีย์ถูกคัดลอกโดยขาดตัวอักษร มีช่องว่างหรือเครื่องหมายคำพูด;
  • คีย์ถูกหมุนในแดชบอร์ด — คีย์เก่าใช้ไม่ได้แล้ว;
  • ตั้งคีย์จากบริการอื่น (เช่น OpenAI) แทนคีย์ CheapTokens;
  • ตัวแปรสภาพแวดล้อมว่างเปล่าในเทอร์มินัลนี้: echo ${#CHEAPTOKENS_API_KEY} พิมพ์ความยาวของมัน

แดชบอร์ดแสดงคีย์เพียงครั้งเดียว ถ้าสูญหาย ให้กด Rotate เพื่อรับคีย์ใหม่และอัปเดตทุกที่ที่ใช้

402 — ยอดคงเหลือว่างหรือไม่มีคีย์ในคำขอ#

API ส่งคืน 402 ในสองสถานการณ์ที่ต่างกัน:

  1. ยอดคงเหลือใช้หมดแล้ว คำขอจ่ายจากยอดคงเหลือ เมื่อหมด คีย์จะถูกหยุดชั่วคราว เติมเงินในแดชบอร์ดแล้วคำขอจะผ่านอีกครั้ง
  2. คำขอไม่มีคีย์เลย ถ้าไม่มีเฮดเดอร์ Authorization (หรือ x-api-key สำหรับไคลเอนต์สไตล์ Anthropic) API จะตอบ 402 ด้วยประเภท insufficient_funds ตรวจสอบว่าเครื่องมือของคุณส่งคีย์จริง: สไตล์ OpenAI คือ Authorization: Bearer <key>

404 — ที่อยู่ผิด#

json
{"error": {"message": "Invalid URL (GET /v1/chat/completion)", "type": "invalid_request_error", "param": null, "code": null}}

พาธมีพิมพ์ผิด — ที่นี่ completion แทน completions สาเหตุทั่วไปอื่น ๆ:

  • Base URL ไม่มี /v1 ไคลเอนต์สไตล์ OpenAI ต้องมี https://api.cheaptokens.dev/v1 ถ้าไม่มี /v1 คำขอจะพลาด API และคุณจะได้หน้า HTML 404 แทน JSON
  • /v1 ซ้ำสองครั้ง ไคลเอนต์บางตัวเพิ่ม /v1 เอง ดังนั้น base URL ต้องเป็นรูท https://api.cheaptokens.dev ไคลเอนต์สไตล์ Anthropic ใช้ที่อยู่รูทเสมอ

400 — ไม่พบโมเดล#

json
{"error": {"message": "Model \"deepseek-v4-flash\" not found. Available: …", "type": "invalid_request_error", "param": "model"}}

รหัสโมเดลต้องเป็นรหัสเต็ม รวมคำนำหน้าก่อนเครื่องหมายทับ: deepseek-ai/DeepSeek-V4-Flash-0731 ไม่ใช่ deepseek-v4-flash ตัวพิมพ์ใหญ่หรือเล็กไม่สำคัญ ข้อความข้อผิดพลาดจะแสดงรายการรหัสที่ใช้ได้ และรายการเต็มอยู่ที่ GET /v1/models เสมอ

400 ยังส่งคืนสำหรับเนื้อหาคำขอที่ผิดรูปแบบ — เช่น อาร์เรย์ messages ว่างเปล่า (messages field is required and must be a non-empty array) หรือข้อความที่ไม่มี role

413 — คำขอใหญ่เกินไป#

เนื้อหาคำขอจำกัดที่ 16 MB เอเจนต์อาจเจอได้โดยใส่ไฟล์หรือล็อกขนาดใหญ่ลงในบริบท ส่งเฉพาะส่วนที่โมเดลต้องการและตัดเอาต์พุตของเครื่องมือที่ยาวออก

429 — คำขอมากเกินไป#

ถ้าคุณได้รับ 429 ให้ชะลอลง การตอบกลับมีเฮดเดอร์ Retry-After พร้อมจำนวนวินาทีที่ต้องรอ OpenAI SDK อย่างเป็นทางการจะลองใหม่โดยอัตโนมัติ (max_retries) ในโค้ดของคุณเอง ให้รอ Retry-After ก่อนลองครั้งถัดไป

503 — โมเดลไม่พร้อมใช้งานชั่วคราว#

โมเดลอาจไม่พร้อมใช้งานชั่วคราว API จะตอบ 503 ด้วยประเภท model_unavailable และการ์ดโมเดลบนเว็บไซต์จะแสดง "temporarily unavailable" ลองใหม่ภายหลังหรือเปลี่ยนฟิลด์ model เป็นโมเดลอื่น — คีย์และที่อยู่ยังเหมือนเดิม

การรอนานและ timeout#

โมเดลที่ใช้การให้เหตุผลเช่น zai-org/GLM-5.3-Flash จะคิดก่อนตอบ ดังนั้นโทเคนแรกอาจใช้เวลาสักครู่ ใช้ streaming หรือเพิ่ม timeout ของไคลเอนต์ — เช่น timeout=120 ใน OpenAI SDK