Telm วัด API สองวิธี คือ ขีดจำกัดอัตราต่อนาที(เพดานสำหรับการส่งพุ่งพรวด) และโควตารายวัน(งบประมาณรวมของคุณสำหรับวัน UTC) ทั้งสองปรับตามแพ็กเกจ ทุกการตอบกลับที่ถูกวัดจะคืน X-Quota-Limit, X-Quota-Used และ X-Quota-Reset เพื่อให้คุณรู้งบประมาณที่เหลืออยู่เสมอ และทั้งสองขีดจำกัดคืน 429 พร้อมเฮดเดอร์ Retry-After เมื่อเกิน
1สองขีดจำกัด คือ อัตราต่อนาทีและโควตารายวัน
มีเพดานสองแบบแยกกัน ขีดจำกัดอัตราต่อนาทีจำกัดว่าคุณเรียกได้กี่ครั้งภายในหนึ่งนาทีใด ๆ ช่วยเกลี่ยการส่งที่พุ่งพรวดให้ราบเรียบ โควตารายวันคืองบประมาณโดยรวมของคุณ คือ มันจำกัดว่าคุณเรียกที่ถูกวัดได้กี่ครั้งตลอดทั้งวัน UTC
พวกมันเป็นอิสระต่อกัน คุณอาจถึงขีดจำกัดต่อนาทีในขณะที่ยังมีโควตารายวันเหลือมาก (คุณเพียงส่งเร็วเกินไป) หรือใช้โควตารายวันหมดในขณะที่อยู่ต่ำกว่าขีดจำกัดต่อนาทีมาก (คุณใช้วันหมดแล้ว) ทั้งสองคืนสถานะ 429 แต่ด้วยเหตุผลต่างกัน — ตรวจสอบรหัสข้อผิดพลาดในเนื้อเพื่อแยกแยะพวกมัน
- ขีดจำกัดอัตราต่อนาที — เพดานสำหรับการส่งพุ่งพรวด รีเซ็ตทุกนาที
- โควตารายวัน — การเรียกที่ถูกวัดทั้งหมดของคุณสำหรับวัน รีเซ็ตตอนเที่ยงคืน UTC
- โควตาถูกนับครั้งเดียวต่อบัญชี ใช้ร่วมกันข้ามคีย์ทั้งหมดของคุณ
2โควตารายวันตามแพ็กเกจ
โควตารายวันของคุณคือจำนวนการเรียก API ที่ถูกวัดที่คุณทำได้ต่อวัน UTC และขึ้นกับแพ็กเกจของคุณ ตัวนับถูกใช้ร่วมกันข้ามคีย์ทั้งหมดของคุณและตามแพ็กเกจที่ดีที่สุดในบรรดากลุ่มที่คุณดูแล — หากไม่มีการสมัครสมาชิกแบบชำระเงิน คุณอยู่ในระดับ Free
หน้าต่างคือวันปฏิทิน UTC ดังนั้นตัวนับที่ใช้ของคุณรีเซ็ตเป็นศูนย์ตอนเที่ยงคืน UTC การตรวจสอบสแปมเป็นชุดคิดหนึ่งการเรียกต่อรายการในชุด ไม่ใช่หนึ่งการเรียกต่อทั้งคำขอ
- Free — 100 การเรียกต่อวัน
- Basic — 1,000 การเรียกต่อวัน
- Pro — 10,000 การเรียกต่อวัน
- Business — 50,000 การเรียกต่อวัน
3ขีดจำกัดอัตราต่อนาทีตามแพ็กเกจ
นอกเหนือจากโควตารายวัน แต่ละคีย์ API ถูกจำกัดจำนวนคำขอต่อนาทีตามระดับแพ็กเกจของมัน นี่เป็นขีดจำกัดแบบราบเรียบ คือ มันหยุดไคลเอนต์เดียวไม่ให้ส่งการพุ่งขึ้นมหาศาลในหนึ่งวินาที แม้เมื่องบประมาณรายวันยังห่างไกลจากการใช้หมด
แยกต่างหาก มีเพดานกว้าง ๆ ต่อ IP และต่อบัญชีที่ใช้ทั่วทั้ง API เพื่อรักษาเสถียรภาพของแพลตฟอร์ม ในการใช้งานปกติ — คำขอที่สม่ำเสมอและมีจังหวะ — คุณจะไม่มีวันแตะพวกนี้ มันทำงานเฉพาะกับการส่งพุ่งพรวดที่เป็นการใช้ในทางที่ผิด
- Free และ Basic — 60 คำขอต่อนาที
- Pro — 600 คำขอต่อนาที
- Business — 1,800 คำขอต่อนาที
- กระจายคำขอออกไปแทนที่จะยิงทั้งหมดในคราวเดียว
4การอ่านงบประมาณที่เหลือของคุณ
คุณไม่ต้องเดาว่าเหลือโควตาเท่าไร ทุกการตอบกลับที่ถูกวัด — สำเร็จหรือล้มเหลว — รวมสามเฮดเดอร์ คือ X-Quota-Limit (ขีดจำกัดรายวันของคุณ) X-Quota-Used (คุณใช้ไปกี่การเรียกในวันนี้) และ X-Quota-Reset (ช่วงเวลา ในหน่วย UTC ที่ตัวนับรีเซ็ต)
endpoint ตรวจสอบสแปมยังสะท้อนตัวเลขเดียวกันภายในเนื้อการตอบกลับใต้อ็อบเจกต์ quota เพื่อให้คุณอ่านงบประมาณที่เหลือได้โดยไม่ต้องแยกวิเคราะห์เฮดเดอร์ ใช้พวกนี้เพื่อจับจังหวะคำขอของคุณเองและเตือนตัวเองก่อนที่คุณจะใช้หมด
- X-Quota-Limit — ขีดจำกัดการเรียกรายวันของคุณ
- X-Quota-Used — การเรียกที่ใช้ไปแล้วในวันนี้
- X-Quota-Reset — เวลารีเซ็ตในหน่วย UTC (RFC 3339)
- การตอบกลับตรวจสอบสแปมยังรวมอ็อบเจกต์ quota พร้อมฟิลด์เดียวกัน
5เกิดอะไรขึ้นที่ 429
เมื่อคุณข้ามขีดจำกัดใดขีดจำกัดหนึ่ง API จะคืน HTTP 429 พร้อมเฮดเดอร์ Retry-After ที่บอกคุณว่าต้องรอกี่วินาที สำหรับขีดจำกัดอัตราต่อนาที Retry-After อยู่ที่ราวหนึ่งนาที สำหรับโควตารายวัน เนื้อพกรหัส daily_quota_exceeded บวกแพ็กเกจของคุณ ขีดจำกัด จำนวนที่ใช้ เวลารีเซ็ต และคำแนะนำให้อัปเกรด และ Retry-After นับถอยหลังไปยังเที่ยงคืน UTC
วิธีที่ถูกต้องในการจัดการ 429 คือถอยและลองใหม่หลังจากการหน่วง Retry-After ไม่ใช่กระหน่ำ endpoint ไคลเอนต์ที่ประพฤติดีจะอ่านเฮดเดอร์และหยุดพัก ไคลเอนต์ที่ลองใหม่ทันทีเรื่อย ๆ ก็แค่ถูกบล็อกต่อไป
- 429 rate_limit_exceeded — คุณส่งเร็วเกินไป รอราวหนึ่งนาที
- 429 daily_quota_exceeded — วันนี้ใช้หมดแล้ว รอจนถึงการรีเซ็ต UTC หรืออัปเกรด
- เคารพเฮดเดอร์ Retry-After ก่อนลองใหม่เสมอ