作品分类名称字典查询
接口编号
BQ02分类知识产权服务 / 作品著作权状态启用1、接口说明
作品分类名称字典查询。输入作品分类名称关键字(不填则返回全部分类),接口在本地作品分类字典中按分类名称模糊匹配,返回分类名称、版权号缩写字母、分类名词解释、常用应用场景描述及支持的文件类型。本接口为本地字典查询,不依赖任何外部服务,响应稳定、毫秒级。
2、接口信息
| 请求地址 | https://www.muzhiyun.com/api/bqCR_dict_catname.do |
| 请求方式 | POST |
| 请求格式 | application/json; charset=utf-8 |
| 响应格式 | application/json; charset=utf-8 |
| 超时时间 | 60 秒(建议) |
| 计费方式 | 免费 |
本接口免费,调用不计费、不扣款。
3、鉴权说明
所有请求必须携带下列三个公共参数,缺一不可。它们既是请求参数,也参与签名。
| 参数名 | 说明 | 类型 | 必填 | 示例 | 备注 |
|---|---|---|---|---|---|
appid | 应用ID | String(32) | 是 | muzhiyun | 由服务商提供;亦支持系统名下权利人的用户编号,即本系统的登陆账户。如果传入,APPKEY应当是账户登陆密码的16位小写md5字符串 |
sendtime | 请求时间戳 | Int | 是 | 1790784000 | Unix 时间戳(秒);与服务器时间相差过大视为过期请求 |
sign | 签名 | String(32) | 是 | FC265408A1BE19712C7AD03881975D5F | 签名值:参与签名的参数按变量名升序拼接后加密,不含本字段 |
签名算法
1) 取本次请求的全部参数(不含 sign 自身); 2) 按参数名 ASCII 升序排序,拼接成 k1=v1&k2=v2&…; 3) 末尾追加 &key=你的AppKey; 4) 对整串做 MD5 后转大写,即得 sign。
调用示例 · 按本接口真实示例值实算一遍
你的 AppKey(仅本地签名用,不随请求发送):
YOUR_APP_KEY1
参与签名的参数(已剔除 sign 自身,按参数名升序)
appid=muzhiyun&keys=美术&sendtime=1792529280
2
末尾追加 &key=你的AppKey
appid=muzhiyun&keys=美术&sendtime=1792529280&key=YOUR_APP_KEY
3
整串做 MD5 后转大写,得到 sign
D49C38FCCAA65B5CDA8683E0DBAF21C4
4
最终请求参数(JSON 包,作为请求 Body 发送)
{
"appid": "muzhiyun",
"keys": "美术",
"sendtime": "1792529280",
"sign": "D49C38FCCAA65B5CDA8683E0DBAF21C4"
}上例 AppKey 写作
YOUR_APP_KEY,请换成你自己的 AppKey 重算 sign —— sign 与 AppKey 绑定,同样的参数换 AppKey 会得到完全不同的 sign。复制本例后,把 YOUR_APP_KEY 替换为你自己的 AppKey,再按 ①②③ 重算 sign 即可直接调用(sendtime 为当前时间戳,300 秒内有效)。排序只按参数名,不看参数值;布尔值按 1/0 参与拼接;数组型参数不参与签名。时间戳要求:
sendtime 为 10 位 Unix 秒级时间戳,与服务器时间相差超过 300 秒 视为过期请求。AppID / AppKey 由开放平台发放,可在「用户管理 → 开发者凭证」中查看。4、请求参数
以下参数通过 Body(application/json) 传递
| 参数名 | 说明 | 类型 | 必填 | 示例 | 备注 |
|---|---|---|---|---|---|
keys | 关键字 | String(32) | 否 | 美术 | 作品分类名称关键字,不填则显示全部;按分类名称模糊匹配(不区分大小写),长度不得超过 32 个字符 |
5、返回结果
接口统一返回 JSON,
ok=1 表示成功、ok=0 表示失败;鉴权或配置类错误同时返回 HTTP 666。| 字段 | 类型 | 说明 |
|---|---|---|
ok | Int | 1=成功,0=失败 |
msg | String | 结果描述 / 失败原因 |
成功响应示例
{
"ok": 2,
"msg": "查询成功,关键字【美术】共计2个分类",
"data": [
{
"id": 90,
"name": "美术作品",
"abbr": "F",
"caption": "指绘画、书法等以线条、色彩或者其他方式构成的有审美意义的平面的造型艺术作品。",
"scene": "油画、水彩画、素描、版画、包装图、效果图、商标标识、漫画等",
"file": "图片、文档"
},
{
"id": 102,
"name": "美术(立体)",
"abbr": "F",
"caption": "包括雕塑、建筑艺术等三维造型艺术作品。",
"scene": "雕塑、陶瓷摆件、木雕、石雕等",
"file": "图片、文档"
}
]
}ok=2 为查询成功。data 各字段:id 省局分类代码(美术=90 / 美术立体=102 / 摄影=93 / 以类似摄制电影的方法创作的作品=95 / 录音制品=98 / 其他=101 / 工程·产品设计图=96 / 录像制品=99 / 建筑=92 / 电影=94 / 地图·示意图=100 / 舞蹈=88 / 戏剧=86 / 模型=97 / 音乐=85 / 文字=83 / 曲艺=87 / 口述=84 / 杂技=89)、name 分类名称、abbr 版权号缩写字母(美术=F / 摄影=G / 以类似摄制电影=I / 录音=S / 其他=L / 工程·产品=J / 录像=V / 建筑=O / 电影=H / 地图·示意=K / 舞蹈=E / 戏剧=C / 模型=P / 音乐=B / 文字=A / 曲艺=D / 口述=M / 杂技=N)、caption 分类词解释、scene 常用应用场景、file 支持的文件类型(图片 / 文档 / 音视频)。不传 keys 返回全部分类,按字典原顺序。
失败响应示例
{
"ok": 0,
"msg": "传入关键字keys字符串长度超限"
}常见失败原因(msg 原文):
- keys 超长(>32 字符) 「传入关键字keys字符串长度超限」
- 字典文件缺失 「版权字典文件未找到,请联系管理员处理」
- 签名校验失败 「签名校验失败」
- 时间戳超时 「时间戳超时,请重新请求」
- 缺少鉴权参数 「缺少必要的参数【appid、sendtime、sign】请详看开发文档」
- 接口已停用 「接口【作品分类名称字典查询】已停用,暂停调用,请联系管理员」
- keys 超长(>32 字符) 「传入关键字keys字符串长度超限」
- 字典文件缺失 「版权字典文件未找到,请联系管理员处理」
- 签名校验失败 「签名校验失败」
- 时间戳超时 「时间戳超时,请重新请求」
- 缺少鉴权参数 「缺少必要的参数【appid、sendtime、sign】请详看开发文档」
- 接口已停用 「接口【作品分类名称字典查询】已停用,暂停调用,请联系管理员」
余额不足 / 无可用套餐
{
"ok": 0,
"msg": "余额不足,且无可用套餐,请充值后重试。"
}接口已停用
{
"ok": 0,
"msg": "接口【作品分类名称字典查询】已停用,暂停调用,请联系管理员。"
}常见错误提示(msg 原文)
缺少必要的参数【appid、sendtime、sign】请详看开发文档。 AppID不存在,请联系产品经理进行业务开通。 sendtime不是10位的数字。 时间戳超时,请重新请求。 签名校验失败。 余额不足,请充值后重试。 接口【XXX】已停用,暂停调用,请联系管理员。
6、调用示例
下面示例自动计算签名(ksort 后 MD5 大写):复制后只需把
你的AppID / 你的AppKey 换成真实凭证即可运行。Python / PHP 为完整可运行版;cURL、JavaScript 展示请求形态。GET 接口请把参数(含 appid/sendtime/sign)拼到 URL 查询串。cURL
curl -X POST "https://www.muzhiyun.com/api/bqCR_dict_catname.do" \ -H "Content-Type: application/json" \ -d '{"appid":"你的AppID", "sendtime":"<当前时间戳>", "sign":"<按签名算法计算>", "appid":"muzhiyun","sendtime":"1790784000","keys":"美术" }'
PHP
<?php $appId = "你的AppID"; // 没有则填 muzhiyun $appKey = "你的AppKey"; $url = "https://www.muzhiyun.com/api/bqCR_dict_catname.do"; $params = [ 'appid' => 'muzhiyun', 'sendtime' => '1790784000', 'keys' => '美术', ]; // 以下三项由代码自动补,无需手填 $params["appid"] = $appId; $params["sendtime"] = (string)time(); ksort($params); $src = ''; foreach($params as $k=>$v) $src .= $k.'='.$v.'&'; $src .= 'key='.$appKey; $params["sign"] = strtoupper(md5($src)); $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode($params, JSON_UNESCAPED_UNICODE), CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, ]); $resp = curl_exec($ch); curl_close($ch); echo $resp;
Python
import time, hashlib, json, urllib.request APP_ID = "你的AppID" # 没有则填 muzhiyun APP_KEY = "你的AppKey" URL = "https://www.muzhiyun.com/api/bqCR_dict_catname.do" params = { "appid": "muzhiyun", "sendtime": "1790784000", "keys": "美术", } params["appid"] = APP_ID params["sendtime"] = str(int(time.time())) params = dict(sorted(params.items())) # 参数名升序 sign_src = "&".join(f"{k}={v}" for k, v in params.items()) + "&key=" + APP_KEY params["sign"] = hashlib.md5(sign_src.encode("utf-8")).hexdigest().upper() req = urllib.request.Request( URL, data=json.dumps(params).encode("utf-8"), headers={"Content-Type": "application/json"}, method="POST", ) print(urllib.request.urlopen(req, timeout=30).read().decode("utf-8"))
JavaScript
const url = "https://www.muzhiyun.com/api/bqCR_dict_catname.do"; const params = { 'appid': 'muzhiyun', 'sendtime': '1790784000', 'keys': '美术', appid: "你的AppID", sendtime: String(Math.floor(Date.now()/1000)), // sign: 按上文「签名算法」在前端算 md5(ksort(k=v&…)&key=AppKey) 后填入 }; fetch(url, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(params), }).then(r => r.json()).then(console.log);
7、注意事项
1、参数 keys 为作品分类名称关键字(选填),不传则返回全部分类;传入则在分类名称上做不区分大小写的模糊匹配(包含即命中)。长度不得超过 32 个字符,超长返回「传入关键字keys字符串长度超限」。
2、返回 ok=2 表示查询成功,data 为匹配到的分类数组(按字典原顺序);data 为空数组表示无匹配分类。
3、data 每条含:id(省局分类代码,如美术=90、文字=83)、name(分类名称)、abbr(版权号缩写字母,如美术=F、文字=A)、caption(分类词解释)、scene(常用应用场景)、file(支持的文件类型,如图片、文档、音视频)。
4、本接口为免费接口,按次调用不计费(余额不足不会拦截),适合作为版权登记类业务的前置字典拉取。
5、鉴权三项(appid / sendtime / sign)为所有开放接口通用必填,签名算法见下方「请求参数」说明。
2、返回 ok=2 表示查询成功,data 为匹配到的分类数组(按字典原顺序);data 为空数组表示无匹配分类。
3、data 每条含:id(省局分类代码,如美术=90、文字=83)、name(分类名称)、abbr(版权号缩写字母,如美术=F、文字=A)、caption(分类词解释)、scene(常用应用场景)、file(支持的文件类型,如图片、文档、音视频)。
4、本接口为免费接口,按次调用不计费(余额不足不会拦截),适合作为版权登记类业务的前置字典拉取。
5、鉴权三项(appid / sendtime / sign)为所有开放接口通用必填,签名算法见下方「请求参数」说明。
拇指云