Docs
ศูนย์นักพัฒนาแดชบอร์ดesimoa.com
    • บทนำ
    • เริ่มต้นใช้งานด่วน
    • การยืนยันตัวตน
    • Overview
    • แสดงรายการ eSIM
    • รับ eSIM
    • ประเทศ
    • OpenAPI
    • การติดตามและค่าคอมมิชชัน
    • ขีดจำกัดอัตราคำขอและข้อผิดพลาด
    • Overview
    • Claude
    • ChatGPT
    • Gemini
    • ไคลเอนต์ MCP อื่นๆ
    • Overview
    • การยืนยันตัวตน
    • สินค้า
    • รายละเอียดสินค้า
    • ประเทศ
    • Errors & rate limits
  1. Docs
  2. API สำหรับพาร์ตเนอร์ (B2B)
  3. Errors & rate limits

API สำหรับพาร์ตเนอร์ (B2B)

Errors & rate limits

Partner API error codes, per-key rate limits with X-RateLimit headers, and how to retry.

On this page
  • Error format
  • Error codes
  • Rate limits
  • Retrying

Error format#

เนื้อหาข้อผิดพลาดอยู่ในรูปแบบ { statusCode, code, message } โดย message เป็นข้อความภาษาอังกฤษที่อ่านเข้าใจได้และอาจเปลี่ยนแปลง จึงควรแยกเงื่อนไขตาม code เสมอ

json
// Success
{ "success": true, "data": ..., "total": 128, "page": 1, "limit": 20 }

// Error
{ "statusCode": 401, "code": "INVALID_API_KEY", "message": "The API key is invalid." }

หมายเหตุ

ข้อผิดพลาดการตรวจสอบคิวรี (400) ใช้รูปแบบมาตรฐาน { statusCode: 400, message: [...], error: "Bad Request" } โดยไม่มีโค้ด

Error codes#

HTTPcodeความหมายและวิธีแก้ไข
401API_KEY_REQUIREDไม่ได้ส่งคีย์ — เพิ่มเฮดเดอร์ X-API-Key
401INVALID_API_KEYคีย์มีรูปแบบผิดหรือไม่รู้จัก — ตรวจสอบว่าคัดลอกครบถ้วนและไม่ใช่คีย์ Public API
401KEY_REVOKEDคีย์ถูกเพิกถอนแล้ว — ออกคีย์ใหม่
401KEY_EXPIREDคีย์หมดอายุ (รวมถึงคีย์เก่าหลังพ้นช่วงผ่อนผันการหมุนเวียนคีย์) — ใช้คีย์ใหม่
403PARTNER_SUSPENDEDบัญชีไม่ได้ใช้งาน — ติดต่อ esimoa
403INSUFFICIENT_SCOPEคำขออยู่นอกขอบเขตสิทธิ์ของคีย์
403IP_NOT_ALLOWEDเรียกจาก IP ที่ไม่อยู่ในรายการที่อนุญาต — เพิ่ม IP ขาออกของเซิร์ฟเวอร์คุณ
404PRODUCT_NOT_FOUNDสินค้าที่ไม่รู้จักหรือเลิกจำหน่ายแล้ว
429RATE_LIMITEDเกินขีดจำกัดอัตราคำขอ — ลองใหม่หลังจากจำนวนวินาทีใน Retry-After

Rate limits#

หมายเหตุ

คำขอ API แบบ B2B มีค่าเริ่มต้น 20,000 ครั้งต่อชั่วโมงต่อคีย์

กรอบเวลา 3,600 วินาทีเริ่มนับตั้งแต่คำขอแรก และมีขีดจำกัดต่อนาทีด้วย โควตานับจากจำนวนการเรียก ไม่ใช่ MB ที่รับส่ง การตั้งค่าการดำเนินงานอาจเปลี่ยนโควตาได้

X-RateLimit-Hour-Limit · X-RateLimit-Hour-Remaining · X-RateLimit-Hour-Reset

เฮดเดอร์เหล่านี้แสดงขีดจำกัดรายชั่วโมง จำนวนการเรียกที่เหลือ และเวลารีเซ็ต (วินาที Unix) เมื่อใช้ครบโควตารายชั่วโมงจะคืนค่า HTTP 429 พร้อม Retry-After เป็นวินาที การเรียกที่ถูกปฏิเสธจากขีดจำกัดต่อนาทีจะไม่นับรวมในโควตารายชั่วโมง

ค่าเริ่มต้นคือ 300 คำขอต่อนาทีต่อคีย์ (ต่อกรอบเวลา 60 วินาที ใช้ร่วมกันทุกเซิร์ฟเวอร์) esimoa สามารถเพิ่มขีดจำกัดให้แต่ละบัญชีได้ตามสัญญา ทุกการตอบกลับที่ยืนยันตัวตนแล้วจะมีเฮดเดอร์โควตา

  • X-RateLimit-Limit — จำนวนคำขอที่อนุญาตต่อนาที
  • X-RateLimit-Remaining — จำนวนคำขอที่เหลือในช่วงเวลาปัจจุบัน
  • X-RateLimit-Reset — เวลาที่ช่วงเวลาจะรีเซ็ต (วินาที Unix)
  • Retry-After — เมื่อได้รับ 429 คือจำนวนวินาทีที่ต้องรอก่อนลองใหม่
http
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 57
X-RateLimit-Reset: 1790000000

HTTP/1.1 429 Too Many Requests
Retry-After: 18
{ "statusCode": 429, "code": "RATE_LIMITED", "message": "Rate limit exceeded (300 requests per minute)." }

Retrying#

  • เมื่อได้รับ 429 ให้รอตามจำนวนวินาทีใน Retry-After แล้วลองใหม่
  • ลองส่งคำขอที่ได้ 5xx ใหม่สองสามครั้งด้วย exponential backoff
  • 400, 401, 403 และ 404 จะไม่เปลี่ยนแม้ลองใหม่ — ให้แก้ไขที่สาเหตุ
  • การแคชแคตตาล็อกไว้สักไม่กี่นาทีช่วยให้ใช้งานต่ำกว่าขีดจำกัดได้สบาย
javascript
async function b2bFetch(url, attempt = 0) {
  const res = await fetch(url, { headers: { 'X-API-Key': process.env.ESIMOA_PARTNER_KEY } });
  if (res.status === 429 && attempt < 3) {
    const wait = Number(res.headers.get('Retry-After') ?? 1);
    await new Promise((r) => setTimeout(r, wait * 1000));
    return b2bFetch(url, attempt + 1);
  }
  const body = await res.json();
  if (!res.ok) throw Object.assign(new Error(body.message), { code: body.code, status: res.status });
  return body;
}

อัปเดตล่าสุด: 1 ตุลาคม 2569

Previousประเทศ

On this page

  • Error format
  • Error codes
  • Rate limits
  • Retrying

APIs and MCP for bringing esimoa eSIMs to your product

Resources

  • Docs
  • API reference
  • API สำหรับพาร์ตเนอร์ (B2B)
  • MCP server
  • OpenAPI spec

esimoa

  • หน้าหลัก
  • eSIM แพ็กเกจ
  • ศูนย์นักพัฒนา
  • แดชบอร์ด
  • พอร์ทัลพาร์ตเนอร์

Company

  • เกี่ยวกับเรา
  • พาร์ตเนอร์
  • เงื่อนไขการใช้บริการ
  • นโยบายความเป็นส่วนตัว
  • นโยบายจัดส่งและคืนเงิน

ช่วยเหลือ

  • support@esimoa.com
  • แชตช่วยเหลือ

NBase Korea Co., Ltd.

902, Bldg A, 767 Sinsu-ro, Suji-gu, Yongin-si, Gyeonggi-do (Dongcheon-dong, Bundang Suji U-TOWER)

สำนักงานใหญ่ในสหรัฐฯ: NBASE CORP. · Corporate Park, Irvine, CA 92606, USA

© 2026 esimoa สงวนลิขสิทธิ์