批量查询企业司法风险,Python + 免费API 半小时搞定
前言
做采购、供应链或者金融风控的朋友,应该都遇到过这个场景:需要定期排查供应商或合作企业是否被列入了被执行人、失信被执行人名单。
和手动查、爬数据比起来,最稳最快的方法还是通过企业数据API来批量查询,把这项工作做成自动化脚本,定时跑一遍,又快又不会遗漏。
我找了一圈企业数据API,大部分服务商要么免费额度给得抠抠搜搜,要么免费版只能查最基础的工商信息,司法风险这类深度数据要付费才能用。相较之下,鲸海数据新用户注册送1000次免费调用,而且额度是全平台所有API通用,不是阉割版,完全可以试试。
下面把实测过程分享给大家,供参考。
一、网站注册与API额度获取
注册流程很简单,网站首页就有入口,手机号验证就行。需要做实名认证,上传个人信息或企业信息,审核比较宽松,基本秒过。
认证完成后后台就能看到1000次免费额度到账,API调用的AppId和ApiKey也在同一个界面,方便查看。
重点说一下这1000次额度,它不是只让你测一个接口,而是全平台所有API都能调。从工商信息、司法风险、知识产权到招投标,上百个细分接口都可以用。对于一个新项目的开发测试来说,这个量完全够用了。
二、司法风险接口实测
额度到手之后,我重点测了一下司法风险相关的接口,这部分是风控场景下最刚需的。下面从数据维度、接口设计和数据准确性三个角度说一下实测感受。
这家API和司法风险相关的数据维度还比较全,被执行人、失信被执行人、限制高消费、裁判文书、法院公告、开庭公告、立案信息全部都有。
市面上很多风控接口喜欢把所有数据塞进一个包里,不仅慢,而且很多字段根本用不上。这家API做得比较专业,数据维度分得很细,而且很多数据都被拆成了列表和详情两个层级,按需取用,可以节省大量冗余请求,响应速度明显更快。
比如说,如果你只需要确认“有没有”失信记录,调用司法信息计数接口就行,只需极低的成本;只有针对有记录的企业,再调用失信被执行人详情接口,就可以避免为用不上的数据买单。
我随机抽了几家有公开司法记录的企业测试了一下,跟官方的数据交叉比对,数据准确度和及时性都OK,可以放心用。
三、Python代码示例:批量查询失信被执行人
下面以「失信被执行人」接口为例,实现批量查询多家企业的失信被执行人记录,输入企业名称列表,输出有失信记录的企业及其案号、立案时间、执行标的等关键信息。
核心代码如下:
import os
import time
import requests
from datetime import datetime
# ---------- 配置 ----------
BASE = os.getenv("JINGHAI_API_BASE", "https://www.kqdaas.com")
APP_ID = os.getenv("JINGHAI_APP_ID")
API_KEY = os.getenv("JINGHAI_API_KEY")
if not APP_ID or not API_KEY:
raise ValueError("请设置 JINGHAI_APP_ID 和 JINGHAI_API_KEY")
HEADERS = {
"X-Jinghai-App-Id": APP_ID,
"X-Jinghai-Api-Key": API_KEY,
"Accept": "application/json",
"Content-Type": "application/json"
}
# ---------- 核心函数 ----------
def query_company(name, tag=0):
"""查询单个企业的失信记录,返回记录列表(空列表表示无数据或异常)"""
url = f"{BASE}/DataService/judicial/breach-of-trust/{name}?queryType=1"
payload = {"tag": tag, "pageIndex": 1, "pageSize": 20}
try:
resp = requests.post(url, headers=HEADERS, json=payload, timeout=10)
data = resp.json()
if data.get("status") != 200:
return []
return data.get("data", {}).get("records", [])
except:
return []
def batch_query(names, tag=0):
"""批量查询并打印结果"""
for name in names:
records = query_company(name, tag)
if not records:
print(f"\n企业:{name} —— 无失信记录")
continue
print(f"\n企业:{name}(共 {len(records)} 条记录)")
for idx, r in enumerate(records, 1):
date_str = datetime.fromtimestamp(r.get("date", 0)).strftime("%Y-%m-%d") if r.get("date") else "未知"
print(f" {idx}. 案号: {r.get('caseNumber', '')}")
print(f" 立案时间: {date_str}")
print(f" 执行标的: {r.get('executionTarget', '无')}")
print(f" 法院: {r.get('court', '')}")
print(f" 履行状态: {r.get('executionStatus', '')}")
time.sleep(0.5) # 避免频率超限
# ---------- 调用示例 ----------
if __name__ == "__main__":
companies = [
"廊坊万盛金属制品有限公司",
"深圳腾讯计算机系统有限公司"
]
batch_query(companies, tag=0) # tag=0 失信,tag=1 历史失信
跑完这段代码,几十家企业的失信情况几分钟就能出结果,再也不用人工一个一个去公开网站查了。
四、总结
用API批量查询企业司法风险,本质上就是把原来靠人工一个个复制粘贴的工作,变成一行代码就能搞定的事。配合定时任务,每周或每月自动跑一遍,所有合作企业的风险动态一目了然,还能省下不少时间精力。
回到这次用的API,鲸海数据的司法风险接口覆盖维度确实比较全,列表和详情分离的设计在实际开发中也很顺手。关键是1000次的免费额度,用来做项目调研或初期开发完全够用了。
有需要的可以直接去领个额度试试!

浙公网安备 33010602011771号