news 2026/9/27 6:31:40

【2026】企业信息模糊查询 API 实战:名称、注册号、统一社会信用代码、企业类型与法人一次查全

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【2026】企业信息模糊查询 API 实战:名称、注册号、统一社会信用代码、企业类型与法人一次查全

企业信息模糊查询 API 实战:名称、注册号、统一社会信用代码、企业类型与法人一次查全

开票系统里最让人头疼的一步,是让用户把企业名称和税号填对——手打全称容易漏字,复制来的名字带空格,税号抄错一位整张票就得重开。CRM 建档、供应商资质核验、风控 KYC 也是同一个问题:手里只有「重庆可乐家装饰」这么一个模糊的名称片段,却要拿到完整工商登记信息。本文介绍一个企业信息模糊查询接口:一个关键词进去,企业名称、工商注册号、统一社会信用代码、企业类型、成立日期、法定代表人一次返回,并且查不到结果不收费。

  • api.xujian.tech
  • Vxujian_cq

一、为什么企业信息查询值得单独做成接口

自己抓数据或写规则匹配,通常会卡在这几个地方:

难点具体表现
关键词不完整用户只记得「可乐家装饰」几个字,缺地域前缀、缺「有限公司」后缀
入口不统一有的场景只有企业名,有的只有注册号,有的只有 18 位统一社会信用代码
字段口径乱「企业类型」在不同数据源里编码不同,业务侧还要自己翻译
税号不确定三证合一前成立的企业,纳税人识别号与统一社会信用代码可能不一致
批量成本高存量数据几万条,脏关键词占了很大比例,按调用次数付费时很心疼

把这一步收敛成一个接口,价值在于:调用方只需要维护一个X-API-Key和一个关键词,字段口径由接口统一,脏数据不产生费用。

二、接口能力概览

2.1 接口基础信息

项目说明
接口地址https://api.xujian.tech/openapi/enterprise/query
接口编码enterprise.query
请求方式GET(keyword放 Query String)
鉴权方式请求头X-API-Key,不做签名、时间戳或加密
返回格式JSON,Content-Type: application/json;charset=UTF-8
单次费用0.01 元/次
关键词长度2 ~ 50 个字符(建议 4 个字符以上)
最多返回20 条(可用limit收敛)
典型耗时百毫秒 ~ 1 秒级(响应体costMs为本次真实耗时)

2.2 请求参数

请求头:

参数名必填说明
X-API-Key是开发者 API Key,缺失或无效直接返回失败

业务参数:

参数名必填类型示例说明
keyword是String重庆可乐家装饰查询关键词,可以是企业名称片段、工商注册号或统一社会信用代码;长度 2 ~ 50 字符
limit否Integer10期望返回条数,实际取limit与系统上限(20)的较小值

2.3 计费上比较实在的一点

接口是先预鉴权、查到结果后再扣费的两段式流程。下面这些情况直接返回失败,不扣费、不写扣费流水、不累加调用次数:

  • keyword为空、少于 2 个字符或超过 50 个字符;
  • 企业信息查询服务暂时不可用(上游超时或网络异常);
  • 一条都没查到。

也就是说,只有真正返回了至少一条企业信息才计一次费用。做存量数据清洗时,那些拼错的、已经注销的关键词不会白白吃掉预算。

三、返回字段详解

3.1 顶层字段

字段类型说明
codeint0成功,非 0 失败(常见为500)
msgString结果描述,成功为success,失败为具体原因
dataObject业务数据,失败时为null

3.2 data 字段

字段类型示例说明
keywordString重庆可乐家装饰本次实际使用的查询关键词(已去除首尾空格)
totalint1本次返回的企业条数
listArray[…]企业列表,按匹配度排序
apiCodeStringenterprise.query接口编码
apiNameString企业信息模糊查询接口名称
chargeTypeStringPER_CALL计费类型
balanceBigDecimal99.9900调用完成后(已扣费)的账户余额(元)
costMsLong260本次调用耗时(毫秒)

3.3 list[] 企业对象字段

字段类型示例说明
nameString重庆可乐家装饰工程有限公司企业名称(工商登记全称)
regNoString500113014353471工商注册号
creditNoString91500113MAABRA7D0H统一社会信用代码(18 位),开票场景通常作为纳税人识别号使用
typeString0企业类型编码
typeNameString企业企业类型中文名:0 企业 / 4 社团 / 5 律师事务所 / 6 香港公司,未覆盖的编码返回「其他」
startDateString2021-06-02成立日期,格式YYYY-MM-DD
operNameString李伦智法定代表人姓名

两个字段设计上的细节:一是未取到的字段一律返回空字符串而不是null,调用方不必到处判空;二是type与typeName同时返回,既能做程序判断又能直接展示,不用自己维护一张编码字典。

四、调用示例

4.1 curl

curl-s-G"https://api.xujian.tech/openapi/enterprise/query"\--data-urlencode"keyword=重庆可乐家装饰"\-H"X-API-Key: 你的APIKey"

只想要 5 条结果:

curl-s-G"https://api.xujian.tech/openapi/enterprise/query"\--data-urlencode"keyword=重庆可乐家装饰"\--data-urlencode"limit=5"\-H"X-API-Key: 你的APIKey"

4.2 Java(Hutool)

importcn.hutool.http.HttpRequest;importcn.hutool.json.JSONObject;importcn.hutool.json.JSONUtil;publicclassEnterpriseQueryClient{privatestaticfinalStringAPI_URL="https://api.xujian.tech/openapi/enterprise/query";/** * 模糊查询企业信息 * * @param apiKey 开发者 API Key * @param keyword 企业名称片段 / 注册号 / 统一社会信用代码,2 ~ 50 字符 * @return 企业列表;查询失败(含查不到)返回 null,且不扣费 */publicstaticjava.util.List<JSONObject>query(StringapiKey,Stringkeyword){Stringbody=HttpRequest.get(API_URL).form("keyword",keyword).header("X-API-Key",apiKey).timeout(10000).execute().body();JSONObjectjson=JSONUtil.parseObj(body);Integercode=json.getInt("code");if(code==null||code!=0){System.out.println("查询失败(不收费):"+json.getStr("msg"));returnnull;}returnjson.getJSONObject("data").getJSONArray("list").toList(JSONObject.class);}publicstaticvoidmain(String[]args){varlist=query("你的APIKey","重庆可乐家装饰");if(list==null){return;}for(JSONObjectent:list){System.out.printf("%s | %s | %s | %s%n",ent.getStr("name"),ent.getStr("creditNo"),ent.getStr("typeName"),ent.getStr("operName"));}}}

如果项目里没有 Hutool,用 JDK 11+ 自带的 HttpClient 也一样:

HttpRequestrequest=HttpRequest.newBuilder().uri(URI.create("https://api.xujian.tech/openapi/enterprise/query?keyword="+URLEncoder.encode("重庆可乐家装饰",StandardCharsets.UTF_8))).header("X-API-Key",apiKey).timeout(Duration.ofSeconds(15)).GET().build();Stringbody=HttpClient.newHttpClient().send(request,HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)).body();

4.3 Python

importrequestsdefquery_enterprise(api_key:str,keyword:str,limit:int=20):""" 模糊查询企业信息 Args: api_key: 开发者 API Key keyword: 企业名称片段 / 注册号 / 统一社会信用代码 limit: 期望返回条数,最大 20 Returns: list: 成功返回企业列表;失败(含查不到)返回 None,且不扣费 """resp=requests.get("https://api.xujian.tech/openapi/enterprise/query",params={"keyword":keyword,"limit":limit},headers={"X-API-Key":api_key},timeout=15,)result=resp.json()ifresult.get("code")!=0:print("查询失败(不收费):",result.get("msg"))returnNonereturnresult["data"]["list"]if__name__=="__main__":forentinquery_enterprise("你的APIKey","重庆可乐家装饰")or[]:print(ent["name"],ent["creditNo"],ent["startDate"],ent["operName"])

4.4 JavaScript(浏览器 / Node 18+)

constresp=awaitfetch("https://api.xujian.tech/openapi/enterprise/query?keyword="+encodeURIComponent("重庆可乐家装饰"),{headers:{"X-API-Key":API_KEY}});const{code,msg,data}=awaitresp.json();if(code===0){data.list.forEach((ent)=>console.log(ent.name,ent.creditNo,ent.operName));}else{console.warn("查询失败(不收费):",msg);}

五、返回示例

5.1 按企业名称片段查询(单条命中)

{"code":0,"msg":"success","data":{"keyword":"重庆可乐家装饰","total":1,"list":[{"name":"重庆可乐家装饰工程有限公司","regNo":"500113014353471","creditNo":"91500113MAABRA7D0H","type":"0","typeName":"企业","startDate":"2021-06-02","operName":"李伦智"}],"apiCode":"enterprise.query","apiName":"企业信息模糊查询","chargeType":"PER_CALL","balance":99.9900,"costMs":260}}

5.2 按统一社会信用代码查询(多条命中)

{"code":0,"msg":"success","data":{"keyword":"91500113MAABRA7D0H","total":2,"list":[{"name":"重庆可乐家装饰工程有限公司","regNo":"500113014353471","creditNo":"91500113MAABRA7D0H","type":"0","typeName":"企业","startDate":"2021-06-02","operName":"李伦智"},{"name":"重庆某某科技有限公司","regNo":"500113014353472","creditNo":"91500113MAABRA7D1X","type":"0","typeName":"企业","startDate":"2019-11-20","operName":"王某某"}],"apiCode":"enterprise.query","apiName":"企业信息模糊查询","chargeType":"PER_CALL","balance":99.9800,"costMs":310}}

5.3 查不到结果(不收费)

{"code":500,"msg":"未查询到匹配的企业信息,请更换更完整的企业名称 / 注册号 / 统一社会信用代码后重试;本次调用不计费","data":null}

六、典型应用场景

6.1 开票信息自动补全

用户在开票表单里输入几个字,前端实时调用接口、下拉展示候选,选中后自动填全称和税号:

asyncfunctionfillInvoiceForm(keyword){constresp=awaitfetch("https://api.xujian.tech/openapi/enterprise/query?keyword="+encodeURIComponent(keyword),{headers:{"X-API-Key":API_KEY}});const{code,data}=awaitresp.json();if(code!==0||!data.list.length)return[];// 查不到不收费,让用户手填returndata.list.map((ent)=>({label:ent.name,taxNo:ent.creditNo,legalPerson:ent.operName,startDate:ent.startDate,}));}

交互上建议:只做「预填 + 让用户点一下确认」。企业名称相似的情况客观存在,最终选择权留给用户,能避免填错抬头带来的退票。

6.2 存量客户档案批量清洗

几万条客户名录里,企业名称往往是不完整的。建议「本地缓存 + 并发控制 + 查不到即跳过」:

importjsonimportosfromconcurrent.futuresimportThreadPoolExecutor,as_completedfromthreadingimportLock CACHE_FILE="enterprise_cache.json"cache,lock={},Lock()defload_cache():globalcacheifos.path.exists(CACHE_FILE):withopen(CACHE_FILE,encoding="utf-8")asf:cache=json.load(f)defclean_batch(api_key:str,keywords:list[str],workers:int=4):"""批量清洗企业名称:命中缓存直接返回,未命中才调用接口"""load_cache()todo=[kforkinkeywordsifknotincache]print(f"共{len(keywords)}条,需调用接口{len(todo)}条")withThreadPoolExecutor(max_workers=workers)aspool:futures={pool.submit(query_enterprise,api_key,k):kforkintodo}forfuinas_completed(futures):k=futures[fu]withlock:cache[k]=fu.result()or[]# 查不到记为空,下次不再重复调用withlock,open(CACHE_FILE,"w",encoding="utf-8")asf:json.dump(cache,f,ensure_ascii=False)return{k:cache.get(k)forkinkeywords}

由于「查不到不收费」,拼错的关键词不会额外增加成本;加上缓存之后,1 万条名录按 30% 需真实调用估算,费用在几十元量级。

6.3 供应商资质核验与风控 KYC

合作前快速核对统一社会信用代码是否真实、法定代表人是否与工商登记一致,把人工核对的时间从几分钟压到一次请求:

defverify_supplier(api_key:str,name:str,credit_no:str,legal_person:str)->dict:"""核验供应商三要素:名称片段、信用代码、法人姓名"""forentinquery_enterprise(api_key,name)or[]:ifent["creditNo"]==credit_no:return{"match":True,"name":ent["name"],"creditNo":ent["creditNo"],"legalPersonMatch":ent["operName"]==legal_person,"startDate":ent["startDate"],"typeName":ent["typeName"],}return{"match":False}

type字段还能直接做主体筛选,例如只保留type=0(企业)或单独处理5(律师事务所)这类特殊主体。

6.4 CRM 客户建档补全

销售只录入了客户简称,建档时用接口把全称、信用代码、成立日期、法人补全,后续的对账、开票、合同主体校验都有了统一口径,不用再人工去公开渠道一条条查。

七、提升命中率的几条实践建议

  1. 关键词尽量 4 个字符以上。太短会返回大量不相关结果,例如「科技」不如「重庆 科技」或完整名称片段。
  2. 能加地域前缀就加。同名企业很多,「北京 腾讯」这类组合比单独一个词精准得多。
  3. 优先用信用代码精确匹配。手里已经有 18 位统一社会信用代码时,直接把它当keyword传,命中率最高。
  4. 本地做缓存。工商数据变化不频繁,缓存 24 小时以上可以显著降低调用量。
  5. 税号做一次人工核验。三证合一前成立的部分企业,纳税人识别号与统一社会信用代码可能不一致,首次开票前建议确认一次。
  6. 结果入库保留原文。同时保存原始关键词与返回的name、creditNo,便于后续回溯和重新核对。

八、错误码与排查

codemsg(示例)处理建议
0success调用成功
500缺少请求头 X-API-Key在请求头补充X-API-Key
500API Key 无效 / API Key 已停用检查 Key 是否正确,或在控制台重新启用
500客户不存在或已停用联系平台确认账号状态
500接口不存在或已停用确认enterprise.query当前是否维护中
500余额不足,请先充值按次计费接口调用前校验余额,余额不足不扣费,充值后重试
500keyword 不能为空补充keyword参数,不计费
500keyword 至少需要 2 个字符(建议 4 个字符以上以提高匹配率)使用更完整的企业名称片段,不计费
500keyword 长度不能超过 50 个字符缩短关键词,不计费
500未查询到匹配的企业信息……换用更准确的关键词或信用代码,不计费
500企业信息查询服务暂时不可用(请求上游超时或网络异常)稍后重试,不计费

九、计费与接入

项目说明
单次费用0.01 元/次
计费方式按次计费,调用前校验余额,查询到结果后才扣费
不计费场景关键词为空 / 超长、服务暂时不可用、未查询到任何匹配企业
最多返回20 条,可用limit收敛
关键词长度2 ~ 50 个字符

接入流程:注册开发者账号 → 控制台创建 API Key → 请求头带上X-API-Key即可调用,无需签名或加密。控制台可查看调用量、扣费流水与余额。

十、总结

企业信息查询这类需求,自己维护数据源成本高、更新慢,交给一个专门的接口更划算:一个关键词覆盖企业名称、注册号、统一社会信用代码三种入口,返回的字段口径统一(含企业类型编码与中文名),调用侧只要一个X-API-Key。

几个关键取舍值得留意:

  • 查得计费:只有真正返回了至少一条企业信息才扣费,脏关键词不吃预算;
  • 不返回 null:未取到的字段统一空字符串,调用方少写一堆判空;
  • 类型双字段:type+typeName同时返回,程序判断与界面展示都能直接用;
  • 接口极简:只有一个必填参数keyword、一个X-API-Key请求头,GET 即可调用。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 6:31:23

单页网页制作视频教程避坑指南:图解步骤防XSS注入

单页网页制作视频教程避坑指南:图解步骤防XSS注入 域名解析和服务器配置没搞懂?别慌,很多新手做单页网页时,往往死在上线后的安全漏洞上。 我见过太多项目经理,拿着【单页网页制作视频教程】自学,觉得只要把HTML写好、CSS调好就行。结果网站一上线,后台直接被打穿,数据泄露,甚至被挂马。核心问题就出在…

作者头像 李华
网站建设 2026/9/27 6:31:10

wordpress上传图片缩小图解步骤及优化方案

wordpress上传图片缩小图解步骤及优化方案 备案流程一头雾水?别急,先把图片优化搞明白。很多站长盯着工信部ICP备案系统的进度条发呆,却忽略了网站加载速度的隐形杀手——巨大的原图。今天用图解步骤拆解wordpress上传图片缩小的实操方法,帮你把首页打开时间从5秒压到1.5秒以内。…

作者头像 李华
网站建设 2026/9/27 6:30:25

100m网站空间服务费对比评测:小白建站省钱实操指南

100m网站空间服务费对比评测:小白建站省钱实操指南 自己不会代码想做网站,却总被那些花里胡哨的“套餐”绕晕?别急,今天咱们不聊虚的,直接上干货。很多老板以为买个100M的空间就能万事大吉,结果上线没俩月,网站打不开、排名掉底,一问才知道,那100M的空间服务费里,坑比海还深。为了帮大家避坑,我整理…

作者头像 李华
网站建设 2026/9/27 6:30:08

郑州高端网站建设团队揭秘3种性能优化方案

郑州高端网站建设团队揭秘3种性能优化方案 网站做好了没人访问,这往往是老板们最头疼的坑。很多老板以为只要页面漂亮,客户就会上门,结果上线三个月,后台数据惨淡。问题出在哪?不是设计丑,是网站太卡,打开要五秒,手机加载更慢。搜索引擎直接把你判死刑,用户也等不及直接关掉。这时候, 性能优化…

作者头像 李华
网站建设 2026/9/27 6:30:01

2026最新免费的资料网站搭建避坑指南:域名服务器别乱买

2026最新免费的资料网站搭建避坑指南:域名服务器别乱买 域名解析报错,服务器后台一片红,新手最容易在这里卡死。别急,这行水太深,很多“免费”的坑其实是让你后期掏大钱。2026最新的技术栈已经变了,还在用老一套静态站?那是自寻死路。…

作者头像 李华
网站建设 2026/9/27 6:29:51

西安建设网站的公司简介避坑指南

3年西安建站避坑:官网简介怎么写不翻车?附安全加固指南 网站被黑挂马,后台突然多了个奇怪的登录账号,或者打开首页全是英文乱码和博彩广告,这时候你第一反应是不是想砸电脑?别慌,这种情况我见过太多次了。很多西安的老板找到我们,不是问怎么设计得好看,而是问“怎么选”一家靠谱的公司来救火,顺便把那个写得像流…

作者头像 李华