> LOADING_SYSTEM...
> KERNEL: ✓ LINUX 6.8.0
> DATABASE: ✓ NEDB ONLINE
> WORKER_POOL: ✓ READY
> AUTH_MODULE: ✓ JWT ACTIVE
> SYSTEM ONLINE — LAUNCHING DASHBOARD
hCaptcha Solver
hCaptcha

Tổng quan

Trạng thái tài khoản và hoạt động gần đây

0xCR

Số dư hiện tại

credits

0x4E

Đã giải thành công

tasks

0x2A

Đang xử lý

pending + active

0xF7

Thất bại (đã hoàn)

tasks

Task gần đây

Task ID Website Trạng thái Thời gian

API Key

Quản lý khóa truy cập API của bạn

Khóa API hiện tại

Dùng key này trong tất cả request tới API. Không chia sẻ key với người khác.

Đã sao chép vào clipboard!


Tạo key mới

Khi tạo key mới, key cũ sẽ bị vô hiệu hóa ngay lập tức.

Cách sử dụng key

API key được gửi trong body của mọi request JSON:

# Ví dụ với curl
curl -X POST https://hcaptcha.canhnhat.vn/createTask \
  -H "Content-Type: application/json" \
  -d '{"apiKey":"YOUR_API_KEY","task":{...}}'

Tài liệu API

Hướng dẫn tích hợp đầy đủ — bao gồm rqdata và xử lý lỗi

BASE URL
https://hcaptcha.canhnhat.vn
POST /createTask — Tạo task mới, trừ 1 credit

Tham số request

Tham số Kiểu Bắt buộc Mô tả
apiKeystringRequiredAPI key của bạn từ trang này
task.typestringRequiredPhải là "hcaptcha"
task.websiteURLstringRequiredURL đầy đủ của trang chứa hCaptcha
task.websiteKeystringRequiredGiá trị thuộc tính data-sitekey của widget hCaptcha
task.rqdatastringOptionalDữ liệu bổ sung cho hCaptcha Enterprise.

Hướng dẫn lấy rqdata

rqdatalà chuỗi base64 dùng bởi một số trang web dùng hCaptcha Enterprise. Cần cung cấp khi trang web yêu cầu xác thực bổ sung.

Cách lấy rqdata:

  1. 1. Mở DevTools (F12) trên trang có hCaptcha
  2. 2. Vào tab Network, lọc theo getcaptcha
  3. 3. Tải lại trang, tìm request tới api2.hcaptcha.com/getcaptcha/...
  4. 4. Trong phần Request Payload, copy giá trị field rqdata

Nếu không thấy field rqdata, trang đó không yêu cầu — không cần truyền vào.

Code mẫu

import requests

response = requests.post(
    "https://hcaptcha.canhnhat.vn/createTask",
    json={
        "apiKey": "YOUR_API_KEY",
        "task": {
            "type":       "hcaptcha",
            "websiteURL": "https://example.com/login",
            "websiteKey": "a9b5fb07-92ee-493a-a4f4-...",
            # rqdata chỉ cần khi trang yêu cầu (Enterprise)
            "rqdata":    "eyJ0eXAiOiJKV1QiLCJhbGci..."
        }
    }
)
data = response.json()

if data["errorId"] == 0:
    task_id = data["taskId"]
    print(f"Task created: {task_id}")
else:
    print(f"Error: {data['errorCode']}")
POST /getTaskResult — Lấy kết quả task, poll mỗi 3–5s

Tham số request

Tham số Kiểu Bắt buộc Mô tả
apiKeystringRequiredAPI key của bạn
taskIdstringRequiredUUID trả về bởi /createTask

Các trạng thái response

Đang xử lý — tiếp tục poll

{ "errorId": 0, "status": "processing" }

Hoàn thành — dùng token ngay

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "token":     "P1_eyJhbGciOiJIUzI1NiIsInR5...",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0...)"
  }
}

Thất bại — credit đã được hoàn tự động

{
  "errorId":          1,
  "errorCode":        "ERROR_CAPTCHA_UNSOLVABLE",
  "errorDescription": "Task failed"
}

Hết thời gian — credit đã hoàn tự động

{
  "errorId":          1,
  "errorCode":        "TASK_TIMEOUT",
  "errorDescription": "TASK_TIMEOUT"
}

Code mẫu (polling)

import time

def get_token(api_key, task_id, max_wait=120):
    url = "https://hcaptcha.canhnhat.vn/getTaskResult"
    for _ in range(max_wait // 3):
        r = requests.post(url, json={
            "apiKey": api_key,
            "taskId": task_id
        })
        d = r.json()
        if d["status"] == "ready":
            return d["solution"]["token"]
        if d.get("errorId") == 1:
            raise Exception(d["errorCode"])  # credit đã hoàn
        time.sleep(3)
    raise TimeoutError("Timeout chờ kết quả")

# Sử dụng
token = get_token(api_key="YOUR_KEY", task_id=task_id)
print(f"Token: {token[:40]}...")

# Gửi token lên trang web:
# form["h-captcha-response"] = token

Mã lỗi

errorCode Mô tả Hành động
ERROR_KEY_DENIEDAPI key không hợp lệ hoặc đã bị thu hồiKiểm tra lại API key
ERROR_ZERO_BALANCESố dư không đủ để tạo taskLiên hệ admin nạp credits
ERROR_TASK_NOT_FOUNDtaskId không tồn tại hoặc không thuộc key nàyKiểm tra lại taskId
ERROR_TASK_TYPEtask.type không phải "hcaptcha"Sửa task.type = "hcaptcha"
ERROR_TASK_ABSENT_INPUTThiếu websiteURL hoặc websiteKeyCung cấp đủ tham số
ERROR_TOO_MANY_TASKSĐang có quá nhiều task đồng thờiĐợi task hiện tại xong rồi thử lại
ERROR_CAPTCHA_UNSOLVABLEKhông thể giải captcha nàyCredit đã hoàn, thử lại
TASK_TIMEOUTTask không hoàn thành trong thời gian quy địnhCredit đã hoàn tự động, thử lại
ERROR_SITEKEY_NOT_SUPPORTEDSite key không có trong danh sách hỗ trợLiên hệ admin để thêm site key
ERROR_USER_BLOCKEDTài khoản đã bị khoá bởi adminLiên hệ admin để mở khoá

Lưu ý quan trọng

Token hết hạn nhanh

Token P1_... chỉ có hiệu lực ~60–90 giây. Dùng ngay sau khi nhận.

User-Agent khớp

Dùng solution.userAgent làm header khi gửi token để tăng tỉ lệ chấp nhận.

Poll interval

Poll mỗi 3–5 giây. Poll quá nhanh (<2s) không có lợi vì worker cần thời gian xử lý.

Lịch sử task

Lịch sử task của tài khoản

Tổng

Đã giải

Đang xử lý

Thất bại

Task ID Website Trạng thái Thời gian
1

Giao dịch

Lịch sử giao dịch tài khoản

Thời gian Loại Số tiền Ghi chú
1

Nạp tiền

Chuyển khoản ngân hàng — tự động cộng credit

Cài đặt

Tài khoản, bảo mật và giao diện

Thông tin tài khoản

Đổi mật khẩu

Mật khẩu mới phải có ít nhất 6 ký tự.

Giao diện

Chế độ tối / sáng

Tuỳ chỉnh theo sở thích