Rate Limit
Để đảm bảo sử dụng công bằng và duy trì sự ổn định cho dịch vụ, API của AusyncLab áp dụng giới hạn tốc độ đối với tất cả các endpoint.
Chính sách giới hạn tốc độ
Thông tin cơ bản
- Limit: 30 request mỗi phút cho mỗi API Key, tính riêng cho từng endpoint (đường dẫn).
- Định danh: giới hạn được tính theo giá trị header
X-API-Key. Nếu request không có header này, hệ thống dùng địa chỉ IP thay thế. - Cửa sổ thời gian: cửa sổ 60 giây bắt đầu từ request đầu tiên tới endpoint đó và được làm mới sau khi hết 60 giây.
Cách thức hoạt động
- Mỗi cặp (API Key, đường dẫn) có bộ đếm riêng. Ví dụ
POST /api/v1/speech/text-to-speechvàGET /api/v1/speechđược đếm độc lập. - Request thứ 31 tới cùng một endpoint trong cùng cửa sổ 60 giây sẽ bị từ chối với mã trạng thái
429 Too Many Requests. - Request tới đường dẫn không tồn tại (404) hoặc sai phương thức (405) không được tính vào bộ đếm.
Response khi vượt giới hạn
Status Code: 429 Too Many Requests
{
"error": "Rate limit exceeded: 30 per 1 minute"
}Response không kèm header Retry-After hay X-RateLimit-*. Hãy chờ tối đa 60 giây rồi thử lại.
Best Practices
-
Triển khai retry logic:
Khi nhận429, chờ và thử lại theo cơ chế exponential backoff thay vì gửi lại ngay. -
Gộp request nếu có thể:
Giảm số lượng request bằng cách gộp chúng lại khi phù hợp, ví dụ dùng Host Mix để tạo nhiều đoạn audio trong một request. -
Sử dụng bộ nhớ đệm (Caching):
Lưu trữ tạm thời dữ liệu được truy cập thường xuyên (danh sách giọng nói, chi tiết audio đã hoàn thành) để giảm các request lặp lại. -
Theo dõi mức sử dụng:
Theo dõi tốc độ gửi request của bạn, đặc biệt khi polling trạng thái job. Polling mỗi 5-10 giây là đủ cho hầu hết các job.