ICP 备案查询 API
最后更新: 2026-10-19
GET /api/v2/icp/query?domain={domain}
返回在中国大陆备案的域名信息。接口地址、响应格式与限流为各接口通用,见 API 文档。
| 参数 | 位置 | 说明 |
|---|---|---|
domain |
query | 待查询的域名或 URL。会自动去掉首尾空白、协议、userinfo、路径、查询、端口与结尾点;不支持 IP 地址。IDN 可传 Unicode 或 punycode。 |
查询前会先提取注册域:www.baidu.com 会变成 baidu.com,a.b.example.com.cn 会变成 example.com.cn。后缀会按工信部可备案名单(171 个后缀)校验:支持 .com、.cn、.net、.top、.xyz、.中国、.公司 等;.org、.io、.us 等未获批后缀会返回 api.param.domain.suffix_unsupported。
示例:
curl "https://tcp.lc/api/v2/icp/query?domain=baidu.com"
响应 data 字段:
| 字段 | 说明 |
|---|---|
domain |
实际查询的注册域;IDN 以 Unicode 返回。 |
suffix |
用于校验的顶级后缀,如 .com、.中国;example.com.cn 的后缀为 .cn。 |
filed |
是否查询到至少一条备案记录。 |
records |
备案记录数组;filed 为 false 时为空。 |
source |
primary(优先数据源)或 fallback(备用数据源)。 |
fetchedAt |
从数据源获取数据的 ISO 8601 时间;命中缓存时保持首次获取时间。 |
cached |
是否由服务端缓存返回。 |
每条记录包含:
| 字段 | 说明 |
|---|---|
domain |
该条记录对应的域名。 |
mainLicence |
主体备案号。 |
serviceLicence |
网站备案号。 |
unitName |
主办单位名称。 |
natureName |
单位性质,如 企业、个人,通常为中文。 |
contentType |
服务前置审批项,可能为空。 |
limitAccess |
是否限制接入,可能为空。 |
siteName |
网站名称;数据源提供时才有,否则为 null。 |
updatedAt |
备案系统中的审核 / 更新时间。 |
示例:
{
"code": 200,
"msg": "ok",
"data": {
"domain": "baidu.com",
"suffix": ".com",
"filed": true,
"records": [
{
"domain": "baidu.com",
"mainLicence": "京ICP证030173号",
"serviceLicence": "京ICP证030173号-1",
"unitName": "北京百度网讯科技有限公司",
"natureName": "企业",
"contentType": "",
"limitAccess": "",
"siteName": null,
"updatedAt": "2019-05-16 16:06:21"
}
],
"source": "primary",
"fetchedAt": "2026-10-19T04:12:00.000Z",
"cached": false
}
}
未查询到备案不算错误:仍返回 code: 200,filed 为 false,records 为空数组:
{
"code": 200,
"msg": "ok",
"data": {
"domain": "example.com",
"suffix": ".com",
"filed": false,
"records": [],
"source": "primary",
"fetchedAt": "2026-10-19T04:12:00.000Z",
"cached": false
}
}
错误
失败时 code 为 -1000,msg 为稳定标识,data.args 可能携带细节。
msg |
含义 |
|---|---|
api.param.domain.missing |
没有传 domain 参数。 |
api.param.domain.invalid |
输入无法解析为域名;data.args.name 为原始输入。 |
api.param.domain.ip_unsupported |
不支持 IP 地址。 |
api.param.domain.suffix_unsupported |
后缀不在工信部可备案名单中;data.args.suffix 为对应后缀,如 .org。 |
api.rate.limitedDaily |
今日配额已用完,响应带 Retry-After 头。 |
api.upstream.icp.error |
两个数据源都不可用、超时,或返回结构异常。 |
api.server.internal |
服务端或配置异常。 |
示例:
{
"code": -1000,
"msg": "api.param.domain.suffix_unsupported",
"data": {
"args": {
"suffix": ".org"
}
}
}
说明
filed: false表示没有查到记录。域名可能尚未备案、注册在境外,或备案已注销。- 支持中文 IDN 域名。优先数据源不可用时,IDN 查询可能返回
api.upstream.icp.error,而不是可能错误的filed: false,因为备用数据源无法可靠解析中文域名。 - 备案数据变化较慢,但不是实时数据。可用
fetchedAt与工信部备案系统核验。
限流与缓存
按客户端 IP,每天 20 次实际查询。命中缓存不消耗配额;每日额度按 UTC+8 零点重置。额度用完时返回 api.rate.limitedDaily,并带 Retry-After 响应头(秒)。
已备案结果缓存 7 天,未备案结果缓存 24 小时。接口响应本身带 Cache-Control: no-store,缓存发生在服务端;可通过 cached 判断本次是否命中缓存。