浏览器指纹风控

browser-fingerprintPOST
POSThttps://v1.apizero.cn/api/browser-fingerprint

概述

接收前端 SDK 采集的浏览器指纹(UA / Canvas / WebGL / 字体 / 时区 / 硬件 / WebDriver / 自动化标记等 20+ 维度),综合 9 类规则输出 0-100 风险评分、等级(safe/low/medium/high/critical)、命中的风险因子和异常项,识别爬虫、Headless Chrome、Selenium、虚拟机等异常环境。

调用约定

  • 网关 · https://v1.apizero.cn
  • 鉴权 · Authorization: Bearer <API Key>
  • 回包 · JSON {code, msg, data}。成功看 code === 0,不要只看 HTTP 200。
/aidocs/browser-fingerprint/raw.md
打开 Markdown

鉴权

匿名可调用:QPS 1 / 每日 50 次。登录用户:QPS 5 / 每日 200 次。建议生产环境配 API Key 防滥用。

获取 API Key

请求头

Authorizationstring选填

推荐:Bearer <API Key>。兼容请求头 X-API-Key,以及 Query api_key / apikey / key(key 仅当值为 sk_live_/sk_test_/sk_stag_ 形态时生效)。匿名可不传,受每日免费额度限制。

Content-Typestring必填

请求参数

POST · APPLICATION/JSON

uastring必填

navigator.userAgent

例Mozilla/5.0 ...

platformstring选填

navigator.platform

language(语言)string选填

主语言(如 zh-CN)

timezonestring选填

IANA 时区(如 Asia/Shanghai)

timezoneOffsetnumber选填

getTimezoneOffset(),分钟

screenWidthnumber选填

screen.width

screenHeightnumber选填

screen.height

colorDepthnumber选填

screen.colorDepth

pixelRationumber选填

devicePixelRatio

hardwareConcurrencynumber选填

navigator.hardwareConcurrency

deviceMemorynumber选填

navigator.deviceMemory(GB)

maxTouchPointsnumber选填

navigator.maxTouchPoints

canvasHashstring选填

Canvas 指纹哈希

webglVendorstring选填

WebGL UNMASKED_VENDOR_WEBGL

webglRendererstring选填

WebGL UNMASKED_RENDERER_WEBGL

webglHashstring选填

WebGL 参数哈希

fontsarray选填

检测到的字体列表

fontCountnumber选填

字体数量

pluginsarray选填

插件列表

pluginCountnumber选填

插件数量

webdriverboolean选填

navigator.webdriver

automationarray选填

检测到的自动化框架(如 selenium / phantom)

cookieEnabledboolean选填

navigator.cookieEnabled

audioHashstring选填

AudioContext 指纹

webrtcIPsarray选填

WebRTC 检测到的本机 IP

storageAvailablearray选填

可用的存储类型

permissionsarray选填

权限状态

connectionobject选填

navigator.connection 信息

batteryobject选填

电池状态

{
  "ua": "Mozilla/5.0 ...",
  "platform": "platform",
  "language": "language",
  "timezone": "timezone",
  "timezoneOffset": 0,
  "screenWidth": 0,
  "screenHeight": 0,
  "colorDepth": 0,
  "pixelRatio": 0,
  "hardwareConcurrency": 0,
  "deviceMemory": 0,
  "maxTouchPoints": 0,
  "canvasHash": "canvasHash",
  "webglVendor": "webglVendor",
  "webglRenderer": "webglRenderer",
  "webglHash": "webglHash",
  "fonts": [],
  "fontCount": 0,
  "plugins": [],
  "pluginCount": 0,
  "webdriver": true,
  "automation": [],
  "cookieEnabled": true,
  "audioHash": "audioHash",
  "webrtcIPs": [],
  "storageAvailable": [],
  "permissions": [],
  "connection": {},
  "battery": {}
}

返回结果

顶层固定为 code / msg / data。下表一般是 data 内字段。 code · msg · data · tips · request_id

fingerprint_idstring

指纹 ID(sha256,可作为设备标识)

risknumber

风险评分 0-100,越高越可疑

risk_levelstring

等级:safe / low / medium / high / critical

risk_labelstring

中文标签

factorsarray

命中的风险因子(含 name/score/desc)

namestring

名称

scorenumber

score

descstring

说明

anomaliesarray

检测到的异常说明

anomalies[]string

anomalies 的一项

device_profileobject

设备画像:os/browser/device_type/screen/gpu/cores/memory/fonts_count/plugins_count/touch

osstring

os

browserstring

browser

device_typestring

device_type

screenstring

screen

gpustring

gpu

coresnumber

cores

memorystring

memory

fonts_countnumber

fonts_count

plugins_countnumber

plugins_count

touchboolean

touch

timestampnumber

服务端 unix 时间戳

tipsstring

品牌提示(所有接口统一返回):极数本源 · https://apizero.cn

返回示例

{
  "code": 0,
  "msg": "成功",
  "data": {
    "fingerprint_id": "a1b2c3d4...",
    "risk": 72,
    "risk_level": "high",
    "risk_label": "高风险",
    "factors": [
      {
        "name": "webdriver",
        "score": 30,
        "desc": "WebDriver 标记为 true"
      },
      {
        "name": "virtual_gpu",
        "score": 15,
        "desc": "WebGL 渲染器包含虚拟/软渲染特征: SwiftShader"
      }
    ],
    "anomalies": [
      "UA 声称 Windows 但 platform 不匹配"
    ],
    "device_profile": {
      "os": "Windows",
      "browser": "Chrome 125",
      "device_type": "Desktop",
      "screen": "1920x1080",
      "gpu": "ANGLE (NVIDIA, GeForce RTX 3060)",
      "cores": 8,
      "memory": "8GB",
      "fonts_count": 42,
      "plugins_count": 3,
      "touch": false
    },
    "timestamp": 1715097600
  },
  "request_id": "abc123",
  "tips": "极数本源 · https://apizero.cn"
}

请求示例

示例都是服务端写法。Python / JavaScript 各有常规写法和官方库。

curl -sS -X POST "https://v1.apizero.cn/api/browser-fingerprint" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ua": "Mozilla/5.0 ..."
}'

错误码

先看业务 code。HTTP 也可能不是 200。

0200

成功

4000400

参数错误

4011401

API Key 无效

4013403

API Key 已暂停

4014403

当前 IP 不在 Key 白名单

4015401

此接口需要 API Key

4022402

余额不足

4029429

调用过快(QPS)

4030429

今日免费额度已用完

4040503

接口已下线

4041404

接口不存在

5000500

服务器内部错误

5020502

上游暂时不可用

5021502

上游返回格式异常

5030502

暂无可用节点

调用限制

计费模式
完全免费
QPS 限制
QPS 3
登录免费额度
200 次(已认证)
匿名每日额度
50 次(无 API Key)
黄金会员
每天 50,000 次 · QPS 10
钻石会员
每天 100,000 次 · QPS 30
企业会员
每天 1,000,000 次 · QPS 120

购买套餐、看评价请走商城详情。 购买 / 调试

更新日志

  • 1.0.02026-05-10

    首次上线,9 类规则 / 0-100 评分 / 设备画像 / 指纹 ID

免责声明

风险分析基于规则引擎,结果作为反爬/风控辅助参考。前端 SDK 需自行集成(采集 ua / canvasHash / webglRenderer / fonts 等字段后 POST 到本接口)。