账号认证查询

查询某账号在软柠身份平台(id.rutno.com)的认证状态。返回认证名字、类型、图标与时间,不返回任何敏感个人信息(身份证号、姓名等原始认证内容)。

接口地址

复制代码

https://id.rutno.com/api/v2/verify_account
项目
请求方法GET  POST(推荐 POST)
返回格式JSON(UTF-8)
鉴权方式客户端凭据(client_id + client_secret)

建议使用 POST,避免凭据出现在 URL / 访问日志 / Referer 中。支持 OPTIONS 预检。

请求参数

参数类型必填说明
accountstring被查询用户的账号(account_id)
client_idstring平台分配给您的客户端 ID
client_secretstring平台分配给您的客户端密钥

参数可通过 GET 查询串或 POST 表单体(application/x-www-form-urlencoded)传递,二者等价。

鉴权

调用前请确认:

  1. 您已获得平台分配的 client_id  client_secret;
  2. 平台已为您的客户端开启本接口权限(默认关闭,需联系平台管理员开启)。

若凭据无效、客户端被封禁、或未开启本接口权限,统一返回 blocked(见下文)。

响应

所有响应 HTTP 状态码均为 200,业务结果以 JSON 中的 success / verification / code 表达。

通用字段

字段类型说明
successbool请求是否被正常处理
verificationstringverified(已认证)/ none(无认证),仅 success=true 时存在
dataobject认证详情,仅 verification=verified 时存在
messagestring提示信息
codestring错误码,仅 success=false 时存在

1. 已认证

json复制代码

{
  "success": true,
  "verification": "verified",
  "data": {
    "type_identifier": "company_v",
    "type_name": "企业认证",
    "display_name": "软柠科技创始人、CEO",
    "icon_url": "https://id.rutno.com/public/uploads/media/69b429feabd60_17.png",
    "created_at": "2026-04-23 20:13:06",
    "updated_at": "2026-04-23 20:15:07"
  }
}

2. 无认证 / 账号不存在

json复制代码

{
  "success": true,
  "verification": "none",
  "message": "该账号暂无已通过的认证"
}

账号不存在与账号存在但未认证均返回 none,不会泄漏账号是否存在。

3. 被禁止请求

json复制代码

{
  "success": false,
  "code": "blocked",
  "message": "禁止请求"
}

4. 缺少参数

json复制代码

{
  "success": false,
  "code": "missing_param",
  "message": "缺少参数:account / client_id / client_secret"
}

5. 内部错误

json复制代码

{
  "success": false,
  "code": "error",
  "message": "内部错误"
}

data 字段说明

仅当 verification=verified 时返回:

字段类型说明
type_identifierstring认证类型标识,如 company_v、realname
type_namestring认证类型名,如「企业认证」「实名认证」
display_namestring认证名字(认证通过时登记的展示名)
icon_urlstring认证类型图标 URL
created_atstring认证提交时间(YYYY-MM-DD HH:MM:SS)
updated_atstring认证最后更新时间

认证提交的原始内容(身份证号、姓名、证件影像等)不会通过本接口返回。

错误码

code含义触发条件
missing_param缺少参数account / client_id / client_secret 任一为空
blocked禁止请求凭据无效 / 客户端被封禁 / 未开启本接口权限
error内部错误服务端异常(细节不会返回客户端)

调用示例

cURL

bash复制代码

# 查询某账号认证状态
curl -s 'https://id.rutno.com/api/v2/verify_account' \
  -d 'account=i6wsxq' \
  -d 'client_id=YOUR_CLIENT_ID' \
  -d 'client_secret=YOUR_CLIENT_SECRET'

PHP

php复制代码

$ch = curl_init('https://id.rutno.com/api/v2/verify_account');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS     => http_build_query([
        'account'       => 'i6wsxq',
        'client_id'     => 'YOUR_CLIENT_ID',
        'client_secret' => 'YOUR_CLIENT_SECRET',
    ]),
]);
$res = json_decode(curl_exec($ch), true);

if ($res['success'] && $res['verification'] === 'verified') {
    echo '已认证:' . $res['data']['display_name']
        . '(' . $res['data']['type_name'] . ')';
} else {
    echo '未认证或不可查询';
}

Node.js

js复制代码

const params = new URLSearchParams({
  account: 'i6wsxq',
  client_id: 'YOUR_CLIENT_ID',
  client_secret: 'YOUR_CLIENT_SECRET',
});
const res = await fetch('https://id.rutno.com/api/v2/verify_account', {
  method: 'POST',
  body: params,
}).then(r => r.json());

if (res.success && res.verification === 'verified') {
  console.log(`已认证:${res.data.display_name}(${res.data.type_name})`);
} else {
  console.log('未认证或不可查询');
}

Python

python复制代码

import requests

res = requests.post('https://id.rutno.com/api/v2/verify_account', data={
    'account': 'i6wsxq',
    'client_id': 'YOUR_CLIENT_ID',
    'client_secret': 'YOUR_CLIENT_SECRET',
}).json()

if res.get('success') and res.get('verification') == 'verified':
    d = res['data']
    print(f"已认证:{d['display_name']}({d['type_name']})")
else:
    print('未认证或不可查询')

安全与注意事项

  1. 仅限服务端调用:client_secret 为机密,严禁放在前端代码或浏览器请求中。本接口仅供您的后端服务调用。
  2. 强制 HTTPS:所有请求须走 https://,不得通过明文 HTTP 传输凭据。
  3. 妥善保管密钥:client_secret 应存于环境变量或密钥管理服务,切勿提交到代码仓库;如需轮换请联系平台管理员。
  4. 最小使用:仅查询业务必需的账号,避免批量/高频调用。所有调用会被平台审计记录。
  5. 不返回 PII:本接口刻意不返回认证原始内容。如业务确需更多字段,请联系平台评估,勿自行期望接口放开敏感数据。

如需开通接口权限、获取凭据或咨询字段需求,请联系软柠身份平台管理员。