快速开始
只需三步即可接入风控云决策引擎 API,开始实时风险评估:
- 注册账号 — 访问 app.fengkong.cloud 创建账号
- 获取 API Key — 登录控制台,在「设置 > API 密钥」中生成密钥
- 调用接口 — 使用下方代码示例,发起第一次风控决策请求
curl 快速体验
bash
curl -X POST https://api.fengkong.cloud/api/v1/risk/check \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key" \
-d '{
"productCode": "loan_apply",
"appName": "张三",
"appCell": "138****1234",
"appIdCard": "330100****001234",
"appIp": "120.26.xx.xx",
"amount": 5000.00
}'
响应示例
json
{
"code": 0,
"message": "success",
"data": {
"decision": "pass",
"score": 210,
"matchedRules": [],
"executionTimeMs": 12
}
}
认证方式
所有 API 请求必须在 HTTP Header 中携带 API Key 进行身份认证:
| Header | 说明 | 示例 |
|---|---|---|
X-API-Key |
您的 API 密钥,在控制台「设置 > API 密钥」中获取 | fk_live_aBcDeFgHiJkLmN |
Content-Type |
请求内容类型,固定为 JSON | application/json |
http
POST /api/v1/risk/check HTTP/1.1
Host: api.fengkong.cloud
Content-Type: application/json
X-API-Key: fk_live_aBcDeFgHiJkLmN
{"productCode": "order_check", ...}
安全提示:
- 请勿在前端代码或公开仓库中暴露 API Key
- 建议通过服务端代理调用 API
- 定期轮换 API Key,旧密钥可在控制台中撤销
核心接口
POST
/api/v1/risk/check
实时风险评估接口。提交业务数据,返回风控决策(通过/拒绝/复核)、风险评分及命中规则列表。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode |
string | 是 | 产品编码,标识业务场景(如 loan_apply, order_check) |
appName |
string | 是 | 申请人姓名 |
appCell |
string | 是 | 申请人手机号 |
appIdCard |
string | 否 | 申请人身份证号 |
appIp |
string | 否 | 申请人 IP 地址 |
amount |
number | 否 | 交易/申请金额(元) |
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
decision |
string | 决策结果:pass(通过)、reject(拒绝)、review(人工复核) |
score |
number | 风险评分(0-1000),分值越高风险越大 |
matchedRules |
array | 命中的风控规则列表,每项包含 ruleId、ruleName、detail |
executionTimeMs |
number | 决策执行耗时(毫秒) |
完整响应示例
json
{
"code": 0,
"message": "success",
"data": {
"decision": "review",
"score": 680,
"matchedRules": [
{
"ruleId": "R001",
"ruleName": "同一手机号24小时内多次申请",
"detail": "该手机号24小时内已申请3次"
},
{
"ruleId": "R015",
"ruleName": "高风险IP地址",
"detail": "IP地址命中代理IP库"
}
],
"executionTimeMs": 8
}
}
POST
/api/v1/risk/blacklist/check
检查指定实体(手机号、身份证、IP)是否命中黑名单。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
content |
string | 是 | 待查询的内容(手机号/身份证号/IP地址) |
type |
string | 是 | 内容类型:phone、idcard、ip |
响应示例
json
{
"code": 0,
"message": "success",
"data": {
"isBlocked": true,
"reason": "多次欺诈行为",
"addedTime": "2025-11-20T08:30:00Z"
}
}
GET
/api/v1/risk/stats
获取风控决策统计数据,包括总交易量、通过率、拒绝率和平均响应时间。
查询参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
days |
number | 否 | 统计天数,默认 7,最大 90 |
响应示例
json
{
"code": 0,
"message": "success",
"data": {
"totalTrades": 12580,
"passRate": 0.823,
"rejectRate": 0.067,
"reviewRate": 0.110,
"avgResponseTime": 15
}
}
错误码
请求失败时,API 返回统一的错误格式:
json
{
"code": 40101,
"message": "Invalid API key",
"requestId": "req_20260316_001"
}
| 错误码 | HTTP 状态 | 说明 | 处理建议 |
|---|---|---|---|
40001 |
400 | 请求参数错误 | 检查 JSON 格式与必填字段 |
40002 |
400 | productCode 不存在 | 确认产品编码是否正确 |
40101 |
401 | API Key 无效 | 检查 X-API-Key Header |
40102 |
401 | API Key 已过期 | 在控制台重新生成密钥 |
40301 |
403 | 权限不足 | 确认当前套餐是否支持该接口 |
42901 |
429 | QPS 超限 | 降低请求频率或升级套餐 |
42902 |
429 | 月调用量超限 | 升级套餐或联系销售 |
50001 |
500 | 服务内部错误 | 重试请求,持续异常请联系技术支持 |
50301 |
503 | 服务暂时不可用 | 稍后重试 |
SDK 示例
curl
bash
# 风控决策
curl -X POST https://api.fengkong.cloud/api/v1/risk/check \
-H "Content-Type: application/json" \
-H "X-API-Key: fk_live_aBcDeFgHiJkLmN" \
-d '{
"productCode": "order_check",
"appName": "张三",
"appCell": "13800001234",
"amount": 299.00
}'
# 黑名单查询
curl -X POST https://api.fengkong.cloud/api/v1/risk/blacklist/check \
-H "Content-Type: application/json" \
-H "X-API-Key: fk_live_aBcDeFgHiJkLmN" \
-d '{"content": "13800001234", "type": "phone"}'
# 风控统计
curl -X GET "https://api.fengkong.cloud/api/v1/risk/stats?days=30" \
-H "X-API-Key: fk_live_aBcDeFgHiJkLmN"
Python
python
import requests
API_KEY = "fk_live_aBcDeFgHiJkLmN"
BASE_URL = "https://api.fengkong.cloud/api/v1"
headers = {
"Content-Type": "application/json",
"X-API-Key": API_KEY
}
# 风控决策
response = requests.post(
f"{BASE_URL}/risk/check",
json={
"productCode": "order_check",
"appName": "张三",
"appCell": "13800001234",
"amount": 299.00
},
headers=headers
)
result = response.json()
print(f"决策结果: {result['data']['decision']}")
print(f"风险评分: {result['data']['score']}")
print(f"命中规则: {result['data']['matchedRules']}")
# 黑名单查询
blacklist_resp = requests.post(
f"{BASE_URL}/risk/blacklist/check",
json={"content": "13800001234", "type": "phone"},
headers=headers
)
print(f"是否命中黑名单: {blacklist_resp.json()['data']['isBlocked']}")
# 风控统计
stats_resp = requests.get(
f"{BASE_URL}/risk/stats",
params={"days": 30},
headers=headers
)
stats = stats_resp.json()["data"]
print(f"通过率: {stats['passRate']:.1%}, 拒绝率: {stats['rejectRate']:.1%}")
Node.js
javascript
const API_KEY = 'fk_live_aBcDeFgHiJkLmN';
const BASE_URL = 'https://api.fengkong.cloud/api/v1';
// 风控决策
async function riskCheck(data) {
const response = await fetch(`${BASE_URL}/risk/check`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': API_KEY
},
body: JSON.stringify(data)
});
return response.json();
}
// 黑名单查询
async function blacklistCheck(content, type) {
const response = await fetch(`${BASE_URL}/risk/blacklist/check`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': API_KEY
},
body: JSON.stringify({ content, type })
});
return response.json();
}
// 使用示例
(async () => {
const result = await riskCheck({
productCode: 'order_check',
appName: '张三',
appCell: '13800001234',
amount: 299.00
});
console.log(`决策结果: ${result.data.decision}`);
console.log(`风险评分: ${result.data.score}`);
console.log(`命中规则: ${JSON.stringify(result.data.matchedRules)}`);
const blacklist = await blacklistCheck('13800001234', 'phone');
console.log(`是否命中黑名单: ${blacklist.data.isBlocked}`);
})();
调用限制
不同套餐的 API 调用限制如下:
| 套餐 | 月调用量 | QPS 上限 | 价格 |
|---|---|---|---|
| 体验版 | 10 次/月 | 1 QPS | 免费 |
| 入门版 | 200 次/月 | 5 QPS | ¥499/月 |
| 标准版 | 500 次/月 | 20 QPS | ¥1,299/月 |
| 专业版 | 2,000 次/月 | 50 QPS | ¥2,999/月 |
| 企业版 | 不限 | 自定义 | 面议 |
超出 QPS 限制时返回 429 Too Many Requests(错误码 42901)。建议实现指数退避重试策略:
python
import time
import requests
def risk_check_with_retry(data, max_retries=3):
for attempt in range(max_retries):
response = requests.post(
f"{BASE_URL}/risk/check",
json=data,
headers=headers
)
if response.status_code == 429:
wait = 2 ** attempt # 1s, 2s, 4s
time.sleep(wait)
continue
return response.json()
raise Exception("超出最大重试次数")
MCP 集成
Model Context Protocol 支持
风控云支持 MCP(Model Context Protocol)协议,AI Agent 可以直接调用风控决策引擎能力,无需额外封装。
通过 MCP 集成,您的 AI 助手可以在对话过程中实时进行风险评估、查询黑名单、获取风控统计数据。
MCP 服务配置
在您的 MCP 客户端配置文件中添加风控云服务:
json
{
"mcpServers": {
"fengkong-risk": {
"url": "https://api.fengkong.cloud/mcp",
"headers": {
"X-API-Key": "fk_live_aBcDeFgHiJkLmN"
}
}
}
}
可用的 MCP Tools
| Tool 名称 | 说明 | 对应 API |
|---|---|---|
risk_check |
实时风险评估,返回决策和评分 | POST /api/v1/risk/check |
blacklist_check |
黑名单命中查询 | POST /api/v1/risk/blacklist/check |
risk_stats |
获取风控统计概览 | GET /api/v1/risk/stats |