接口列表
健康检查
GET
action=ping
探测服务可用性,不需要签名,适合在接入前确认网络与地址是否可达。
返回字段
| 字段 | 类型 | 说明 |
| service |
string |
服务名 |
| version |
string |
程序版本号 |
| time |
string |
服务器当前时间(ISO 8601) |
| db |
string |
数据库状态:ok / error |
| upstream |
string |
回源开关:enabled / disabled |
额度消耗:不扣额度
请求示例
GET /api/index.php?action=ping
企业精确查询
GET / POST
action=company
按企业名称或统一社会信用代码精确查询。查询链路为「本地库 → 回源缓存 → 第三方接口」,命中本地库或缓存时不消耗上游调用。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| keyword |
string |
是 |
企业名称,或 18 位统一社会信用代码(传代码时查询更快更准) |
| type |
string |
否 |
查询类型:name / credit_code / reg_no。留空则由系统按格式自动识别 |
返回字段
| 字段 | 类型 | 说明 |
| name |
string |
企业名称 |
| credit_code |
string |
统一社会信用代码 |
| reg_no |
string |
工商注册号 |
| legal_person |
string |
法定代表人 |
| capital |
string |
注册资本 |
| establish_date |
string |
成立日期(Y-m-d) |
| status |
string |
经营状态,如 存续 / 注销 / 吊销 |
| company_type |
string |
企业类型 |
| industry |
string |
所属行业 |
| reg_authority |
string |
登记机关 |
| address |
string |
注册地址 |
| business_scope |
string |
经营范围 |
| shareholders |
array |
股东列表,元素含 name / type / percent / amount / invest_date |
| persons |
array |
主要人员列表,元素含 name / position |
| branches |
array |
分支机构列表 |
| changes |
array |
工商变更记录列表 |
额度消耗:命中本地库或缓存不扣上游调用;每次成功查询扣 1 次额度
请求示例
GET /api/index.php?action=company&keyword=91310000MA1FL0XXXX
本地库模糊搜索
GET / POST
action=search
在已收录的企业库中做名称 / 信用代码 / 法人的模糊匹配,用于关键词联想与候选列表。不会触发上游调用,不扣额度。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| keyword |
string |
是 |
搜索关键词,至少 2 个字符 |
| limit |
int |
否 |
返回条数,默认 10,上限 50 |
返回字段
| 字段 | 类型 | 说明 |
| total |
int |
本次返回条数 |
| list |
array |
企业摘要列表,元素含 id / name / credit_code / legal_person / status |
额度消耗:不扣额度
请求示例
GET /api/index.php?action=search&keyword=科技&limit=10
企业详情
GET / POST
action=detail
按企业 ID 获取完整档案,含股东、主要人员、分支机构与变更记录。企业 ID 由企业查询或模糊搜索接口返回。
请求参数
返回字段
| 字段 | 类型 | 说明 |
| id |
int |
企业 ID |
| name |
string |
企业名称 |
| credit_code |
string |
统一社会信用代码 |
| shareholders |
array |
股东列表 |
| persons |
array |
主要人员列表 |
| branches |
array |
分支机构列表 |
| changes |
array |
变更记录列表 |
额度消耗:不扣额度
请求示例
GET /api/index.php?action=detail&id=1
额度查询
GET / POST
action=quota
查询当前 Key 的额度总量、已用量、剩余量与 QPS 限制,便于接入方做用量监控。
返回字段
| 字段 | 类型 | 说明 |
| quota_total |
int |
额度总量,-1 表示不限量 |
| quota_used |
int |
已使用次数 |
| quota_left |
int |
剩余次数 |
| qps_limit |
int |
每秒请求上限,0 表示不限 |
| unlimited |
bool |
是否为不限量 Key |
额度消耗:不扣额度
请求示例
GET /api/index.php?action=quota
响应结构
所有接口统一返回三层结构:code 为 0 表示成功,非 0 表示失败并同步设置对应的 HTTP 状态码;data 为业务数据;meta 为本次调用的附加信息。
{
"code": 0,
"msg": "ok",
"data": {
"id": 1024,
"name": "示例科技有限公司",
"credit_code": "91310000MA1FL0XXXX",
"legal_person": "张三",
"status": "存续"
},
"meta": {
"source": "local",
"cost": 1,
"quota_left": 998,
"elapsed_ms": 12
}
}
调用示例
cURL
TS=$(date +%s)\nAK="ak_你的AccessKey"\nSK="你的SecretKey"\nCODE="KXXXXX"\n\nSIGN=$(printf "%s\n%s\n%s" "$TS" "$AK" "$CODE" | openssl dgst -sha256 -hmac "$SK" | awk '{print $2}')\n\ncurl -s "https://your-domain.com/api/index.php?action=company&keyword=91310000MA1FL0XXXX" \\n -H "X-Access-Key: $AK" \\n -H "X-Timestamp: $TS" \\n -H "X-Signature: $SIGN"
PHP
$ak = 'ak_你的AccessKey';\n$sk = '你的SecretKey';\n$code = 'KXXXXX';\n$ts = time();\n\n// 签名串为三行:timestamp\naccess_key\ncode\n$sign = hash_hmac('sha256', $ts . "\n" . $ak . "\n" . $code, $sk);\n\n$ch = curl_init('https://your-domain.com/api/index.php?action=company&keyword=91310000MA1FL0XXXX');\ncurl_setopt_array($ch, [\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_HTTPHEADER => [\n 'X-Access-Key: ' . $ak,\n 'X-Timestamp: ' . $ts,\n 'X-Signature: ' . $sign,\n ],\n]);\n$resp = curl_exec($ch);\ncurl_close($ch);\n\n$data = json_decode($resp, true);\nif ($data['code'] === 0) {\n echo $data['data']['name'];\n} else {\n echo '调用失败: ' . $data['msg'];\n}
Python
import time, hmac, hashlib, urllib.parse, requests\n\nAK = "ak_你的AccessKey"\nSK = "你的SecretKey"\nCODE = "KXXXXX"\nTS = str(int(time.time()))\n\n# 签名串为三行:timestamp\naccess_key\ncode\nsign_str = "{}\n{}\n{}".format(TS, AK, CODE)\nsign = hmac.new(SK.encode(), sign_str.encode(), hashlib.sha256).hexdigest()\n\nurl = "https://your-domain.com/api/index.php?" + urllib.parse.urlencode({\n "action": "company",\n "keyword": "91310000MA1FL0XXXX",\n})\nr = requests.get(url, headers={\n "X-Access-Key": AK,\n "X-Timestamp": TS,\n "X-Signature": sign,\n}, timeout=15)\n\ndata = r.json()\nprint(data["data"]["name"] if data["code"] == 0 else data["msg"])
JavaScript
const crypto = require('crypto');
const AK = 'ak_你的AccessKey';
const SK = '你的SecretKey';
const CODE = 'KXXXXX';
const TS = Math.floor(Date.now() / 1000).toString();
// 签名串为三行:timestamp\naccess_key\ncode
const signStr = `\n\n`;
const sign = crypto.createHmac('sha256', SK).update(signStr).digest('hex');
const url = 'https://your-domain.com/api/index.php?action=company&keyword=91310000MA1FL0XXXX';
const res = await fetch(url, {
headers: {
'X-Access-Key': AK,
'X-Timestamp': TS,
'X-Signature': sign,
},
});
const data = await res.json();
console.log(data.code === 0 ? data.data.name : data.msg);