API giải hCaptcha (9 ô) chạy cục bộ. Mỗi request thành công trừ 1 lượt của API key.
| Method | Path | Mô tả |
|---|---|---|
| POST | /v1/solve | Giải ảnh: question + tiles (+ anchors) |
| POST | /v1/refund | Hoàn 1 lượt khi hCaptcha báo sai (kèm solve_id, trong 30 phút) |
| GET | /v1/balance | Xem lượt đã dùng / còn lại |
| GET | /dashboard | Bảng điều khiển: khách nhập key, admin nhập mật khẩu |
| GET | /health | Trạng thái model |
Khách xem số dư tại /dashboard
(đăng nhập bằng API key). Admin đăng nhập cùng trang bằng mật khẩu trong
data/admin_password.txt.
Mẫu gọi API: xem thư mục examples/ (Playwright, Selenium, Node.js, PHP)
và client_example.py.
curl -X POST http://127.0.0.1:8787/v1/solve \
-H "X-API-Key: hc_..." -H "Content-Type: application/json" \
-d '{"question":"Click on things you can use underwater",
"tiles":["data:image/png;base64,...", "... 9 ảnh"],
"grid":{"x":0,"y":0,"w":380,"h":380}}'
Có thể gửi thẳng 1 ảnh chụp nguyên lưới: {"question":"...","image":"data:image/png;base64,...","cols":3}
(server tự cắt 9 ô), thay cho tiles.
Trả về: solve_id (dùng để hoàn lượt), top_k (ô cần bấm, 0..8),
objects (bool từng ô), clicks (tâm pixel nếu gửi grid),
confidences, quota.
Giải sai: POST /v1/refund {"solve_id":"s_..."} — hoàn 1 lượt nếu trong 30 phút,
mỗi solve hoàn 1 lần, tối đa 10 lượt/key/ngày.
Sai key: 401, hết lượt: 429 quota_exhausted, key bị khóa: 403.