Skip to content
Back to skills

Kaiyu Qichacha Fetcher

ASecurity

通过企查查 OpenAPI 查询中国企业的工商、股东、司法、经营、知识产权、招投标、舆情等数据。当用户说"查 XX 公司"、"看 XX 的工商/股东/有没有官司/有没有被执行/有没有商标专利/有没有经营异常"、"XX 是不是空壳"、"XX 法人是谁"、"XX 注册资本"、"查企查查"、"查企业"等任何企业信息查询需求时,使用此技能。已注册 45 个商业接口(用户需自行在企查查后台逐个申请开通)。零依赖纯 Python,跨平台 Mac/Windows/Linux。

  • 221 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added September 4, 2026
securitypythonbashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 13 files and shows the line behind each finding

Scanned September 4, 2026

npx -y skills add NeverSight/skills_feed --skill kaiyu-qichacha-fetcher --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Kaiyu Qichacha Fetcher?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Kaiyu Qichacha Fetcher
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/neversight-kaiyu-qichacha-fetcher/badge)](https://www.skillsdirectory.com/skills/neversight-kaiyu-qichacha-fetcher)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: kaiyu-qichacha-fetcher
description: 通过企查查 OpenAPI 查询中国企业的工商、股东、司法、经营、知识产权、招投标、舆情等数据。当用户说"查 XX 公司"、"看 XX 的工商/股东/有没有官司/有没有被执行/有没有商标专利/有没有经营异常"、"XX 是不是空壳"、"XX 法人是谁"、"XX 注册资本"、"查企查查"、"查企业"等任何企业信息查询需求时,使用此技能。已注册 45 个商业接口(用户需自行在企查查后台逐个申请开通)。零依赖纯 Python,跨平台 Mac/Windows/Linux。
---

# 企查查 OpenAPI 数据查询

企查查 API 工具。**用户用自然语言提需求,AI 在后台调脚本——用户不需要打命令**。

## 你(AI)的工作方式

用户说的话 → 你识别意图 → 你调脚本 → 你把结果用人话回给用户。

| 用户说的 | 你该做的 |
|---|---|
| "查一下腾讯的工商信息" | 调 410(工商基本);如果用户后续问"详细一点" 再叠 735 |
| "腾讯的法人是谁 / 注册资本多少" | 调 410,从 `OperName` / `RegistCapi` 字段答 |
| "腾讯股东有哪些" | 调 731 |
| "腾讯有没有官司 / 被起诉 / 被执行" | 司法风险全套:740(失信)+741(被执行)+887(裁判文书)+888(开庭)+889(立案),按风险层级答 |
| "腾讯经营异常吗 / 有没有处罚 / 有没有质押" | 经营风险:739(经营异常)+748(严重违法)+865(行政处罚)+751/753(股权质押)|
| "腾讯有什么商标 / 专利" | 231(商标)+ 514(专利)|
| "腾讯最近有什么新闻 / 融资" | 701(舆情)+ 950(融资)|
| "XX 是不是真的(合同对方核验)" | 855(二要素)或 856(三要素,需要法人)|
| "XX 这个公司是空壳吗" | 410 工商 + 884 对外投资 + 732 主要人员,综合判断 |

**自然语言里没说明企业全称时**:先用 886(模糊搜索,0.10 元)拿到完整工商全称,再调具体接口。别让用户打全称。

**金额提醒原则**(默认推荐口径,可调整):单次调用超 1 元的接口(735/731/213/271/884/758/988/1024/980/958)多个叠用前,先口头说"这几项加起来约 X 元,跑吗";2 元以下随便跑不用问。

## 资源位置

| 资源 | Mac / Linux | Windows |
|---|---|---|
| Skill 目录 | `~/.claude/skills/kaiyu-qichacha-fetcher/` | `%USERPROFILE%\.claude\skills\kaiyu-qichacha-fetcher\` |
| 凭证文件 | `~/.config/qichacha/credentials.json` | `%USERPROFILE%\.config\qichacha\credentials.json` |
| 缓存目录 | `~/.cache/qichacha/<MD5(企业名)[:16]>/` | `%USERPROFILE%\.cache\qichacha\<MD5(企业名)[:16]>\` |

- 接口注册表: `scripts/api_registry.py`(45 个接口,默认 `opened: False`)
- 官方文档: https://openapi.qcc.com/dataApi
- 控制台: https://openapi.qcc.com/console
- 首次配置: 见 `SETUP.md`(用 `python setup.py` 一键完成)
- 排错手册: `TROUBLESHOOTING.md`

## setup.py 管理命令(用户管理 skill 状态的入口)

**用户不需要手编辑任何文件**。所有维护操作都通过这些命令完成——当用户问相关问题时,**你(AI)应主动跑这些命令**:

| 用户说的 | 你跑的命令 |
|---|---|
| "帮我配置 / 第一次用 / 还没设置" | `python3 setup.py`(交互式录入凭证) |
| "我到底装到哪一步了 / 查一下状态 / 能用了吗" | `python3 setup.py diagnose` |
| "帮我标记 410/740/... 已经开通了" | `python3 setup.py mark-opened 410 740 ...` |
| "取消 XX 的开通标记 / 我退订了 XX 接口" | `python3 setup.py mark-closed 410` |
| "看下我开了哪些接口" | `python3 setup.py list-opened` |
| "测一下凭证对不对 / 跑一次真实请求验证" | `python3 setup.py probe`(扣 ¥0.1) |
| "重新来 / 重置 / 清掉重新配" | `python3 setup.py reset`(需确认) |

`mark-opened` 会修改 `scripts/api_registry.py` 中的 `opened` 字段;写入前会做 Python 语法校验,失败拒绝写入。**用户不应该手编辑这个文件**——出问题都用 `mark-opened` / `mark-closed`。

## 你怎么调脚本(内部实现)

**Python 内联**(推荐,避免子进程开销):

```python
import os, sys
# 用 expanduser 自动展开 ~ / %USERPROFILE%,跨平台
sys.path.insert(0, os.path.expanduser("~/.claude/skills/kaiyu-qichacha-fetcher/scripts"))
from client import fetch, check_account, QccError

r = fetch("410", keyword="腾讯科技(深圳)有限公司")
if r.ok:
    data = r.data  # 工商详情字典
    # 用 r.data 里的字段写自然语言回复
elif r.status == "":
    pass  # QccError 已经被抛
else:
    # r.ok==False 但没抛——通常是无结果
    pass
```

**Bash / CMD 调 CLI**(备用,输出 JSON 自己解析):

```bash
# Mac/Linux
python3 ~/.claude/skills/kaiyu-qichacha-fetcher/scripts/qcc.py fetch 410 "腾讯科技(深圳)有限公司"
python3 ~/.claude/skills/kaiyu-qichacha-fetcher/scripts/qcc.py check-account
python3 ~/.claude/skills/kaiyu-qichacha-fetcher/scripts/qcc.py list --opened --md
```

```cmd
:: Windows
python %USERPROFILE%\.claude\skills\kaiyu-qichacha-fetcher\scripts\qcc.py fetch 410 "腾讯科技(深圳)有限公司"
python %USERPROFILE%\.claude\skills\kaiyu-qichacha-fetcher\scripts\qcc.py check-account
```

## 自然语言意图 → ApiCode 映射

按"用户最可能怎么说"组织。多个接口可叠加。

> **注意**:用户必须先在企查查后台 https://openapi.qcc.com/dataApi 逐个申请开通对应接口,开通后跑 `python setup.py mark-opened <code1> <code2> ...` 告诉 skill(**不要让用户手编辑 `api_registry.py`**)。未开通的接口调用会返回 `not_opened` 错误。

### 工商基础(最高频)

| 意图关键词 | ApiCode | 单价 | 该字段在哪 |
|---|---|---|---|
| "工商 / 注册 / 注册资本 / 法人 / 经营范围 / 成立时间" | 410 | 0.20 | `RegistCapi / OperName / Scope / StartDate` |
| "工商详情 / 完整工商 / 实缴 / 参保人数 / 国标行业" | 735 | 2.00 | 比 410 多 30+ 字段 |
| "股东 / 出资 / 持股" | 731 | 2.00 | `Result.[].StockName/StockType/StockPercent` |
| "高管 / 董事 / 监事 / 法人 / 主要人员" | 732 | 0.50 | `Result.[].Name/Job` |
| "分公司 / 分支机构 / 子公司(注:子公司是 884)" | 733 | 0.50 | `Result.[].Name/Address` |
| "变更 / 改过名 / 法人变过吗 / 经营范围改过吗" | 734 | 1.00 | `Result.[].ProjectName/BeforeContent/AfterContent` |
| "年报 / 历年营收 / 历年员工数" | 213 | 1.00 | 按年份列表 |
| "开票 / 税号" | 271 | 1.00 | `TaxpayerNo / RegisterAddress` |
| "二要素 / 名称统一社会信用代码对吗" | 855 | 0.10 | `Result == "一致"` |
| "三要素 / 名称+信用代码+法人对吗" | 856 | 0.20 | 同上 |
| "模糊搜 / 不知道全称 / XX 这家公司" | 886 | 0.10 | `Result.[].Name/KeyNo` |

### 关联族谱

| 意图关键词 | ApiCode | 单价 |
|---|---|---|
| "对外投资 / 投了哪些公司 / 子公司(投资关系)" | 884 | 1.00 |

实控人、股权穿透、企业图谱、控制企业、受益所有人——**这些都是企查查面议类接口**,需联系企查查商务(400-088-8275)单独开通。

### 司法风险(信贷尽调必查)

| 意图关键词 | ApiCode | 单价 |
|---|---|---|
| "失信被执行 / 老赖" | 740 | 0.30 |
| "被执行" | 741 | 0.30 |
| "限高 / 限制高消费" | 742 | 0.50 |
| "股权冻结" | 752 | 0.50 |
| "破产 / 重整" | 761 | 0.50 |
| "判决 / 裁判文书 / 打过官司 / 被起诉" | 887 | 0.30 |
| "开庭" | 888 | 0.50 |
| "立案" | 889 | 0.50 |
| "终本 / 执行不能" | 758 | 1.00 |
| "限制出境" | 988 | 1.00 |
| "法院公告" | 882 | 0.50 |
| "司法拍卖" | 744 | 0.50 |

**推荐预设——信贷尽调司法包**:用户说"看 XX 司法风险"时,**默认跑 740+741+742+752+887+888+889**(共约 3.0 元,前提是这些接口已开通),高级别尽调再加 761+758+988+882+744。

### 经营风险

| 意图关键词 | ApiCode | 单价 |
|---|---|---|
| "经营异常 / 列入异常名录" | 739 | 0.50 |
| "严重违法 / 黑名单" | 748 | 0.50 |
| "行政处罚" | 865 | 0.50 |
| "动产抵押" | 747 | 0.50 |
| "土地抵押" | 745 | 0.50 |
| "股权出质" | 751 | 0.50 |
| "股权质押" | 753 | 0.50 |
| "税收违法" | 756 | 0.50 |
| "欠税" | 757 | 0.50 |
| "对外担保" | 1024 | 1.00 |
| "清算 / 注销中" | 980 | 1.00 |

### 知识产权

| 意图关键词 | ApiCode | 单价 |
|---|---|---|
| "商标" | 231 | 0.30 |
| "专利" | 514 | 0.30 |
| "软著 / 著作权" | 233 | 0.50 |
| "网站备案 / ICP" | 515 | 0.50 |

### 经营信息

| 意图关键词 | ApiCode | 单价 |
|---|---|---|
| "招投标 / 中标" | 958 | 1.00 |
| "资质 / 证书" | 255 | 0.30 |
| "税务信用 / 纳税评级" | 691 | 0.50 |
| "行政许可 / 资质审批" | 892 | 0.50 |

### 企业发展

| 意图关键词 | ApiCode | 单价 |
|---|---|---|
| "新闻 / 舆情 / 最近报道 / 出过事吗" | 701 | 0.50 |
| "融资 / 估值 / 投资人" | 950 | 0.50 |

## 高阶用法:一键批量尽调取数

`scripts/duediligence.py` 是批量编排器——输入企业名,自动跑全部"已开通"的接口,输出 markdown 原料包 + JSON 原始数据 + 调用日志。

```python
import os, sys
sys.path.insert(0, os.path.expanduser("~/.claude/skills/kaiyu-qichacha-fetcher/scripts"))
from duediligence import run_full_dd, render_markdown

report = run_full_dd("腾讯科技(深圳)有限公司")
print(render_markdown(report))
# 或直接 CLI:python3 ~/.claude/skills/kaiyu-qichacha-fetcher/scripts/duediligence.py "企业名" --out ./output
```

**成本预估**(接口全开通的话):
- 全套约 ¥27(45 个接口,886 + 410 在 build_context 阶段已调)
- 缓存命中后第二次跑:约 ¥0
- 单家全套耗时:约 50 秒

**风险信号汇总口径**(写在 `_build_risk_summary()` 里):

- **🔴 极高**:740 失信 / 988 限制出境 / 748 严重违法 / 980 清算(任一命中)
- **🟠 高**:741 被执行 / 742 限高 / 752 股权冻结 / 761 破产 / 758 终本 / 739 经营异常
- **🟡 中**:865 行政处罚 / 756 税收违法 / 757 欠税 / 745/747 抵押 / 751/753 股权质押 / 1024 对外担保;**或** 887 裁判文书"被告 ≥3 且 被告比 ≥70%"
- **⚪ 信号**:882 法院公告 / 744 司法拍卖 / 888 开庭 / 889 立案(提示性,不直接定级)

> 这是一个"信贷/担保业务"视角的保守口径。其他业务场景(投前、合规筛查、供应商背调)可能需要自定义评级表——直接改 `_build_risk_summary()` 即可。

## 签名规则(已封装到 client.py,不用手算)

- Header `Token` = `MD5(appkey + Timespan + SecretKey).upper()`(32 位大写)
- Header `Timespan` = Unix 秒
- Query `key` = appkey
- 全部 GET

## 缓存策略

- 默认开启;TTL 按数据时效分级(工商 30-60 天 / 司法 7 天 / 舆情 3 天)
- 同一企业的同一接口在 TTL 内**第二次起免费**
- 用户说"重新查 / 拉最新 / 不要缓存"时用 `use_cache=False`
- 负结果(关键词无匹配)**不写缓存**,避免长期缓存"没查到"

## 错误归类(`QccError.kind`)

捕获到 QccError 后**优先用 `e.friendly()`** ——会返回带中文 label + 行动建议的字符串,可直接转给用户:

```python
try:
    r = fetch("741", keyword="腾讯")
except QccError as e:
    user_message = e.friendly()  # 例如:
    # [接口未开通] [741 被执行人核查] Status=403 接口未开通
    # → 这个接口在企查查后台还没申请开通。去 https://openapi.qcc.com/dataApi/741
    #   点'申请开通',通过后跑 `python setup.py mark-opened 741`。
```

| kind | 含义 | 友好建议方向 |
|---|---|---|
| `creds` | 凭证错/签名错/必填参数缺 | 跑 `python setup.py` 重新录入 |
| `not_opened` | ApiCode 在 appkey 下没开通 | 申请开通后跑 `python setup.py mark-opened <code>` |
| `no_result` | 关键词无匹配(业务正常) | 用 886 模糊搜索拿全称;或用统一社会信用代码 |
| `rate_limit` | 限流 | 等 1-2 分钟;高频联系企查查商务提升 QPS |
| `network` | DNS/超时/代理 | 详见 TROUBLESHOOTING.md |
| `unknown` | 其他 | 把 `r.raw` 贴给用户 + 引导看 TROUBLESHOOTING.md |

## 注意事项

1. **企业全称要精确**:模糊匹配在不同接口表现不同,先用 886 拿 `KeyNo` 或完整全称再调其他接口
2. **统一社会信用代码兜底**:企业名含全角括号等特殊字符匹配不稳时,用信用代码代替 `keyword`
3. **缓存哈希不可逆**:目录名是 MD5 截断,反查不到企业名;按企业清缓存得自己记录映射
4. **面议类接口**:实控人/股权穿透/企业图谱/受益所有人/财税数据等需联系 400-088-8275 单独议价
5. **接口开通是逐个申请的**:企查查不是开通就能用全部 45 个接口——每个接口要在 openapi.qcc.com/dataApi/{code} 点"申请开通",可能涉及二次审核或加价。开通后用 `python setup.py mark-opened <code>` 告诉 skill
6. **跨平台**:脚本零第三方依赖,拷贝整个 skill 目录 + 凭证文件即可在 Mac/Windows/Linux 跑

Files in this skill

  • SKILL.md13 KB
  • description_ar.txt1.2 KB
  • description_cn.txt601 B
  • description_de.txt908 B
  • description_en.txt552 B
  • description_es.txt866 B
  • description_fr.txt981 B
  • description_it.txt872 B
  • description_ja.txt891 B
  • description_ko.txt759 B
  • description_ru.txt1.5 KB
  • description_tw.txt598 B
  • stats.json69 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in security →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.