开放 API

把内容合规检测接进你的系统

ByeRisk 开放 API 把短视频、短剧、投放三条产品线的文案 / 视频 / 图片合规检测, 以及自定义违禁词库、AI 修复、素材包批量检测、视频检测报告、准入资质提醒,用一套 REST 接口开放出来。 与网页版共用同一套检测引擎和积分账户 —— 网页上看到的结论,API 返回的完全一致。

Base URLhttps://www.byerisk.com/api/v1创建 API KeyOpenAPI 规范 (JSON) →

快速开始

三步接入。所有检测都是「提交拿 id → 轮询取结果」这一个模式。

1

创建 API Key

控制台 → 开放 API 创建。 密钥形如 brsk_live_…只在创建时显示一次,请立即保存到你的密钥管理器。

2

带上鉴权头调用

每个请求加 Authorization: Bearer brsk_live_…。 注意这与网页登录态的 token 不是一回事,不能混用。

3

提交检测,轮询结果

提交立即返回 id,检测在后台跑。轮询 GET 接口直到 status 变成 completed。文案通常 3–15 秒,视频约为视频时长的一半。

提交一次文案检测

bash
curl -X POST https://www.byerisk.com/api/v1/text/checks \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "这款面膜是全网最好的,七天美白见效,无效退款!",
    "platform": "douyin",
    "industryVertical": "beauty",
    "productVertical": "creator"
  }'

# → {"success":true,"data":{"id":"cm5abc…","status":"processing"}}

轮询取结果

bash
curl https://www.byerisk.com/api/v1/text/checks/cm5abc… \
  -H "Authorization: Bearer $BYERISK_API_KEY"

# status 变成 completed 后:
# {
#   "success": true,
#   "data": {
#     "status": "completed",
#     "riskLevel": "REJECT",
#     "summary": { "strict": 3, "soft": 1, "custom": 0 },
#     "risks": [
#       {
#         "tier": "STRICT",
#         "tierLabel": "必须修改",
#         "matchedText": "最好的",
#         "startIndex": 7,
#         "endIndex": 10,
#         "suggestion": "绝对化用语,请替换为非绝对化表述",
#         "legalRef": "《广告法》第九条"
#       }
#     ]
#   }
# }

响应格式统一包封。成功是 { "success": true, "data": … }, 失败是 { "success": false, "error": "…" }。 下方接口文档里的「响应」字段表描述的都是 data 里的内容。

三条产品线

productVertical 参数切换。不同产品线命中不同的规则集与自定义词库 —— 短剧的尺度判定和投放素材的广告法审查不是一回事,这个参数决定了用哪一套。

参数值场景文案检测视频检测图片检测
creator短视频创作(默认)支持支持支持
duanju短剧支持支持无此能力
touliu投放素材支持支持支持

另有两个正交参数。platform 指发布平台,决定命中哪套平台规则(短剧通常用红果 hongguo):douyin 抖音 / kuaishou 快手 / xiaohongshu 小红书 / shipinhao 视频号 / bilibili B 站 / hongguo 红果短剧

industryVertical 指行业垂类,决定行业专项规则(如医美、金融、保健食品):general 通用(不限行业) / beauty 美妆护肤 / ecommerce 电商直播 / finance 金融财经 / health 医疗健康 / food 保健食品 / slimming 减肥瘦身

准入资质提醒的 industry 是另一套取值,别直接复用这里的值。industryVertical 是 7 个规则桶,而准入资质提醒industry 更细 —— 医美 medical-beauty、药品保健 drug-health、法律 legal、招商加盟 franchise、玄学 occult 这些在规则桶里根本没有。把检测用的 beauty 传给提醒接口,医美那条永远不会命中。 建议在你自己的系统里持有细行业这一个值,调检测时按下表折算,调提醒接口时传原值。 提醒接口传表外的值会直接返回 400,不会静默给你一个空数组。

你持有的 industry(资质提醒)调检测时传的 industryVertical
medical-beauty 医美 / health 医疗health
drug-health 药品 / 保健食品food;投放(touliu)用 health
唯一按产品线分叉的一项:投放侧走医疗广告规则,创作侧走保健食品规则
beauty / finance / ecommerce / slimming同名
legal / franchise / occult / education / recruit / realestate / auto / alcoholgeneral

风险结论与分档

每次检测有一个顶层结论 riskLevelPASS(通过)、REVIEW(建议修改)、REJECT(必须修改)。 每条风险再带一个 tier,只有两档,语义固定不变。

STRICT

必须修改

违反法规或平台硬性规则,不改会被处罚或封禁。带 legalRef 指明法条依据。

SOFT

影响推流

能发布,但会被推荐系统降权,建议修改。投放场景下称「跑量风险」。

customRisks

自定义词命中

你自己配的词,单独成组、不计入 riskLevel。它是偏好不是合规判定。

为什么自定义词要分开放。竞品名、内部禁用表述这类词是你的业务偏好, 把它和「违反广告法」混在一个列表里,会让你的下游系统无法区分「必须拦截」和「提醒一下」。 所以它们在 customRisks 里单独返回,配了替换词的还会带 replacement,可直接做精确替换。

检测维度

视频和图片检测可以按维度裁剪 —— frameTypes / audioTypes / detectTypes 都是不传即全开,只传你关心的维度可以少跑几项、更快返回。 与网页版设置里的勾选项一一对应。

画面检测维度frameTypes视频检测

画面文字合规OCR
违规行为识别BEHAVIOR
广告营销识别AD
涉政敏感检测POLITICS
暴力血腥检测VIOLENCE
低俗色情检测PORN
品牌商标侵权LOGO
敏感人物识别PERSON

音频检测维度audioTypes视频检测

涉政语音检测POLITICAL
低俗语音检测PORN
语音营销识别AD
不当音效检测MOAN
辱骂言论检测ABUSE

图片检测维度detectTypes图片检测

广告内容识别AD
文字违规检测OCR
涉政敏感检测POLITICS
暴恐违禁检测VIOLENCE
低俗色情检测PORN
品牌标识识别LOGO

视频检测报告

视频检测完成后,可以在结果之上再生成一份可交付的合规报告: 按档位逐条列风险(含时间点、画面 / 语音原文),并给出可直接替换的合规改写示例。 适合直接转给客户或内容团队,10 积分 / 份,生成失败自动退回。

bash
# 检测 status=completed 之后,生成一份可交付的合规报告(SSE 流式)
curl -N https://www.byerisk.com/api/v1/video/checks/cm5abc…/report \
  -H "Authorization: Bearer $BYERISK_API_KEY"

# event: report_start
# data: {"reportId":"cm5rpt…"}
#
# event: report_chunk
# data: {"chunk":"【检测结论】本次检测共发现"}
#
# event: report_done
# data: {"reportId":"cm5rpt…","content":"【检测结论】…(完整正文)"}
#
# event: complete
# data: {"durationMs":41230}

# 中途断开也不要紧,服务端会把报告写完 —— 回来取最近一份:
curl https://www.byerisk.com/api/v1/video/checks/cm5abc…/report/latest \
  -H "Authorization: Bearer $BYERISK_API_KEY"

# 从未生成过时 data 为 null(不是 404)
事件数据含义
report_start{ reportId }已受理,开始生成
report_chunk{ chunk }正文增量,按到达顺序拼接
report_done{ reportId, content }完整正文,落库以它为准、别用拼接结果
complete{ durationMs }流结束,之后不会再有事件
error{ message }生成期出错,积分已退回(此时没有 report_done

错误不走 SSE。校验与扣费都在响应头之前完成,所以 400(检测未完成 / 已有报告在生成中)、402(积分不足)、404 都是普通 HTTP 错误,按状态码分支处理即可。 另外客户端断开不会中止生成 —— 服务端照常写完, 回来用 /report/latest 取;超时重试请先查 latest, 直接重新调生成会再扣一次 10 积分。未知事件请忽略而不是报错,后续版本可能新增事件类型。

多租户接入

如果你是把合规检测集成进自己的系统、再提供给你自己的多个客户使用, 加一个 X-End-Tenant 头,把你系统里的租户号带上, 我们会为每个租户号单独开一个隔离域。不需要为每个客户单独申请 API Key。

bash
curl -X POST https://www.byerisk.com/api/v1/text/checks \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "X-End-Tenant: tenant-4271" \
  -H "Content-Type: application/json" \
  -d '{ "text": "这款面膜是全网最好的…", "platform": "douyin" }'

# tenant-4271 的自定义词库、检测历史与其他终端租户完全隔离,
# 积分仍从你的主账户扣。
维度归属说明
自定义违禁词库、词库开关各租户各一份A 租户配的词不会命中 B 租户的检测
检测历史、素材上传目录各租户各一份列表接口只返回当前 X-End-Tenant 的记录,互相不可见
准入资质提醒的「我已具备」各租户各一份粒度是终端租户、不是终端用户 —— 资质属于经营主体,同一租户下收起一次即对全员生效
积分余额、订阅档位你的主账户统一从你的积分池扣,不需要给每个终端租户充值
调用限额按 API Key所有终端租户共享一把 Key 的限额,需要更高并发就多签几把

请传稳定的租户标识。租户号第一次出现时会自动建好,不需要预先注册, 取值限 1–64 位的字母、数字、_.:-。 但如果传的是每次请求都变化的值(比如误传成请求 id),会迅速耗尽单把 Key 的隔离域上限(5 万个)并开始报错。 不传这个头时,所有数据都在你自己这一个域里,与不使用该能力完全一致。

计费与限流

API 与网页版共用同一个积分池,价格一致。接入前可以调 GET /v1/account 查余额和本月用量。

动作消耗
文案检测按套餐单价,每次
AI 修复按套餐单价,每次
视频检测(标准模式)1 积分 / 秒
图片检测2 积分 / 张
视频检测报告10 积分 / 份
自定义违禁词管理、账户查询免费
准入资质提醒免费

限流按 API Key 计:提交类 60 次/分钟,查询类 600 次/分钟,配置类 120 次/分钟 (准入资质提醒走配置类,不占检测的提交额度;生成检测报告走提交类,与提交检测共用同一档计数)。 每档独立计数,每个响应都带 X-RateLimit-Remaining, 超限返回 429 并带 Retry-After

错误码

状态码含义怎么处理
400参数不合法,或该产品线不支持此能力(如短剧传图片)error 提示修参数
401API Key 无效、已吊销或已过期换一把有效的 Key
402积分不足,带 requiredCreditscurrentBalance充值后重试
403该产品线未开通,或功能需要更高订阅档升级订阅
404记录不存在或不属于你的账户核对 id
429触发限流Retry-After 退避重试
500服务端错误可重试;持续失败请联系我们

给 AI Agent 使用

这套 API 的设计目标之一就是让 AI agent 能自己读懂并调用 —— 规范是标准 OpenAPI 3.0,入参、出参、枚举值、错误语义都写在 spec 里,不需要额外的适配文档。

把规范地址给你的 agent(Claude、GPT、Coze、Dify 等都支持从 OpenAPI 导入工具), 再配一把 API Key,它就能自主完成「检测 → 读风险 → 改文案 → 复检」的闭环:

text
读取 https://www.byerisk.com/api/v1/openapi.json 这份 OpenAPI 规范,
用我的 API Key 调用 ByeRisk,检测下面这段短视频文案是否合规,
把「必须修改」的风险逐条列出来,并给出改写建议。

规范地址:https://www.byerisk.com/api/v1/openapi.json(公开访问,无需鉴权)

文案检测

POST/v1/text/checks

提交文案检测

提交一段文案做合规检测,立即返回 id,检测在后台异步进行。

拿到 id 后轮询 GET /v1/text/checks/{id},直到 status 变成 completedfailed(通常 3–15 秒)。

支持三条产品线:creator(短视频)、duanju(短剧)、touliu(投放),由 productVertical 指定。

提交即扣积分;入队失败会自动全额退回。

请求体

字段类型说明
text必填字符串待检测文案。10–5000 字。(长度 10–5000)
platform必填枚举发布平台。决定命中哪套平台规则。短剧场景通常用 hongguo(红果)。可选值:douyin抖音kuaishou快手xiaohongshu小红书shipinhao视频号bilibiliB 站hongguo红果短剧
industryVertical必填枚举行业垂类。与产品线正交,决定行业专项规则(如医美、金融、保健食品)。可选值:general通用(不限行业)beauty美妆护肤ecommerce电商直播finance金融财经health医疗健康food保健食品slimming减肥瘦身
productVertical枚举产品线:creator=短视频创作合规(默认)、duanju=短剧、touliu=投放素材。决定命中哪套规则集与自定义词库。可选值:creator短视频duanju短剧touliu投放默认 creator
sceneMode枚举内容场景:content=纯内容创作(默认)、ad=广告投放。声明 ad 后,场景类提示(kind=scene-hint)不再计为违规。可选值:content纯内容创作ad广告投放默认 content
autoFix布尔是否在检测完成后自动触发 AI 修复。开启会额外扣除修复积分;结果在 fixes 数组里返回。默认 false

响应201

字段类型说明
id字符串本次检测的 id,用于轮询结果。
object字符串对象类型。
status字符串当前状态。刚提交时为 processing。
可能的错误
402积分不足,响应体带 requiredCredits / currentBalance
403该产品线未开通(短剧/投放试用次数已用尽)

示例

bash
curl -X POST https://www.byerisk.com/api/v1/text/checks \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "这款面膜是全网最好的,七天美白见效,无效退款!",
    "platform": "douyin",
    "industryVertical": "beauty",
    "productVertical": "creator",
    "sceneMode": "content",
    "autoFix": false
  }'
json — 响应
{
  "success": true,
  "data": {
    "id": "cms8xhc5x0006sp59vrks7zkf",
    "object": "text_check",
    "status": "processing"
  }
}
GET/v1/text/checks

文案检测历史

按创建时间倒序分页返回,仅含概览字段。

查询参数

字段类型说明
page字符串页码,从 1 开始。默认 1
pageSize字符串每页条数,上限 50。默认 20
productVertical枚举按产品线过滤。不传 = 全部。可选值:creator短视频duanju短剧touliu投放
platform枚举按平台过滤。可选值:douyin抖音kuaishou快手xiaohongshu小红书shipinhao视频号bilibiliB 站hongguo红果短剧
keyword字符串按文案内容关键词搜索。

响应200

字段类型说明
object字符串对象类型,恒为 list。
page数字当前页码。
pageSize数字每页条数。
total数字符合条件的总条数。
hasMore布尔是否还有下一页。
data数组<对象>本页数据。
id字符串检测 id。
object字符串对象类型。
status字符串检测状态。
platform字符串发布平台。
industryVertical字符串行业垂类。
preview字符串原文预览(上游已截断至 100 字)。
riskLevel枚举顶层结论。可选值:PASS通过REVIEW建议修改REJECT必须修改
riskCount数字原始风险条数(未按可见档位过滤)。
fixStatus字符串修复任务状态。
createdAt字符串创建时间(ISO 8601)。

示例

bash
curl "https://www.byerisk.com/api/v1/text/checks" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "object": "list",
    "page": 1,
    "pageSize": 20,
    "total": 514,
    "hasMore": true,
    "data": [
      {
        "id": "string",
        "object": "text_check",
        "status": "completed",
        "platform": "douyin",
        "industryVertical": "string",
        "preview": "string",
        "riskLevel": "PASS",
        "riskCount": 7,
        "fixStatus": "string",
        "createdAt": "string"
      }
    ]
  }
}
GET/v1/text/checks/{id}

取文案检测结果

statusprocessing 时表示还在检测中,稍后重试;completedrisks 才是最终结果。

风险分两层,互不混淆

- risks — 合规风险。tier=STRICT(必须修改)会计入 riskLeveltier=SOFT(影响推流)能发但会降曝光。

- customRisks — 你自己配的违禁词命中,不计入 riskLevel,配了替换词会给 replacement

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串检测 id。
object字符串对象类型。
status枚举检测状态。completed 之后 risks 才是最终结果。可选值:processing检测中completed已完成failed失败cancelled已取消
productVertical枚举产品线。可选值:creator短视频duanju短剧touliu投放
platform字符串发布平台。
industryVertical字符串行业垂类。
sceneMode枚举内容场景。可选值:content纯内容创作ad广告投放
text字符串送检的原文。
riskLevel枚举顶层结论:PASS 通过 / REVIEW 建议修改 / REJECT 必须修改。自定义词命中不影响它。可选值:PASS通过REVIEW建议修改REJECT必须修改
summary对象各档位计数。
strict数字必须修改(STRICT)的风险条数。
soft数字影响推流(SOFT)的风险条数。
custom数字自定义词库命中条数。不计入 riskLevel。
semantic数字语义风险复核标签数(定位不到具体位置的整体提示)。
risks数组<对象>合规风险明细。
id字符串风险条目 id。
tier枚举STRICT=必须修改(违法或违反平台硬性规则);SOFT=影响推流(能发但会降权)。可选值:STRICT必须修改SOFT影响推流
tierLabel字符串tier 的中文标签。投放场景下 SOFT 显示为「跑量风险」。
tierReason字符串判定为该档位的依据。内部调试用的兜底原因不会出现在这里。
kind枚举violation=法规级违规;scene-hint=场景限制(提交时声明 sceneMode=ad 后不再计为违规)。可选值:violation法规级违规scene-hint场景限制
matchedText字符串命中的原文片段。
startIndex数字命中片段在原文中的起始下标(含)。
endIndex数字命中片段在原文中的结束下标(不含)。
category字符串风险类别。
severity枚举严重度。可选值:highmediumlow
suggestion字符串修改建议。
legalRef字符串法条依据。规则命中的项通常有值,模型判定的项可能为空。
source枚举rule=确定性规则命中;model=模型语义判定。可选值:rule规则命中model模型判定
customRisks数组<对象>自定义词库命中,与合规风险物理分开,不计入 riskLevel。
matchedText字符串命中的原文片段。
startIndex数字起始下标(含)。
endIndex数字结束下标(不含)。
replacement字符串你为这个词配置的替换词。有值时可直接做精确替换;为空表示仅提醒。
note字符串你给这条规则写的备注。
semanticLabels数组<字符串>语义风险复核标签:模型判定有风险但定位不到具体片段的整体提示。
autoFix布尔提交时是否要求自动修复。
fixStatus字符串修复任务状态。processing=修复进行中,null=无进行中的修复。
fixes数组<对象>AI 修复结果,按版本递增。未触发修复时为空数组。
version数字修复版本号,从 1 递增。
strategy枚举rewrite=整篇重写;precise=逐条精准替换。可选值:rewrite整篇重写precise逐条精准替换
fixedText字符串修复后的文案。
riskCount数字修复后复检剩余的风险条数。
accepted布尔是否已被采纳。
createdAt字符串生成时间(ISO 8601)。
createdAt字符串创建时间(ISO 8601)。
updatedAt字符串最后更新时间(ISO 8601)。
可能的错误
404记录不存在或不属于当前租户

示例

bash
curl "https://www.byerisk.com/api/v1/text/checks/{id}" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "cms8xhc5x0006sp59vrks7zkf",
    "object": "text_check",
    "status": "completed",
    "productVertical": "creator",
    "platform": "douyin",
    "industryVertical": "beauty",
    "sceneMode": "content",
    "text": "这款面膜是全网最好的,七天美白见效!",
    "riskLevel": "REJECT",
    "summary": {
      "strict": 3,
      "soft": 1,
      "custom": 0,
      "semantic": 2
    },
    "risks": [
      {
        "id": "cms8xhlfa0000sp3ore4cx6oo",
        "tier": "STRICT",
        "tierLabel": "必须修改",
        "tierReason": "《广告法》第9条|广告法:夸大性广告",
        "kind": "violation",
        "matchedText": "最好的",
        "startIndex": 7,
        "endIndex": 10,
        "category": "prohibited",
        "severity": "high",
        "suggestion": "绝对化/违规广告用语,违反《广告法》第9条,请删除或替换为非绝对化表述",
        "legalRef": "《广告法》第9条",
        "source": "rule"
      }
    ],
    "customRisks": [
      {
        "matchedText": "竞品品牌名",
        "startIndex": 5,
        "endIndex": 10,
        "replacement": "友商",
        "note": "竞品名,不得提及"
      }
    ],
    "semanticLabels": [
      "夸大性广告",
      "特殊化妆品广告"
    ],
    "autoFix": false,
    "fixStatus": null,
    "fixes": [
      {
        "version": 1,
        "strategy": "rewrite",
        "fixedText": "这款面膜质地清爽,日常保湿体验舒适。",
        "riskCount": 0,
        "accepted": false,
        "createdAt": "string"
      }
    ],
    "createdAt": "string",
    "updatedAt": "string"
  }
}
DELETE/v1/text/checks/{id}

删除文案检测记录

软删除,不可恢复。

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串被删除记录的 id。
object字符串对象类型。
deleted布尔恒为 true。

示例

bash
curl -X DELETE https://www.byerisk.com/api/v1/text/checks/{id} \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "text_check",
    "deleted": true
  }
}
POST/v1/text/checks/{id}/fix

触发 AI 修复

对已完成的检测触发 AI 改写,立即返回,修复在后台进行。

轮询 GET /v1/text/checks/{id},修复结果出现在 fixes 数组里(按 version 递增)。

两种策略:rewrite 整篇重写(默认),precise 逐条精准替换(改动最小)。

会额外扣除修复积分。

路径参数

字段类型说明
id必填字符串

请求体

字段类型说明
strategy枚举修复策略:rewrite=整篇重写(默认,读起来更自然)、precise=逐条精准替换(改动最小,保留原文结构)。可选值:rewrite整篇重写precise逐条精准替换默认 rewrite
mode枚举改写语气:content=内容创作(默认)、ad=广告投放(更克制,规避广告法风险)。可选值:content内容创作ad广告投放默认 content

响应201

字段类型说明
id字符串检测 id。
object字符串对象类型。
fixStatus字符串修复任务状态。
可能的错误
400该记录无需修复(无风险项)或尚未检测完成
402积分不足

示例

bash
curl -X POST https://www.byerisk.com/api/v1/text/checks/{id}/fix \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "strategy": "rewrite",
    "mode": "content"
  }'
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "text_check",
    "fixStatus": "processing"
  }
}

视频检测

POST/v1/video/checks

提交视频检测(标准模式)

提交一个公网可访问的视频地址做合规检测,立即返回 id,检测在后台异步进行。

轮询 GET /v1/video/checks/{id},直到 status 变成 completedfailed

视频检测耗时约为视频时长的一半(最少 30 秒),建议每 5–10 秒轮询一次。

检测覆盖三个维度:画面(frames)、音频(audios)、口播文案(transcriptRisks,ASR 转写后走与文案检测同一套引擎)。

计费:按视频时长 1 积分/秒,提交即扣。三条产品线均支持。

videoSize 提交时即校验是否与真实文件相符;videoDuration 在检测完成后按引擎实际抽帧位置对账,

申报明显偏短会自动补扣差额 —— 请如实申报。

请求体

字段类型说明
videoUrl必填字符串视频地址。必须是公网可访问的直链(http/https)。没有公网存储的话,先调 POST /v1/uploads/policy 拿直传凭证。
videoTitle必填字符串视频标题,用于在检测历史里识别。
videoDuration必填数字视频时长(秒)。计费依据:标准模式按 1 积分/秒。 必须与实际时长一致:检测完成后会用引擎实际抽帧的时间点做对账, 申报明显短于实际时长的,差额部分会在检测完成时自动补扣。(最小 1)
videoSize必填数字视频大小(MB),上限 1024(1GB)。提交时会校验该值与实际文件是否相符,不符则拒绝。(取值 0.01–1024)
videoWidth数字视频宽度(像素)。
videoHeight数字视频高度(像素)。
productVertical枚举产品线。短剧默认平台为 hongguo(红果)。可选值:creator短视频duanju短剧touliu投放默认 creator
platform枚举发布平台。主要作用于口播 ASR 文案的规则集范围(画面/语音审核与平台无关)。不传则按产品线取默认值。可选值:douyin抖音kuaishou快手xiaohongshu小红书shipinhao视频号bilibiliB 站hongguo红果短剧
frameTypes数组<枚举>画面检测维度。不传 = 全部开启。可选值:OCR画面文字合规BEHAVIOR违规行为识别AD广告营销识别POLITICS涉政敏感检测VIOLENCE暴力血腥检测PORN低俗色情检测LOGO品牌商标侵权PERSON敏感人物识别默认 OCR,BEHAVIOR,AD,POLITICS,VIOLENCE,PORN,LOGO,PERSON
audioTypes数组<枚举>音频检测维度。不传 = 全部开启。可选值:POLITICAL涉政语音检测PORN低俗语音检测AD语音营销识别MOAN不当音效检测ABUSE辱骂言论检测默认 POLITICAL,PORN,AD,MOAN,ABUSE
textCheckId字符串关联的过审文案检测 id(来自 POST /v1/text/checks)。带上后会做口播漂移检测 —— 比对实际口播与过审脚本的偏离片段。

响应201

字段类型说明
id字符串本次检测的 id,用于轮询结果。
object字符串对象类型。
status字符串当前状态。刚提交时为 processing。
可能的错误
402积分不足
403该产品线未开通

示例

bash
curl -X POST https://www.byerisk.com/api/v1/video/checks \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "videoUrl": "https://your-cdn.com/videos/demo.mp4",
    "videoTitle": "618 主推款口播 A",
    "videoDuration": 45,
    "videoSize": 12.3,
    "videoWidth": 0,
    "videoHeight": 0,
    "productVertical": "creator",
    "platform": "douyin",
    "frameTypes": [
      "OCR"
    ],
    "audioTypes": [
      "POLITICAL"
    ],
    "textCheckId": "cm5abc123xyz"
  }'
json — 响应
{
  "success": true,
  "data": {
    "id": "cms8xhc5x0006sp59vrks7zkf",
    "object": "text_check",
    "status": "processing"
  }
}
GET/v1/video/checks

视频检测历史

按创建时间倒序分页返回,仅含概览字段。

查询参数

字段类型说明
page字符串页码,从 1 开始。默认 1
pageSize字符串每页条数,上限 50。默认 20
productVertical枚举按产品线过滤。不传 = 全部。可选值:creator短视频duanju短剧touliu投放
status枚举按状态过滤。可选值:processing检测中completed已完成failed失败

响应200

字段类型说明
object字符串对象类型,恒为 list。
page数字当前页码。
pageSize数字每页条数。
total数字符合条件的总条数。
hasMore布尔是否还有下一页。
data数组<对象>本页数据。
id字符串检测 id。
object字符串对象类型。
status字符串检测状态。
productVertical字符串产品线。
platform字符串发布平台。
video对象视频元信息(列表版不含 purged)。
url字符串视频地址。
title字符串视频标题。
durationSeconds数字时长(秒)。
sizeMb数字大小(MB)。
width数字宽度(像素)。
height数字高度(像素)。
purged布尔超过保留期的视频文件已被清理,此时 url 不再可播放。
riskLevel字符串顶层结论。
labels数组<字符串>顶层风险标签。
transcriptStatus字符串口播转写状态。
createdAt字符串创建时间(ISO 8601)。

示例

bash
curl "https://www.byerisk.com/api/v1/video/checks" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "object": "list",
    "page": 1,
    "pageSize": 20,
    "total": 514,
    "hasMore": true,
    "data": [
      {
        "id": "string",
        "object": "video_check",
        "status": "string",
        "productVertical": "string",
        "platform": "string",
        "video": {
          "url": "https://your-cdn.com/ep01.mp4",
          "title": "短剧第 1 集",
          "durationSeconds": 180,
          "sizeMb": 45.2,
          "width": 0,
          "height": 0,
          "purged": false
        },
        "riskLevel": "string",
        "labels": [
          "广告",
          "OCR文字"
        ],
        "transcriptStatus": "string",
        "createdAt": "string"
      }
    ]
  }
}
GET/v1/video/checks/{id}

取视频检测结果

每次调用会顺带向检测引擎推进一次轮询,所以直接轮询这个接口即可,不需要额外的状态接口。

status=completed 后各字段含义:

- frames — 画面命中,带秒级时间点与截图地址

- audios — 音频命中,带起止秒

- transcript — 口播全文转写(status 可能晚于视频审核完成)

- transcriptRisks — 口播话术违规,与画面/音频同等计入结论

- customTranscriptRisks — 自定义词库在口播里的命中,不计入 riskLevel

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串检测 id。
object字符串对象类型。
status枚举检测状态。processing 时请继续轮询本接口。可选值:processing检测中completed已完成failed失败
productVertical枚举产品线。可选值:creator短视频duanju短剧touliu投放
platform字符串发布平台。
video对象视频元信息。
url字符串视频地址。
title字符串视频标题。
durationSeconds数字时长(秒)。
sizeMb数字大小(MB)。
width数字宽度(像素)。
height数字高度(像素)。
purged布尔超过保留期的视频文件已被清理,此时 url 不再可播放。
riskLevel枚举顶层结论。可选值:PASS通过REVIEW建议修改REJECT必须修改
summary对象各档位计数。
strict数字必须修改(STRICT)的风险条数。
soft数字影响推流(SOFT)的风险条数。
custom数字自定义词库命中条数。不计入 riskLevel。
semantic数字语义风险复核标签数(定位不到具体位置的整体提示)。
frames数组<对象>画面风险明细。
timeSeconds数字命中画面在视频中的时间点(秒)。
tier枚举风险档位。可选值:STRICT必须修改SOFT影响推流
tierLabel字符串tier 的中文标签。
tierReason字符串判定依据。
description字符串风险描述。
imageUrl字符串该帧的截图地址。
ocrText字符串该帧画面中识别出的文字(OCR)。
audios数组<对象>音频风险明细。
startSeconds数字命中音频片段起始秒。
endSeconds数字命中音频片段结束秒。
tier枚举风险档位。可选值:STRICT必须修改SOFT影响推流
tierLabel字符串tier 的中文标签。
tierReason字符串判定依据。
description字符串风险描述。
text字符串该片段的语音文字。
transcript对象口播转写。可能晚于视频审核完成。
status枚举口播转写状态。null=未启用,empty=无音轨或静音。可选值:processing检测中completed已完成failed失败empty无音轨或静音
text字符串口播全文转写结果。
transcriptRisks数组<对象>口播话术风险,与画面/音频同等计入顶层结论。
tier枚举风险档位。可选值:STRICT必须修改SOFT影响推流
tierLabel字符串tier 的中文标签。
tierReason字符串判定依据。
matchedText字符串命中的口播原文片段。
startSeconds数字命中所在句的起始秒,可用于跳转播放。
endSeconds数字命中所在句的结束秒。
sentence字符串命中所在的完整句子,给上下文。
category字符串风险类别。
severity字符串严重度。
suggestion字符串修改建议。
replacement字符串合规替代说法。为空表示只能删除。
legalRef字符串法条依据。
source枚举rule=规则命中;model=模型判定。可选值:rule规则命中model模型判定
origin字符串命中归属。'drift' 表示该命中落在偏离过审脚本的即兴片段里;null 为口播全文命中。
customTranscriptRisks数组<对象>自定义词库在口播里的命中,不计入 riskLevel。
matchedText字符串命中的口播片段。
startSeconds数字起始秒。
endSeconds数字结束秒。
sentence字符串命中所在句。
replacement字符串你配置的替换词。
note字符串你写的备注。
linkedTextCheckId字符串提交时关联的过审文案检测 id。
driftStatus枚举口播漂移检测状态(关联了文案检测才有)。可选值:pending排队中processing检测中completed已完成failed失败skipped已跳过
createdAt字符串创建时间(ISO 8601)。
updatedAt字符串最后更新时间(ISO 8601)。
可能的错误
404记录不存在或不属于当前租户

示例

bash
curl "https://www.byerisk.com/api/v1/video/checks/{id}" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "video_check",
    "status": "processing",
    "productVertical": "creator",
    "platform": "string",
    "video": {
      "url": "https://your-cdn.com/ep01.mp4",
      "title": "短剧第 1 集",
      "durationSeconds": 180,
      "sizeMb": 45.2,
      "width": 0,
      "height": 0,
      "purged": false
    },
    "riskLevel": "PASS",
    "summary": {
      "strict": 3,
      "soft": 1,
      "custom": 0,
      "semantic": 2
    },
    "frames": [
      {
        "timeSeconds": 12,
        "tier": "STRICT",
        "tierLabel": "必须修改",
        "tierReason": "string",
        "description": "含医疗功效宣称",
        "imageUrl": "string",
        "ocrText": "string"
      }
    ],
    "audios": [
      {
        "startSeconds": 8,
        "endSeconds": 11,
        "tier": "STRICT",
        "tierLabel": "string",
        "tierReason": "string",
        "description": "string",
        "text": "string"
      }
    ],
    "transcript": {
      "status": "processing",
      "text": "string"
    },
    "transcriptRisks": [
      {
        "tier": "STRICT",
        "tierLabel": "string",
        "tierReason": "string",
        "matchedText": "全网最低价",
        "startSeconds": 8,
        "endSeconds": 11,
        "sentence": "string",
        "category": "string",
        "severity": "string",
        "suggestion": "string",
        "replacement": "string",
        "legalRef": "string",
        "source": "rule",
        "origin": null
      }
    ],
    "customTranscriptRisks": [
      {
        "matchedText": "string",
        "startSeconds": 0,
        "endSeconds": 0,
        "sentence": "string",
        "replacement": "string",
        "note": "string"
      }
    ],
    "linkedTextCheckId": "string",
    "driftStatus": "pending",
    "createdAt": "string",
    "updatedAt": "string"
  }
}
DELETE/v1/video/checks/{id}

删除视频检测记录

软删除,并异步清理已上传的视频文件。

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串被删除记录的 id。
object字符串对象类型。
deleted布尔恒为 true。

示例

bash
curl -X DELETE https://www.byerisk.com/api/v1/video/checks/{id} \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "text_check",
    "deleted": true
  }
}
GET/v1/video/checks/{id}/report

生成检测报告(SSE 流式)

基于已完成的检测结果,用大模型撰写一份可交付的合规报告:按档位逐条列风险

(含时间点与画面 / 语音原文),并给出可直接替换的合规改写示例。

这是 SSE 端点Content-Type: text/event-stream,事件按以下顺序到达:

- report_start{ reportId },已受理开始生成

- report_chunk{ chunk },正文增量,按到达顺序拼接

- report_done{ reportId, content },完整正文(以此为准,不要用拼接结果做落库)

- complete{ durationMs },流结束标记,收到它之后不会再有事件

- error{ message },生成期出错,积分已退回;此时不会有 report_done / complete

未知事件请忽略而不是报错 —— 后续版本可能新增事件类型。

校验与扣费都发生在响应头之前,所以 400 / 402 / 404 是普通 HTTP 错误而非 SSE 事件。

客户端断开后服务端会继续把报告写完,回来用 GET {id}/report/latest 取。

计费:固定 10 积分/份(以 pricing 配置为准),生成失败自动退回。

路径参数

字段类型说明
id必填字符串

响应200

SSE 事件流

可能的错误
400检测未完成,或已有报告正在生成
402积分不足
404检测记录不存在或不属于当前租户

示例

bash
curl "https://www.byerisk.com/api/v1/video/checks/{id}/report" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
GET/v1/video/checks/{id}/report/latest

取最近一份检测报告

返回该检测最近一份已完成的报告;从没生成过则 datanull(不是 404)。

生成中途断开连接后用它取回结果 —— 报告在服务端会继续写完。

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串报告 id。
object字符串对象类型,恒为 video_check_report。
videoCheckId字符串所属视频检测的 id。
content字符串报告正文(纯文本,用【】分节)。
creditCost数字本份报告消耗的积分。
createdAt字符串生成时间(ISO 8601)。
可能的错误
404检测记录不存在或不属于当前租户

示例

bash
curl "https://www.byerisk.com/api/v1/video/checks/{id}/report/latest" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "cm5rpt7x0001abcd",
    "object": "video_check_report",
    "videoCheckId": "cm5abc7x0001abcd",
    "content": "【检测结论】本次检测共发现 3 项必须修改、1 项影响推流的风险……",
    "creditCost": 10,
    "createdAt": "string"
  }
}

图片检测

POST/v1/image/checks

提交图片检测

提交一个公网可访问的图片地址做合规检测。

图片检测是同步完成的:这个接口返回时结果已经就绪,响应体就是完整的检测结果,

不需要再轮询。(保留 GET /v1/image/checks/{id} 供事后回查。)

**务必检查 status**:正常是 completed;检测引擎异常时会是 failed(此时积分已自动退回,

labels 为空),这种情况仍然返回 201 而不是 5xx —— 记录本身创建成功了。

**仅支持 creatortouliu 两条产品线**,短剧(duanju)没有图片检测。

计费:2 积分/张。

请求体

字段类型说明
imageUrl必填字符串图片地址。必须是公网可访问的直链。没有公网存储的话,先调 POST /v1/uploads/policy。
imageTitle必填字符串图片标题,用于在检测历史里识别。
imageSize必填数字图片大小(字节),上限 10MB。(最小 1)
imageWidth数字图片宽度(像素)。
imageHeight数字图片高度(像素)。
productVertical枚举产品线。图片检测仅支持 creator 与 touliu,短剧(duanju)无图片检测。可选值:creator短视频touliu投放默认 creator
detectTypes数组<枚举>检测维度。不传 = 全部开启。可选值:AD广告内容识别OCR文字违规检测POLITICS涉政敏感检测VIOLENCE暴恐违禁检测PORN低俗色情检测LOGO品牌标识识别默认 AD,OCR,POLITICS,VIOLENCE,PORN,LOGO

响应201

字段类型说明
id字符串检测 id。
object字符串对象类型。
status枚举检测状态。图片检测是同步的,提交返回时已是终态:completed 检测成功,failed 检测引擎异常(积分已自动退回)。可选值:completed已完成failed失败
productVertical枚举产品线。图片检测仅支持 creator / touliu。可选值:creator短视频touliu投放
image对象图片元信息。
url字符串图片地址。
title字符串图片标题。
sizeBytes数字大小(字节)。
width数字宽度(像素)。
height数字高度(像素)。
riskLevel枚举顶层结论。可选值:PASS通过REVIEW建议修改REJECT必须修改
summary对象各档位计数。
strict数字必须修改(STRICT)的风险条数。
soft数字影响推流(SOFT)的风险条数。
custom数字自定义词库命中条数。不计入 riskLevel。
semantic数字语义风险复核标签数(定位不到具体位置的整体提示)。
labels数组<对象>风险标签明细。
tier枚举风险档位。可选值:STRICT必须修改SOFT影响推流
tierLabel字符串tier 的中文标签。
tierReason字符串判定依据。
description字符串风险描述。
createdAt字符串创建时间(ISO 8601)。
updatedAt字符串最后更新时间(ISO 8601)。
可能的错误
400参数不合法,或传了 productVertical=duanju(短剧无图片检测)
402积分不足

示例

bash
curl -X POST https://www.byerisk.com/api/v1/image/checks \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "imageUrl": "https://your-cdn.com/images/banner.jpg",
    "imageTitle": "618 主图 v2",
    "imageSize": 204800,
    "imageWidth": 0,
    "imageHeight": 0,
    "productVertical": "creator",
    "detectTypes": [
      "AD"
    ]
  }'
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "image_check",
    "status": "completed",
    "productVertical": "creator",
    "image": {
      "url": "https://your-cdn.com/banner.jpg",
      "title": "618 主图 v2",
      "sizeBytes": 204800,
      "width": 0,
      "height": 0
    },
    "riskLevel": "REJECT",
    "summary": {
      "strict": 3,
      "soft": 1,
      "custom": 0,
      "semantic": 2
    },
    "labels": [
      {
        "tier": "STRICT",
        "tierLabel": "必须修改",
        "tierReason": "string",
        "description": "含医疗功效宣称"
      }
    ],
    "createdAt": "string",
    "updatedAt": "string"
  }
}
GET/v1/image/checks

图片检测历史

按创建时间倒序分页返回,仅含概览字段。

查询参数

字段类型说明
page字符串页码,从 1 开始。默认 1
pageSize字符串每页条数,上限 50。默认 20
productVertical枚举按产品线过滤。不传 = 全部。可选值:creator短视频duanju短剧touliu投放

响应200

字段类型说明
object字符串对象类型,恒为 list。
page数字当前页码。
pageSize数字每页条数。
total数字符合条件的总条数。
hasMore布尔是否还有下一页。
data数组<对象>本页数据。
id字符串检测 id。
object字符串对象类型。
status字符串检测状态。
image对象图片元信息(列表版不含宽高)。
url字符串图片地址。
title字符串图片标题。
sizeBytes数字大小(字节)。
riskLevel字符串顶层结论。
labels数组<字符串>风险标签(纯文字)。
createdAt字符串创建时间(ISO 8601)。

示例

bash
curl "https://www.byerisk.com/api/v1/image/checks" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "object": "list",
    "page": 1,
    "pageSize": 20,
    "total": 514,
    "hasMore": true,
    "data": [
      {
        "id": "string",
        "object": "image_check",
        "status": "string",
        "image": {
          "url": "https://your-cdn.com/banner.jpg",
          "title": "618 主图 v2",
          "sizeBytes": 204800
        },
        "riskLevel": "string",
        "labels": [
          "string"
        ],
        "createdAt": "string"
      }
    ]
  }
}
GET/v1/image/checks/{id}

取图片检测结果

回查已提交的图片检测。labels 逐条带 tier:STRICT=必须修改,SOFT=影响推流。

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串检测 id。
object字符串对象类型。
status枚举检测状态。图片检测是同步的,提交返回时已是终态:completed 检测成功,failed 检测引擎异常(积分已自动退回)。可选值:completed已完成failed失败
productVertical枚举产品线。图片检测仅支持 creator / touliu。可选值:creator短视频touliu投放
image对象图片元信息。
url字符串图片地址。
title字符串图片标题。
sizeBytes数字大小(字节)。
width数字宽度(像素)。
height数字高度(像素)。
riskLevel枚举顶层结论。可选值:PASS通过REVIEW建议修改REJECT必须修改
summary对象各档位计数。
strict数字必须修改(STRICT)的风险条数。
soft数字影响推流(SOFT)的风险条数。
custom数字自定义词库命中条数。不计入 riskLevel。
semantic数字语义风险复核标签数(定位不到具体位置的整体提示)。
labels数组<对象>风险标签明细。
tier枚举风险档位。可选值:STRICT必须修改SOFT影响推流
tierLabel字符串tier 的中文标签。
tierReason字符串判定依据。
description字符串风险描述。
createdAt字符串创建时间(ISO 8601)。
updatedAt字符串最后更新时间(ISO 8601)。
可能的错误
404记录不存在或不属于当前租户

示例

bash
curl "https://www.byerisk.com/api/v1/image/checks/{id}" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "image_check",
    "status": "completed",
    "productVertical": "creator",
    "image": {
      "url": "https://your-cdn.com/banner.jpg",
      "title": "618 主图 v2",
      "sizeBytes": 204800,
      "width": 0,
      "height": 0
    },
    "riskLevel": "REJECT",
    "summary": {
      "strict": 3,
      "soft": 1,
      "custom": 0,
      "semantic": 2
    },
    "labels": [
      {
        "tier": "STRICT",
        "tierLabel": "必须修改",
        "tierReason": "string",
        "description": "含医疗功效宣称"
      }
    ],
    "createdAt": "string",
    "updatedAt": "string"
  }
}
DELETE/v1/image/checks/{id}

删除图片检测记录

软删除,并异步清理已上传的图片文件。

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串被删除记录的 id。
object字符串对象类型。
deleted布尔恒为 true。

示例

bash
curl -X DELETE https://www.byerisk.com/api/v1/image/checks/{id} \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "text_check",
    "deleted": true
  }
}

自定义违禁词

POST/v1/custom-rules

新增一条自定义违禁词

请求体

字段类型说明
keyword必填字符串要检测的词。(长度 0–100)
matchType枚举匹配方式:keyword=子串匹配(默认,任何位置出现都算)、phrase=词边界匹配(避免误伤更长的词)。可选值:keyword子串匹配phrase词边界匹配默认 keyword
replacement字符串替换词。配了之后命中项会带 replacement,可用于一键精确替换;留空则仅提醒。(长度 0–100)
note字符串备注,仅自己可见。(长度 0–200)
library枚举规则库,决定这条词在哪些检测里生效: - general — 通用库(默认),短视频/短剧/投放全部检测都查 - creator — 仅短视频检测命中 - duanju — 仅短剧检测命中 - touliu — 仅投放检测命中可选值:general通用规则库creator短视频规则库duanju短剧规则库touliu投放规则库默认 general
enabled布尔是否启用。停用后保留数据但不参与检测。默认 true

响应201

字段类型说明
id字符串规则 id。
object字符串对象类型。
keyword字符串检测词。
matchType枚举keyword=子串匹配;phrase=词边界匹配。可选值:keyword子串匹配phrase词边界匹配
replacement字符串替换词。为空表示仅提醒。
note字符串备注。
enabled布尔是否启用。
library枚举所属规则库。general 库对所有产品线生效。可选值:general通用规则库creator短视频规则库duanju短剧规则库touliu投放规则库
createdAt字符串创建时间(ISO 8601)。
updatedAt字符串最后修改时间(ISO 8601)。
可能的错误
400该词已存在,或已达套餐词库上限
403自定义违禁词是付费功能,当前订阅不可用

示例

bash
curl -X POST https://www.byerisk.com/api/v1/custom-rules \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "keyword": "竞品品牌名",
    "matchType": "keyword",
    "replacement": "友商",
    "note": "竞品名,不得提及",
    "library": "general",
    "enabled": false
  }'
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "custom_rule",
    "keyword": "竞品品牌名",
    "matchType": "keyword",
    "replacement": "友商",
    "note": "string",
    "enabled": true,
    "library": "general",
    "createdAt": "string",
    "updatedAt": "string"
  }
}
GET/v1/custom-rules

列出全部自定义违禁词

返回当前租户配置的所有词,按创建时间倒序。词库规模不大,不分页。

响应200

字段类型说明
object字符串对象类型,恒为 list。
data数组<对象>全部规则(词库规模不大,不分页)。
id字符串规则 id。
object字符串对象类型。
keyword字符串检测词。
matchType枚举keyword=子串匹配;phrase=词边界匹配。可选值:keyword子串匹配phrase词边界匹配
replacement字符串替换词。为空表示仅提醒。
note字符串备注。
enabled布尔是否启用。
library枚举所属规则库。general 库对所有产品线生效。可选值:general通用规则库creator短视频规则库duanju短剧规则库touliu投放规则库
createdAt字符串创建时间(ISO 8601)。
updatedAt字符串最后修改时间(ISO 8601)。
total数字规则总数。

示例

bash
curl "https://www.byerisk.com/api/v1/custom-rules" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "object": "list",
    "data": [
      {
        "id": "string",
        "object": "custom_rule",
        "keyword": "竞品品牌名",
        "matchType": "keyword",
        "replacement": "友商",
        "note": "string",
        "enabled": true,
        "library": "general",
        "createdAt": "string",
        "updatedAt": "string"
      }
    ],
    "total": 2
  }
}
PATCH/v1/custom-rules/{id}

修改自定义违禁词

只更新传了的字段。规则库(library)创建后不可改 —— 要换库请删除后重建。

路径参数

字段类型说明
id必填字符串

请求体

字段类型说明
keyword字符串要检测的词。(长度 0–100)
replacement字符串替换词。传 null 清空。(长度 0–100)
note字符串备注。传 null 清空。(长度 0–200)
enabled布尔是否启用。

响应200

字段类型说明
id字符串规则 id。
object字符串对象类型。
keyword字符串检测词。
matchType枚举keyword=子串匹配;phrase=词边界匹配。可选值:keyword子串匹配phrase词边界匹配
replacement字符串替换词。为空表示仅提醒。
note字符串备注。
enabled布尔是否启用。
library枚举所属规则库。general 库对所有产品线生效。可选值:general通用规则库creator短视频规则库duanju短剧规则库touliu投放规则库
createdAt字符串创建时间(ISO 8601)。
updatedAt字符串最后修改时间(ISO 8601)。
可能的错误
404规则不存在或不属于当前租户

示例

bash
curl -X PATCH https://www.byerisk.com/api/v1/custom-rules/{id} \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "keyword": "string",
    "replacement": "string",
    "note": "string",
    "enabled": false
  }'
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "custom_rule",
    "keyword": "竞品品牌名",
    "matchType": "keyword",
    "replacement": "友商",
    "note": "string",
    "enabled": true,
    "library": "general",
    "createdAt": "string",
    "updatedAt": "string"
  }
}
DELETE/v1/custom-rules/{id}

删除自定义违禁词

物理删除,不可恢复。

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串被删除记录的 id。
object字符串对象类型。
deleted布尔恒为 true。
可能的错误
404规则不存在或不属于当前租户

示例

bash
curl -X DELETE https://www.byerisk.com/api/v1/custom-rules/{id} \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "text_check",
    "deleted": true
  }
}
POST/v1/custom-rules/bulk-import

批量导入违禁词

单次最多 2000 条。幂等友好:批内重复与库中已存在的词会被跳过而不是报错,

响应里分别给出 imported / skippedDuplicate / rejectedQuota 三个计数。

超出套餐配额的部分会被拒收(rejectedQuota),已接受的部分照常写入。

请求体

字段类型说明
library枚举规则库,决定这条词在哪些检测里生效: - general — 通用库(默认),短视频/短剧/投放全部检测都查 - creator — 仅短视频检测命中 - duanju — 仅短剧检测命中 - touliu — 仅投放检测命中可选值:general通用规则库creator短视频规则库duanju短剧规则库touliu投放规则库默认 general
items必填数组<对象>要导入的词条,单次上限 2000 条。批内重复、库里已存在的会被自动跳过(在响应里分别计数),不会报错。
keyword必填字符串要检测的词。(长度 0–100)
replacement字符串替换词。(长度 0–100)
note字符串备注。(长度 0–200)

响应201

字段类型说明
object字符串对象类型。
total数字本次提交的词条总数。
imported数字实际写入的条数。
skippedDuplicate数字因批内重复或库中已存在而跳过的条数。
rejectedQuota数字因超出套餐配额而被拒收的条数。

示例

bash
curl -X POST https://www.byerisk.com/api/v1/custom-rules/bulk-import \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "library": "general",
    "items": [
      {
        "keyword": "string",
        "replacement": "string",
        "note": "string"
      }
    ]
  }'
json — 响应
{
  "success": true,
  "data": {
    "object": "custom_rule_import_result",
    "total": 100,
    "imported": 95,
    "skippedDuplicate": 3,
    "rejectedQuota": 2
  }
}
GET/v1/custom-rules/quota

查词库配额

返回已用条数与套餐上限。批量导入前建议先查一次,避免超额部分被拒。

响应200

字段类型说明
object字符串对象类型。
used数字已用条数。
limit数字当前套餐的词库上限。免费版为 0。
isPaid布尔当前是否为付费订阅。

示例

bash
curl "https://www.byerisk.com/api/v1/custom-rules/quota" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "object": "custom_rule_quota",
    "used": 12,
    "limit": 500,
    "isPaid": true
  }
}
GET/v1/custom-rules/settings

查总开关状态

关闭时所有自定义词都不参与检测(数据保留)。

响应200

字段类型说明
object字符串对象类型。
enabled布尔租户级总开关。关闭时所有自定义词都不参与检测(数据保留)。

示例

bash
curl "https://www.byerisk.com/api/v1/custom-rules/settings" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "object": "custom_rule_settings",
    "enabled": true
  }
}
PATCH/v1/custom-rules/settings

切换总开关

一键停用/启用全部自定义词。与每条规则自身的 enabled 正交:总开关关掉时,逐条的 enabled 不生效。

请求体

字段类型说明
enabled必填布尔租户级总开关。关闭后所有自定义词都不参与检测(数据保留),与每条规则的 enabled 正交。

响应200

字段类型说明
object字符串对象类型。
enabled布尔租户级总开关。关闭时所有自定义词都不参与检测(数据保留)。

示例

bash
curl -X PATCH https://www.byerisk.com/api/v1/custom-rules/settings \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": false
  }'
json — 响应
{
  "success": true,
  "data": {
    "object": "custom_rule_settings",
    "enabled": true
  }
}

素材包批量检测

POST/v1/batches

提交素材包批量检测

一次提交多条文案 + 多张图片 + 多个视频,统一跑检测并聚合结论。

文案 ≤10 条、图片 ≤20 张、视频 ≤10 个,且总项数有上限。

立即返回 id,各子项在后台并行检测。轮询 GET /v1/batches/{id} 看进度:

progress.done / progress.total 是完成度,全部完成后 result 给出整包结论(PASS / REJECT)。

每个子项都带 checkId,可以拿去调对应的单项检测接口取完整明细。

计费:按各子项单价分别计费(文案按条、图片按张、视频按秒)。余额不足会在提交时整单拒绝,不会留半成品。

请求体

字段类型说明
name必填字符串素材包名称。(长度 0–60)
productVertical必填枚举产品线。素材包最常用于投放(touliu)。可选值:creator短视频duanju短剧touliu投放
platform必填枚举发布平台。可选值:douyin抖音kuaishou快手xiaohongshu小红书shipinhao视频号bilibiliB 站hongguo红果短剧
industryVertical必填枚举行业垂类。可选值:general通用(不限行业)beauty美妆护肤ecommerce电商直播finance金融财经health医疗健康food保健食品slimming减肥瘦身
texts数组<字符串>待检测文案,最多 10 条,每条 10–5000 字。
images数组<对象>待检测图片,最多 20 张。
url必填字符串公网可访问的图片地址。
name必填字符串图片名称,用于在结果里对应。
size必填数字图片大小(字节)。(最小 1)
width数字宽度(像素)。
height数字高度(像素)。
videos数组<对象>待检测视频,最多 10 个。
url必填字符串公网可访问的视频地址。
name必填字符串视频名称,用于在结果里对应。
size必填数字视频大小(MB)。提交时会校验是否与实际文件相符。(最小 0.01)
duration必填数字视频时长(秒)。计费依据,检测完成后会与实际时长对账,申报偏短会补扣差额。(最小 1)
width数字宽度(像素)。
height数字高度(像素)。

响应201

字段类型说明
id字符串本次检测的 id,用于轮询结果。
object字符串对象类型。
status字符串当前状态。刚提交时为 processing。
可能的错误
400素材包为空,或超出单次项数上限
402积分不足以覆盖整包成本
403素材包批量是企业版专属能力

示例

bash
curl -X POST https://www.byerisk.com/api/v1/batches \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "618 大促投放素材包",
    "productVertical": "creator",
    "platform": "douyin",
    "industryVertical": "general",
    "texts": [
      "string"
    ],
    "images": [
      {
        "url": "string",
        "name": "string",
        "size": 0,
        "width": 0,
        "height": 0
      }
    ],
    "videos": [
      {
        "url": "string",
        "name": "string",
        "size": 0,
        "duration": 0,
        "width": 0,
        "height": 0
      }
    ]
  }'
json — 响应
{
  "success": true,
  "data": {
    "id": "cms8xhc5x0006sp59vrks7zkf",
    "object": "text_check",
    "status": "processing"
  }
}
GET/v1/batches

素材包列表

按创建时间倒序分页返回,含各包的进度与结论。

查询参数

字段类型说明
page字符串页码,从 1 开始。默认 1
pageSize字符串每页条数,上限 50。默认 20
productVertical枚举按产品线过滤。不传 = 全部。可选值:creator短视频duanju短剧touliu投放

响应200

字段类型说明
object字符串对象类型,恒为 list。
page数字当前页码。
pageSize数字每页条数。
total数字符合条件的总条数。
hasMore布尔是否还有下一页。
data数组<对象>本页数据。
id字符串素材包 id。
object字符串对象类型。
name字符串素材包名称。
status字符串整包状态。
counts对象各类型子项数量。
text数字文案子项数。
image数字图片子项数。
video数字视频子项数。
progress对象进度。
total数字子项总数。
done数字已完成的子项数。
percent数字完成百分比(0–100)。
result字符串整包结论。
summary对象整包各档位计数。
strict数字必须修改(STRICT)的风险条数。
soft数字影响推流(SOFT)的风险条数。
custom数字自定义词库命中条数。不计入 riskLevel。
semantic数字语义风险复核标签数(定位不到具体位置的整体提示)。
finishedAt字符串完成时间(ISO 8601)。
createdAt字符串创建时间(ISO 8601)。

示例

bash
curl "https://www.byerisk.com/api/v1/batches" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "object": "list",
    "page": 1,
    "pageSize": 20,
    "total": 514,
    "hasMore": true,
    "data": [
      {
        "id": "string",
        "object": "batch",
        "name": "string",
        "status": "string",
        "counts": {
          "text": 0,
          "image": 0,
          "video": 0
        },
        "progress": {
          "total": 12,
          "done": 9,
          "percent": 75
        },
        "result": "string",
        "summary": {
          "strict": 3,
          "soft": 1,
          "custom": 0,
          "semantic": 2
        },
        "finishedAt": "string",
        "createdAt": "string"
      }
    ]
  }
}
GET/v1/batches/{id}

取素材包进度与结果

每次调用会顺带推进一次子项状态刷新,直接轮询这个接口即可。items[].checkId 可用于取单项完整明细。

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串素材包 id。
object字符串对象类型。
name字符串素材包名称。
status枚举整包状态。可选值:pending排队中processing检测中completed已完成failed失败
productVertical字符串产品线。
platform字符串发布平台。
industryVertical字符串行业垂类。
progress对象进度。
total数字子项总数。
done数字已完成的子项数。
percent数字完成百分比(0–100)。
result枚举整包结论。全部子项完成后才有值,进行中为 null。可选值:PASS通过REJECT不通过
summary对象整包各档位计数。
strict数字必须修改(STRICT)的风险条数。
soft数字影响推流(SOFT)的风险条数。
custom数字自定义词库命中条数。不计入 riskLevel。
semantic数字语义风险复核标签数(定位不到具体位置的整体提示)。
items数组<对象>子项明细。
kind枚举子项类型。可选值:text文案image图片video视频
index数字子项在提交时的顺序下标。
checkId字符串子项对应的单项检测 id。拿它去 /v1/{text,image,video}/checks/{id} 可取完整明细。
status枚举子项状态。可选值:processing检测中completed已完成failed失败
riskLevel枚举子项结论。可选值:PASS通过REVIEW建议修改REJECT必须修改
summary对象子项各档位计数。
strict数字必须修改(STRICT)的风险条数。
soft数字影响推流(SOFT)的风险条数。
custom数字自定义词库命中条数。不计入 riskLevel。
semantic数字语义风险复核标签数(定位不到具体位置的整体提示)。
preview字符串预览:文案截断内容 / 图片或视频地址。
text字符串仅 kind=text:完整文案。
riskCount数字仅 kind=text:原始风险条数。
image对象仅 kind=image。
url字符串图片地址。
title字符串图片名称。
video对象仅 kind=video。
url字符串视频地址。
title字符串视频名称。
durationSeconds数字视频时长(秒)。
labels数组<字符串>仅 kind=image / video:风险标签。
finishedAt字符串完成时间(ISO 8601)。
createdAt字符串创建时间(ISO 8601)。
可能的错误
404素材包不存在或不属于当前租户

示例

bash
curl "https://www.byerisk.com/api/v1/batches/{id}" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "batch",
    "name": "618 大促投放素材包",
    "status": "processing",
    "productVertical": "string",
    "platform": "string",
    "industryVertical": "string",
    "progress": {
      "total": 12,
      "done": 9,
      "percent": 75
    },
    "result": "PASS",
    "summary": {
      "strict": 3,
      "soft": 1,
      "custom": 0,
      "semantic": 2
    },
    "items": [
      {
        "kind": "text",
        "index": 0,
        "checkId": "cms8xhc5x0006sp59vrks7zkf",
        "status": "processing",
        "riskLevel": "PASS",
        "summary": {
          "strict": 3,
          "soft": 1,
          "custom": 0,
          "semantic": 2
        },
        "preview": "string",
        "text": "string",
        "riskCount": 0,
        "image": {
          "url": "string",
          "title": "string"
        },
        "video": {
          "url": "string",
          "title": "string",
          "durationSeconds": 45
        },
        "labels": [
          "string"
        ]
      }
    ],
    "finishedAt": "string",
    "createdAt": "string"
  }
}
DELETE/v1/batches/{id}

删除素材包

软删除素材包及其全部子项检测记录,并异步清理已上传的图片/视频文件。

路径参数

字段类型说明
id必填字符串

响应200

字段类型说明
id字符串被删除记录的 id。
object字符串对象类型。
deleted布尔恒为 true。

示例

bash
curl -X DELETE https://www.byerisk.com/api/v1/batches/{id} \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "id": "string",
    "object": "text_check",
    "deleted": true
  }
}

账户

GET/v1/account

查账户余额与用量

返回积分余额、订阅方案和本月各类检测的调用次数。

接入前建议先调一次确认额度 —— 否则只能靠 402 撞墙才知道余额不够。

credits.total 是可用总额(订阅赠送 + 活动赠送 + 加油包),

credits.expiringSoon 是 7 天内即将过期的部分。

响应200

字段类型说明
object字符串对象类型。
credits对象积分余额构成。
total数字可用积分总额。
subscription数字订阅赠送部分。
activity数字活动赠送部分。
booster数字加油包部分。
expiringSoon对象7 天内即将过期的积分。没有则为 null。
amount数字即将过期的积分数量。
expiresAt字符串最近的过期时间(ISO 8601)。
subscription对象订阅信息。
plan字符串订阅方案。free 表示免费版或订阅已过期。
isPaid布尔是否为有效付费订阅。
usageThisMonth对象本月用量。含网页、小程序、开放 API 所有入口 —— 它们共用同一个额度池。
since字符串统计起点(本自然月 1 日零点,ISO 8601)。
textChecks数字本月文案检测次数。
videoChecks数字本月视频检测次数。
imageChecks数字本月图片检测次数。
batches数字本月素材包次数。

示例

bash
curl "https://www.byerisk.com/api/v1/account" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "object": "account",
    "credits": {
      "total": 14238,
      "subscription": 10000,
      "activity": 238,
      "booster": 4000,
      "expiringSoon": {
        "amount": 500,
        "expiresAt": "string"
      }
    },
    "subscription": {
      "plan": "pro",
      "isPaid": true
    },
    "usageThisMonth": {
      "since": "string",
      "textChecks": 128,
      "videoChecks": 34,
      "imageChecks": 56,
      "batches": 4
    }
  }
}

素材上传

POST/v1/uploads/policy

获取素材直传凭证

只有在你没有公网可访问的素材存储时才需要这个接口。

如果素材已经在你自己的 OSS / COS / CDN 上,直接把 URL 填进检测接口即可,跳过这一步。

返回一份阿里云 OSS POST Policy 直传凭证,用标准表单直传:

bash
curl -X POST "$host" \
  -F "key=$dir<你的文件名>" \
  -F "policy=$policy" \
  -F "OSSAccessKeyId=$accessKeyId" \
  -F "signature=$signature" \
  -F "file=@./demo.mp4"

上传成功后,素材地址为 {cdnHost}/{key},把它填进检测接口的 videoUrl / imageUrl

凭证 5 分钟过期,且只允许写入你租户专属的目录前缀。

请求体

字段类型说明
filename必填字符串要上传的文件名(含扩展名)。
kind必填枚举素材类型,决定大小上限:video 上限 1GB,image 上限 10MB。可选值:video视频image图片

响应201

字段类型说明
object字符串对象类型。
kind枚举素材类型。可选值:video视频image图片
host字符串OSS 直传地址,表单 POST 到这里。
cdnHost字符串上传完成后的访问域名。素材地址 = {cdnHost}/{key}。
dir字符串允许写入的目录前缀。表单里的 key 必须以它开头,否则 OSS 拒收。
policy字符串base64 编码的 policy,作为表单字段 policy 提交。
accessKeyId字符串作为表单字段 OSSAccessKeyId 提交。
signature字符串作为表单字段 signature 提交。
maxSizeBytes数字大小上限(字节)。视频 1GB,图片 10MB。
expiresAt字符串凭证过期时间(ISO 8601),签发后 5 分钟。

示例

bash
curl -X POST https://www.byerisk.com/api/v1/uploads/policy \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "demo.mp4",
    "kind": "video"
  }'
json — 响应
{
  "success": true,
  "data": {
    "object": "upload_policy",
    "kind": "video",
    "host": "https://your-bucket.oss-cn-hangzhou.aliyuncs.com",
    "cdnHost": "https://oss.example.com",
    "dir": "byerisk-oss/your-tenant-id/",
    "policy": "string",
    "accessKeyId": "string",
    "signature": "string",
    "maxSizeBytes": 1073741824,
    "expiresAt": "string"
  }
}

准入资质提醒

POST/v1/qualifications/dismissals

收起提醒(我已具备)

记下「这条资质我已具备,不用再提示」。幂等,重复调用不报错。

只对 dismissable=true 的条目有意义 —— prohibited(禁止准入)没有资质路径,收起也不会生效。

请求体

字段类型说明
dismissKey必填字符串要收起的提醒的 dismissKey,取自 notice 返回的对应条目。(长度 0–200)

响应201

字段类型说明
ok布尔操作是否生效。

示例

bash
curl -X POST https://www.byerisk.com/api/v1/qualifications/dismissals \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "dismissKey": "qualification:医美(医疗美容)"
  }'
json — 响应
{
  "success": true,
  "data": {
    "ok": true
  }
}
GET/v1/qualifications/dismissals

已收起的提醒

返回当前隔离域收起过的 dismissKey 列表。notice 返回的 dismissed 已经叠加过这份状态,通常不必单独调。

响应200

字段类型说明
keys数组<字符串>当前隔离域已收起的 dismissKey 列表。

示例

bash
curl "https://www.byerisk.com/api/v1/qualifications/dismissals" \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "keys": [
      "qualification:医美(医疗美容)"
    ]
  }
}
DELETE/v1/qualifications/dismissals

取消收起

撤销一次「我已具备」,之后这条提醒会重新出现。

查询参数

字段类型说明
key必填字符串

响应200

字段类型说明
ok布尔操作是否生效。
可能的错误
400缺少 key 参数

示例

bash
curl -X DELETE https://www.byerisk.com/api/v1/qualifications/dismissals \
  -H "Authorization: Bearer $BYERISK_API_KEY"
json — 响应
{
  "success": true,
  "data": {
    "ok": true
  }
}
POST/v1/qualifications/notice

取准入资质提醒

按「产品线 / 平台 / 声明行业 / 文案」派生要展示给用户的准入资质提醒,同步返回

两类命中,可信度不同:

- 声明行业industry)命中 —— 高可信,直接返回;matchedBy=vertical

- 文案关键词text)命中 —— 会再过一次语义确认剔除误报(如「无需问诊」不算医疗);matchedBy=keyword

典型接法:提交检测的同时并行调用本接口(派生只依赖你传的这几个字段,不依赖检测结果),

检测结果就绪时提醒已经拿到手,用户侧看不到二次等待。

不扣积分、不影响检测结论。 无命中时 hits 为空数组,此时不要渲染任何提醒。

请求体

字段类型说明
productVertical必填枚举产品线。决定哪些规则参与匹配(如短剧备案只对 duanju 触发)。可选值:creator短视频duanju短剧touliu投放
platform字符串发布平台,如 douyin。部分规则只在特定平台生效;不传则不按平台过滤。
industry枚举用户声明的内容行业。这是高可信信号:命中即直接返回,不过语义确认。 ⚠️ **与检测接口的 industryVertical 不是同一套取值,不要直接复用。** 后者是 7 个规则桶(general/beauty/ecommerce/finance/health/food/slimming), 本字段是更细的行业声明;把检测用的值传进来,医美 / 药品 / 法律 / 招商这些行业永远不会命中。 能命中规则的取值:beautyfinancehealthmedical-beauty(医美)、 drug-health(药品·保健食品)、legalfranchise(招商加盟)、occult(玄学命理)、 educationrecruitrealestateautoalcoholgeneral / other(通用)与 ecommerce / slimming 是合法值但不出提醒。 折算成 industryVertical 的对照表见文档首页「准入资质提醒」。 传枚举之外的值会返回 400 —— 宁可当场报错,也不要静默返回空数组让你读成「这个行业没有资质要求」。可选值:generalotherbeautyecommercefinancehealthslimmingmedical-beautydrug-healthlegalfranchiseocculteducationrecruitrealestateautoalcohol
text字符串文案原文,仅用于关键词扫描,覆盖没有行业选项的长尾(法律 / 招商 / 禁入品等)。 关键词命中会再经一次语义确认剔除误报(如「无需问诊」不算医疗),确认服务不可用时该命中会被丢弃而不是保留。 视频 / 图片检测没有文案,留空即可,此时只按 industry 派生。(长度 0–20000)

响应201

字段类型说明
hits数组<对象>命中的提醒,按「禁入 > 备案 > 报白 > 资质」排序。无命中时为空数组。
id字符串规则 id,稳定不复用。
industryLabel字符串行业 / 类目名称,直接展示给用户。
mechanism枚举准入机制,决定文案与展示分类: - qualification — 需主体资质 - report-white — 需类目报白(带货类目准入) - filing — 需备案号(短剧) - prohibited — 禁止准入,无资质路径,不可收起可选值:qualification需主体资质report-white需类目报白filing需备案号prohibited禁止准入
severity枚举视觉强度,仅控展示,不参与判定。可选值:highnormal常规
requiredCredentials数组<对象>需要具备的证照清单。
name字符串证照 / 认证的精确名称。
who字符串责任主体:机构 / 个人 / 企业。省略表示不限。
note字符串补充说明。
userHint字符串给用户看的一句话说明。
sourceNote字符串规则依据出处。
effectiveFrom字符串规则生效日期。
dismissKey字符串去重 / 收起键,格式 mechanism:industryLabel。传给 dismissals 接口用它。
dismissable布尔是否允许「我已具备,不再提示」。prohibited 恒为 false。
dismissed布尔当前隔离域是否已收起过这一条。dismissable=false 时恒为 false。
matchedBy枚举命中来源,决定前端怎么向用户解释这条提醒: - vertical — 按你传的 industry 命中(依据所选行业) - productVertical — 按产品线命中(如短剧备案) - keyword — 按 text 内容命中,已经过语义确认可选值:vertical按你传的行业命中productVertical按产品线命中keyword按文案内容命中(已过语义确认)

示例

bash
curl -X POST https://www.byerisk.com/api/v1/qualifications/notice \
  -H "Authorization: Bearer $BYERISK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "productVertical": "creator",
    "platform": "douyin",
    "industry": "medical-beauty",
    "text": "string"
  }'
json — 响应
{
  "success": true,
  "data": {
    "hits": [
      {
        "id": "q-medical-beauty",
        "industryLabel": "医美(医疗美容)",
        "mechanism": "qualification",
        "severity": "high",
        "requiredCredentials": [
          {
            "name": null,
            "who": null,
            "note": null
          }
        ],
        "userHint": "医疗美容内容需机构具备《医疗机构执业许可证》…",
        "sourceNote": "《互联网广告管理办法》第八条",
        "effectiveFrom": "2023-05-01",
        "dismissKey": "qualification:医美(医疗美容)",
        "dismissable": true,
        "dismissed": false,
        "matchedBy": "vertical"
      }
    ]
  }
}