ข้อผิดพลาดและรหัสสถานะ HTTP
ข้อผิดพลาดของแอปพลิเคชันใช้ application/problem+json (RFC 9457) จัดการข้อผิดพลาดโดยใช้ฟิลด์ที่เสถียร code และ action แทนที่จะใช้ข้อความอธิบายใน detail สำหรับข้อผิดพลาดในการตรวจสอบความถูกต้อง errors มีตำแหน่ง JSON Pointer สำหรับฟิลด์ที่ได้รับผลกระทบ รวม request_id เมื่อติดต่อฝ่ายสนับสนุน พร็อกซีหรือความล้มเหลวในการเชื่อมต่ออาจส่งคืนเนื้อหาการตอบสนองที่แตกต่างกัน ตรวจสอบ Content-Type ก่อนแยกวิเคราะห์ JSON
ตัวอย่างสังเคราะห์ 422 ต่อไปนี้แสดงไวยากรณ์อีเมลที่ไม่ถูกต้องก่อนการเรียกเก็บเงิน แค็ตตาล็อกข้อผิดพลาดสาธารณะแสดงรายการทุกรหัส สถานะ คำอธิบาย และการดำเนินการที่แนะนำ
| สถานะ HTTP | ความหมายโดยทั่วไป | ขั้นตอนต่อไป |
|---|---|---|
| 400 / 413 / 415 | JSON มีรูปแบบไม่ถูกต้อง เนื้อหามีขนาดใหญ่เกินไป หรือประเภทสื่อที่ไม่รองรับ | แก้ไขคำขอ |
| 401 / 403 | การเข้าถึงถูกปฏิเสธ การจำกัดบัญชีหรือเครดิตไม่เพียงพอ | ตรวจสอบ code; การเข้าถึงที่ถูกต้องหรือเติมเครดิต / รอการรีเซ็ตรุ่นทดลองใช้ |
| 422 | อินพุตไม่ถูกต้องหรือตัวเลือกที่เข้ากันไม่ได้ | แก้ไขฟิลด์ที่ระบุใน errors |
| 404 / 405 | เส้นทางที่ไม่รู้จักหรือวิธี HTTP ที่ไม่รองรับ | ตรวจสอบเส้นทางปลายทางและส่วนหัวการตอบสนอง Allow |
| 429 | อัตราหรือขีดจำกัดการทำงานพร้อมกัน | รอ Retry-After ก่อนส่งคำขออื่น |
| 500 | เซิร์ฟเวอร์ล้มเหลวที่ไม่คาดคิด | ติดต่อฝ่ายสนับสนุนด้วย request_id; ตรวจสอบการเรียกเก็บเงินก่อนที่จะลองอีกครั้ง |
| 502 / 503 / 504 | ผู้ให้บริการ การขึ้นต่อกัน การเรียกเก็บเงินหรือการหมดเวลาล้มเหลว | ตรวจสอบ code, action และ billing_status ก่อนลองอีกครั้ง |
{
"type": "urn:genderapi:problem:validation_error",
"title": "validation error",
"status": 422,
"detail": "A valid email address is required.",
"instance": "urn:uuid:11111111-1111-4111-8111-111111111111",
"code": "validation_error",
"request_id": "11111111-1111-4111-8111-111111111111",
"documentation": "https://api.genderapi.io/api/v2/errors",
"action": "correct_request",
"errors": [
{
"pointer": "/value",
"message": "Invalid email address."
}
],
"meta": {
"request_id": "11111111-1111-4111-8111-111111111111",
"duration_ms": 12,
"access": {
"mode": "ip_trial",
"reason": "api_key_missing"
},
"usage": {
"charged_credits": 0,
"remaining_credits": null,
"billing_status": "not_charged",
"resets_at": "2026-09-26T12:00:00.000Z",
"limit": 10,
"period_seconds": 86400
}
}
}ลองอีกครั้งและเรียกเก็บเงิน
ทุกคำขอการคาดการณ์เป็นการดำเนินการใหม่ รวมถึงคำขอที่เหมือนกันที่ส่งอีกครั้ง กฎเครดิตปกติใช้กับแต่ละคำขอ ไม่มีการป้องกันคำขอซ้ำ ดังนั้นควรหลีกเลี่ยงการลองใหม่โดยอัตโนมัติหลังจากการเชื่อมต่อขาดหายหรือผลลัพธ์ที่ไม่ทราบสาเหตุ
สำหรับการตอบกลับ 429 ให้รอ Retry-After ก่อนส่งคำขออื่น สำหรับความล้มเหลวในการคาดการณ์ ให้ตรวจสอบ code, action และ meta.usage.billing_status ก่อน สำหรับ billing_reconciliation_required หรือการเรียกเก็บเงินที่ยังไม่ยืนยัน โปรดติดต่อฝ่ายสนับสนุนกับ request_id ก่อนลองอีกครั้ง
ชุดที่สำเร็จบางส่วนอาจส่งคืน HTTP 200 ตรวจสอบแต่ละรายการและส่งเฉพาะรายการที่ล้มเหลวอีกครั้งหลังจากยืนยันการเรียกเก็บเงินแล้ว รายการที่สำเร็จจะถูกเรียกเก็บเงินอีกครั้งหากส่งอีกครั้ง
X-Request-ID และ meta.request_id ระบุความพยายามของ HTTP ในปัจจุบัน อ่าน /usage สำหรับยอดคงเหลือปัจจุบัน HEAD ไม่เริ่มการคาดการณ์ที่เรียกเก็บเงินได้ การคาดการณ์และการตอบกลับของบัญชีไม่สามารถแคชได้
ลูกค้าควรยอมรับฟิลด์การตอบสนองเพิ่มเติมและรักษาค่า null เมื่อไม่มีข้อมูล
ขีดจำกัดคำขอ
จัดการ HTTP 429 และ Retry-After แทนที่จะถือว่าคำขอจะได้รับการยอมรับที่เพดานเหล่านี้เสมอ มีการแบ่งปันความสามารถในการให้บริการ ค่าที่แสดงเป็นค่าเริ่มต้นของบริการปัจจุบัน การตอบสนองที่จำกัดอัตรา ได้แก่ X-RateLimit-Limit, X-RateLimit-Remaining และ X-RateLimit-Reset (วินาที Unix) Retry-After เป็นการหน่วงเวลาเป็นวินาที ส่วนหัวเหล่านี้อธิบายขีดจำกัดคำขอ ไม่ใช่เครดิตที่เหลืออยู่ แม้แต่การอ่าน /usage ฟรีก็ยังนับรวมในขีดจำกัดอัตรา
| ขีดจำกัด | ค่า |
|---|---|
| เนื้อหาคำขอ JSON | สูงสุด 64 KiB |
| ค่าทำนาย | 1–254 ตัวอักษร |
| ชุด | 50 รายการที่มีคีย์ API 10 ด้วยการทดลองใช้ IP |
| อัตราบัญชี | 120 คำขอต่อนาที |
| อัตรา IP | 600 คำขอต่อนาที |
| การทำงานพร้อมกัน | 2 ต่อบัญชี; 16 ทั่วทั้งบริการ |