Giới hạn tốc độ
Tick Up áp dụng giới hạn tốc độ cửa sổ trượt để giữ API phản hồi nhanh cho mọi người. Giới hạn rộng rãi với traffic ứng dụng thông thường và chặt hơn với các endpoint nhạy cảm.
Cơ chế giới hạn
Giới hạn được theo dõi theo access token với endpoint có xác thực, và theo IP với endpoint công khai. Cửa sổ trượt — mỗi request đẩy bucket tiến lên — và burst 60 giây vẫn được phép kể cả với endpoint tính theo phút.
Giới hạn mặc định
| Hạng mục | Giới hạn | Ví dụ |
|---|---|---|
| Endpoint có xác thực thông thường | 120 / phút | GET /candidates, GET /jobs |
| Endpoint nhạy cảm | 30 / phút | POST /candidates, POST /applications, upload file |
| Endpoint auth | 10 / phút / IP | POST /auth/login, POST /auth/refresh |
| Endpoint công khai | 60 / phút / IP | GET /public/jobs, POST /public/applications |
Khi chạm giới hạn
Khi bạn vượt giới hạn, request tiếp theo trả về 429 Too Many Requests:
HTTP/1.1 429 Too Many Requests
content-type: application/json
retry-after: 12
x-ratelimit-limit: 120
x-ratelimit-remaining: 0
{
"detail": "Rate limit exceeded: 120 per 1 minute"
}Đọc header Retry-After (giây) và chờ ít nhất chừng đó trước khi thử lại. Với các job batch không gấp, hãy ưu tiên exponential backoff bắt đầu từ Retry-After thay vì vòng retry chặt.
Pattern tránh chạm giới hạn
- Gộp khi có thể. Một số endpoint chấp nhận danh sách ID trong một cuộc gọi — dùng chúng thay vì lặp một request mỗi ID.
- Cache dữ liệu tham chiếu. Danh sách vị trí, mã địa điểm, định nghĩa vòng tuyển hiếm khi thay đổi từng phút. Cache trong service của bạn.
- Dùng webhook thay vì polling. Đừng poll
GET /applicationsđể phát hiện thay đổi vòng — đăng ký webhook và để Tick Up đẩy. - Page lớn hơn, ít page hơn. Khi duyệt list, dùng
page_size=100thay vì mặc định 20.
Cần giới hạn cao hơn?
Gửi email cho hello@tickup.vn kèm use case (số lượng ứng viên, tần suất import, khung giờ trong ngày) và chúng tôi sẽ nâng giới hạn cho tenant của bạn.