☰
企业全景信息查询 API:工商照面 33 项、股东出资、变更与社保一次查全
2026/10/7 15:14:16 网站建设 项目流程

企业全景信息查询 API:工商照面 33 项、股东出资、变更与社保一次查全

做供应商准入、客户尽职调查、授信风控时,需要的信息往往不止「这家公司存不存在」:经营状态是否正常、注册资本与实缴、股东结构与出资明细、历史上改过什么、参保人数有没有异常——这些信息分散在工商公示的不同板块里,逐个去查要调好几个接口、拼好几套字段。

enterprise.detail把四个维度合并成一次查询:工商照面 33 项 + 股东及认缴 / 实缴出资 + 工商变更记录 + 分年度社保参保,一次 GET 请求全部返回,并且查不到该企业不收费。

接口速览

关键事实说明
接口地址https://api.xujian.tech/openapi/enterprise/detail
接口编码enterprise.detail
请求方式GET(keyword放 Query String)
鉴权方式请求头X-API-Key,不做签名、时间戳或加密
唯一业务参数keyword,企业工商登记全称或统一社会信用代码,去空格后 2 ~ 50 个字符
返回四大块basicInfo/partners/changeRecords/socialSecurity
计费方式按次计费,0.52 元/次,先预鉴权、查到企业后再扣费
不计费场景关键词非法、服务不可用、未查询到该企业
典型耗时通常 1 ~ 3 秒,建议客户端超时至少 15 秒
条数限制无limit、无分页,按上游实际结果完整返回

一、哪些业务需要这一步

场景具体用法
供应商准入一次拿到状态、注册资本、股东与参保规模,判断是否为壳公司
客户尽职调查核对统一社会信用代码与注册地址,配合变更记录看历史沿革
授信与风控用经营状态、吊销 / 注销信息、变更频率做风险打分
企业档案补全CRM 里只有企业名,批量补全信用代码、法人、经营范围
股东穿透从partners拿到股东名单与持股比例,继续向上穿透
合同评审签合同前核对企业名称、法人、经营期限是否异常
招投标资格审核校验经营范围是否覆盖招标内容、状态是否正常
招商与获客按行业代码domain与地区筛选目标企业
贷后监控定期复查状态与变更记录,发现法人 / 股东变动及时预警
企业画像标签用tags(高新企业 / 上市等)与参保人数打标签

二、请求参数

2.1 请求头

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

2.2 查询参数

参数名必填类型示例说明
keyword是String91500113MAABRA7D0H企业工商登记全称或统一社会信用代码;去首尾空白后2 ~ 50 个字符

2.3 关键词怎么填才查得准

  • 优先用统一社会信用代码:18 位,唯一且不会重名,准确率最高。
  • 用名称时必须是登记全称。接口不做模糊匹配,传简称大概率查不到。
  • 拿不准全称时,先用企业信息模糊查询(enterprise.query,0.01 元/次)校正全称,再查本接口,比反复猜更省钱。

三、返回字段

3.1 顶层与 data

字段类型说明
codeint0成功,非 0 失败(统一为500)
msgString成功为success,失败为具体原因
dataObject业务数据,失败时为null

data 字段:

字段类型示例说明
keywordString91500113MAABRA7D0H去首尾空白后的查询关键词
basicInfoObject{…}工商照面 33 项
partnersArray[…]股东及认缴 / 实缴出资明细
changeRecordsArray[…]工商变更记录
socialSecurityArray[…]分年度社保参保信息
apiCodeStringenterprise.detail接口编码
apiNameString企业详细信息综合查询接口名称
chargeTypeStringPER_CALL本次计费方式
balanceBigDecimal99.4800成功结算后的账户余额(元)
costMsLong1860本次调用总耗时(毫秒)

3.2 basicInfo:工商照面 33 项

字段示例含义
name重庆可乐家装饰工程有限公司企业名称
formatName重庆可乐家装饰工程有限公司清洗后的标准名称
creditNo91500113MAABRA7D0H统一社会信用代码
regNo500113014353471企业注册号
orgNo91500113MAABRA7D0H组织机构号
status存续(在营、开业、在册)工商公示经营状态原文
newStatus存续清洗后状态:存续 / 注销 / 吊销 / 撤销 / 迁出 / 设立中 / 清算中 / 停业 / 其他 / 歇业 / 责令关闭
operName李伦智法定代表人姓名
title法定代表人代表人职务
operTypePP个人,C公司
registCapi100 万人民币注册资本
actualCapi-实缴资本
currencyUnitCNY货币单位
startDate2021-06-02成立日期
termStart2021-06-02营业开始日期
termEnd-营业结束日期;-表示长期
endDate-注销日期
checkDate2021-06-02最近一次核准日期
revokeDate-吊销日期
revokeReason-吊销原因
logoutReason-注销原因
econKind有限责任公司企业类型
econKindCode1100企业类型代码
typeNew0101大陆企业 /02社会组织 /03机关及事业单位 /04港澳台及国外 /05律所及其他
categoryNew01156010115601企业 /0115602个体 /0115603农民专业合作社
domainD4511国民经济行业四级代码
address重庆市巴南区……注册地址
belongOrg重庆市巴南区市场监督管理局登记机关
districtCode500110所属行政区划代码
scope许可项目:住宅室内装饰装修……完整经营范围
tags[]企业标签:1 新三板 / 6 主板上市 / 9 香港上市 / 17 高新企业 / 40 暂停上市 / 41 终止上市
historyNames[]历史名称
fenname-企业英文名

3.3 partners[]:股东与出资

字段示例含义
name李伦智股东名称
stockType自然人股东股东类型
identifyType-证件类型;-表示未公示
identifyNo-证件号码;-表示未公示
stockPercent1.0持股比例,小数形式(1.0= 100%)
totalRealCapi-实缴出资总额
totalShouldCapi100 万人民币认缴出资总额
startDate2021-06-02出资 / 首次认缴日期
shouldCapiItems[{date, capi, type}]认缴明细
realCapiItems[]实缴明细

shouldCapiItems[]/realCapiItems[]元素:date(出资日期)、capi(金额,如100 万人民币)、type(出资方式,如货币)。

3.4 changeRecords[]:工商变更

字段示例含义
changeItem章程备案变更事项
changeDate2021-07-15变更日期
beforeContent-变更前内容
afterContent同意启用新章程变更后内容
tag非历史信息非历史信息/历史信息
type章程备案变更章程备案 / 注册资金 / 住所 / 股东股权 / 人员 / 地址 / 经营范围 / 其他 变更

3.5 socialSecurity[]:分年度社保参保

字段示例含义
reportYear2024年报所属年份
reportDate2025-03-18年报公示日期
name重庆可乐家装饰工程有限公司企业名称
dwJeDisplay/bqJeDisplay/dwJsDisplay企业选择不公示缴费基数 / 实际缴费 / 累计欠缴是否公示
insuranceNum3人城镇职工基本养老保险参保人数
basicEndownmentNum3人基本养老保险参保人数
unenploymentNum3人失业保险参保人数
injuryInsuranceNum3人工伤保险参保人数
birthNum/birthInsuranceCount0人生育保险参保人数
basicMedicalAmount/actualMedicalAmount/baseMedicalDownBalance-医疗保险缴费基数 / 实缴 / 欠缴
unenploymentInsurance/actualLostAmount/unenploymentDownBalance-失业保险相关金额
endownmentInsuranceAmount/endownmentBaseAmount/actualEndownmentAmount-养老保险相关金额
injuryInsuranceAmount/actualInjuryAmount/companyInjuryDownBalance-工伤保险相关金额
birthAmount/birthActualAmount-生育保险相关金额

3.6 三个字段口径

  1. -不等于null,也不等于 0。它是工商数据里的「未公示 / 长期 / 无值」占位符,展示时写「—」即可。
  2. 缺失字符串是"",缺失数组是[],不用null表示,解析时按空值兜底即可。
  3. 上游内部id与法定代表人身份哈希operPid不对外返回,不要依赖。

四、调用示例

4.1 curl

curl-s-G"https://api.xujian.tech/openapi/enterprise/detail"\--data-urlencode"keyword=91500113MAABRA7D0H"\-H"X-API-Key: 你的APIKey"

4.2 Java(Hutool)

importcn.hutool.http.HttpRequest;importcn.hutool.json.JSONObject;importcn.hutool.json.JSONUtil;publicclassEnterpriseDetailClient{privatestaticfinalStringAPI_URL="https://api.xujian.tech/openapi/enterprise/detail";/** * 查询企业详细信息 * * @param apiKey 开发者 API Key * @param keyword 企业全称或统一社会信用代码 * @return data 节点;查不到或失败返回 null,且不扣费 */publicstaticJSONObjectdetail(StringapiKey,Stringkeyword){JSONObjectjson=JSONUtil.parseObj(HttpRequest.get(API_URL).header("X-API-Key",apiKey).form("keyword",keyword).timeout(20000).execute().body());if(json.getInt("code")==null||json.getInt("code")!=0){System.out.println("查询失败(不收费):"+json.getStr("msg"));returnnull;}returnjson.getJSONObject("data");}publicstaticvoidmain(String[]args){JSONObjectdata=detail("你的APIKey","91500113MAABRA7D0H");if(data==null){return;}JSONObjectbasic=data.getJSONObject("basicInfo");System.out.printf("%s | %s | 法人 %s | 注册资本 %s | 股东 %d 人%n",basic.getStr("name"),basic.getStr("newStatus"),basic.getStr("operName"),basic.getStr("registCapi"),data.getJSONArray("partners").size());}}

4.3 Python

importrequestsdefenterprise_detail(api_key:str,keyword:str):"""返回 data 节点;查不到或失败返回 None,且不扣费"""resp=requests.get("https://api.xujian.tech/openapi/enterprise/detail",params={"keyword":keyword},headers={"X-API-Key":api_key},timeout=20,)result=resp.json()ifresult.get("code")!=0:print("查询失败(不收费):",result.get("msg"))returnNonereturnresult["data"]if__name__=="__main__":data=enterprise_detail("你的APIKey","91500113MAABRA7D0H")ifdata:print(data["basicInfo"]["name"],data["basicInfo"]["newStatus"])

4.4 JavaScript

asyncfunctionenterpriseDetail(apiKey,keyword){constqs=newURLSearchParams({keyword}).toString();constresp=awaitfetch(`https://api.xujian.tech/openapi/enterprise/detail?${qs}`,{headers:{"X-API-Key":apiKey}});constresult=awaitresp.json();if(result.code!==0){thrownewError(result.msg);}returnresult.data;}

五、返回示例

{"code":0,"msg":"success","data":{"keyword":"91500113MAABRA7D0H","basicInfo":{"name":"重庆可乐家装饰工程有限公司","creditNo":"91500113MAABRA7D0H","regNo":"500113014353471","status":"存续(在营、开业、在册)","newStatus":"存续","operName":"李伦智","registCapi":"100 万人民币","actualCapi":"-","startDate":"2021-06-02","termEnd":"-","econKind":"有限责任公司","domain":"D4511","address":"重庆市巴南区龙洲湾街道龙洲大道255号17-1","belongOrg":"重庆市巴南区市场监督管理局","districtCode":"500110","scope":"许可项目:住宅室内装饰装修(依法须经批准的项目,经相关部门批准后方可开展经营活动)","tags":[],"historyNames":[]},"partners":[{"name":"李伦智","stockType":"自然人股东","stockPercent":"1.0","totalShouldCapi":"100 万人民币","shouldCapiItems":[{"date":"2021-06-02","capi":"100 万人民币","type":"货币"}],"realCapiItems":[]}],"changeRecords":[{"changeItem":"章程备案","changeDate":"2021-07-15","beforeContent":"-","afterContent":"同意启用新章程","tag":"非历史信息","type":"章程备案变更"}],"socialSecurity":[{"reportYear":"2024","reportDate":"2025-03-18","insuranceNum":"3人","basicEndownmentNum":"3人","unenploymentNum":"3人","injuryInsuranceNum":"3人","birthNum":"0人"}],"apiCode":"enterprise.detail","apiName":"企业详细信息综合查询","chargeType":"PER_CALL","balance":99.4800,"costMs":1860}}

查不到(不收费):

{"code":500,"msg":"未查询到该企业的详细信息,请核对企业名称或更换统一社会信用代码后重试;本次调用不计费","data":null}

六、可直接复用的两段代码

6.1 准入初筛:状态 + 规模 + 股东

defpre_check(data:dict)->dict:"""返回一份可读的准入结论"""basic=data["basicInfo"]partners=data.get("partners")or[]social=data.get("socialSecurity")or[]latest=social[0]ifsocialelse{}return{"name":basic.get("name"),"credit_no":basic.get("creditNo"),"status":basic.get("newStatus"),"alive":basic.get("newStatus")=="存续","regist_capi":basic.get("registCapi"),"legal_person":basic.get("operName"),"partner_count":len(partners),"staff_hint":latest.get("insuranceNum"),"risk":[]ifbasic.get("newStatus")=="存续"else["经营状态异常"],}

6.2 变更记录里找敏感变动

SENSITIVE={"股东股权变更","注册资金变更","人员变更","住所变更","经营范围变更"}defsensitive_changes(data:dict):"""挑出需要人工复核的变更事项"""rows=data.get("changeRecords")or[]return[rforrinrowsifr.get("type")inSENSITIVE]

七、实践建议

  1. 关键词优先用信用代码。18 位信用代码唯一,名称要精确匹配全称,模糊查不到。
  2. 超时至少 15 秒。接口要向多个维度取数,典型 1 ~ 3 秒,costMs会告诉你真实耗时。
  3. 本地缓存结果。工商数据变动不频繁,按企业缓存 30 ~ 90 天,重复查询直接读库,省下 0.52 元/次。
  4. -不要当空值处理成 0。termEnd = -是「长期」,转成 0 会算出「已过期」的错误结论。
  5. stockPercent是小数。1.0表示 100%,展示时乘 100。
  6. 参保人数只作参考。很多企业选择不公示金额字段,参保人数是「3人」这种带单位的文本。
  7. 复用creditNo做主键。企业名称可能变更(historyNames会记录),信用代码不会变。
  8. 查不到不收费,可以放心重试。但重试前先确认名称是否准确,避免无效调用堆积。

八、错误码与排查

codemsg是否扣费
0success扣费(查到企业后结算)
500缺少请求头 X-API-Key否
500API Key 无效 / API Key 已停用否
500客户不存在或已停用否
500接口不存在或已停用否
500余额不足,请先充值否
500keyword 不能为空否
500keyword 至少需要 2 个字符(建议使用企业全称或统一社会信用代码)否
500keyword 长度不能超过 50 个字符否
500数据服务未启用 / 数据服务未配置(上游凭证缺失)否
500未查询到该企业的详细信息,请核对企业名称或更换统一社会信用代码后重试;本次调用不计费否
500数据服务暂时不可用(请求上游超时或网络异常),本次调用不计费否

结算判定很简单:只有basicInfo.name有值时才扣费。其余所有失败分支都不产生费用。

九、计费与接入

项目说明
单价0.52 元/次
计费方式按次计费;preAuthorize预校验 → 查询 → 查到企业后settle扣费
不计费场景关键词为空 / 少于 2 字符 / 超过 50 字符、服务未启用或凭证缺失、上游超时或返回异常、未查询到该企业、Key / 客户 / 接口校验失败、余额不足
返回条数无limit、无分页,四个维度按上游实际结果完整返回

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

服务站点:api.xujian.tech(纯文本域名,不做跳转)。接口试用、数据与充值咨询可在控制台提交工单,或联系 Vxujian_cq。

十、小结

一个关键词换回四个维度的结构化数据,省掉的是「查四遍、拼四套、口径还要自己对齐」的工作量。几个取舍值得记住:

  • 查不到不收费:先校正名称再查,试错成本是 0;
  • -是业务占位:表示未公示 / 长期 / 无值,别当成 0 参与计算;
  • 信用代码是最佳主键:名称会变,代码不变;
  • 缓存价值高:工商数据低频变动,缓存一次能省下不少调用成本。

同系列还有:enterprise.query(0.01 元/次,名称模糊查询,适合先校正全称)、enterprise.profile(0.2 元/次,只要 33 项照面)、enterprise.abnormal与enterprise.dishonesty(各 0.2 元/次,经营异常与失信记录)、enterprise.report(0.3 元/次,多年度工商年报)。按需组合,比一律查最贵的接口更划算。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询