跳转至

📘 DCaptcha API 接入文档

🔔 教程说明

注意:本页为 API 接入教程,非后台实现文档,非开发者勿用!


1️⃣ 明确验证码类型

首先要明确验证码的类型, 然后根据类型找到对应的 imageId, 类型表如下:

来源 imageId 类型说明 消耗积分 图片示例
0 DX 2232501010 滑块验证 10
1 DX 2232501020 文字点选 10
2 DX 2232501030 图标点选 10
3 DX 2232501040 文字语序 10
4 DX 2232501050 刮刮卡 10
5 DX 2232501060 空间语义 10
6 DX 2232501070 乱序拼图 10
7 DX 2232501080 旋转验证 10
8 DX 2232501090 面积 10
9 DX 2232501100 差异点击 10
10 DX 2232501110 字体识别 10
11 DX 2232501120 滑动拼图 10
12 GT 2702501010 文字点选 10
13 GT 2702501020 图标点选2 10
14 GT 2702501030 图标点选3 10
15 GT 2702501040 图标点选4 10
16 GT 2702501041 图标点选5 10
17 GT 2702501050 九宫格 10
18 GT 2702501060 消消乐 10 ✅ 直接传入数组即可
19 GT 2702501070 五子棋 10 ✅ 直接传入数组即可
20 GT 2702501080 文字重叠点击 10
21 GT 2702501090 新九宫格 10
22 GT 2702501100 文字点选(gt4) 10
23 GT 2702501110 文字语序(gt4) 10
24 YD 2802501010 文字点选 30

2️⃣ 获取 token

  • 获取 token, 参考: token

3️⃣ API 接口详解

🔗 请求地址

POST https://dcap.xiaocai.site/api/v1/yzm/images?imageId={imageId}

📌 Query 参数

参数名 类型 是否必填 说明
imageId int ✅是 验证码类型的 ID

🧾 请求头(Headers)

参数名 示例值 是否必填 说明
Authorization Bearer your_token ✅ 是 携带身份验证 token
Content-Type application/json ✅ 是 固定值
Accept application/json ✅ 是 固定值

📤 请求体(Payload)

⚠️ 不同验证码类型参数结构不同.
具体请参阅 dxgt中的参数,不必关注其他信息。
以下为示例:

字段名 类型 是否必填 说明
bg string ✅ 是 背景图 base64 编码字符串
... - 按需填充 其他字段视类型而定

📥 返回结果(JSON)

参数 类型 说明
code int 返回状态码,成功为 200
msg string 返回提示信息
success boolean 是否识别成功,程序可只依据此字段判断是否成功
data object 识别结果内容,结构因验证码类型而异

4️⃣ API 调用示例

✅ 案例 1:识别 DX 面积

import base64
import requests

##api 接口地址(测试接口,  注意: 请求路径是固定不变的)
API_URL = "https://dcap.xiaocai.site/api/v1/yzm/images" 


headers = {
    "accept": "application/json",
    "Authorization": "Bearer eyJhbGciOi************",
    "Content-Type": "application/json",
}


# 1. 读取图片并转换为 base64 编码
bgfile = "docs/example/dx_area.png"
with open(bgfile, "rb") as f:
    imgbase64 = base64.b64encode(f.read()).decode()

# 2. 准备请求的 payload 和参数, 具体的参数查看相关文档
payload = {"bg": imgbase64}  
params = {"imageId": 2232501090} 

# 3. 发送 POST 请求
response = requests.post(API_URL, params=params, json=payload, headers=headers)
print("返回的结果:", response.json())
返回的结果: {'code': 0, 'msg': '识别成功', 'success': True, 'data': '[85, 104]'}

✅ 案例 2:识别 DX 文字点选

import base64
import requests

API_URL = "https://dcap.xiaocai.site/api/v1/yzm/images" 


headers = {
    "accept": "application/json",
    "Authorization": "Bearer eyJhbGciOi************",
    "Content-Type": "application/json",
}

bgfile = "docs/example/dx_click.png"
with open(bgfile, "rb") as f:
    imgbase64 = base64.b64encode(f.read()).decode()

payload = {"bg": imgbase64, "cw": "听埋扣"}
params = {"imageId": 2232501020}
response = requests.post(API_URL, params=params, json=payload, headers=headers)
print("返回的结果:", response.json())
返回的结果: {'code': 0, 'msg': '识别成功', 'success': True, 'data': '[[43, 44], [28, 106], [147, 62]]'}

5️⃣ 积分查询接口

🔗 请求地址(注意为 get 请求)

GET https://dcap.xiaocai.site/api/v1/self/info

📌 Query 参数

🧾 请求头(Headers)

  • 与识别接口相同

📥 返回结果 (JSON)

  • 与识别接口相同