集成前,请先查看实时服务运行状况和文档中说明的失败响应。
被这些公司的人员使用
集成前可见的信任信号
透明文档、已认证请求和清晰的可靠性信息,让你在上线前更容易评估 DomScan。
OpenAPI、Swagger、Postman、CLI、SDK 和 MCP 文档链接一键可达。
认证端点使用 API 密钥,并在调用前清楚显示积分成本。
从每月 10,000 积分开始,只有在用量增长时再升级。
这个 API 可以帮你交付什么
把此页面当作生产集成简报:端点、示例、响应结构,以及把 DomScan 接入产品所需的工作流组件。
把域名检查、DNS 情报、风险信号或数据增强嵌入注册、搜索和内部工具。
用计划任务、告警和可复现的调查步骤替代重复的人工查询。
使用可预测字段、已记录的状态码和积分成本,而不是抓取供应商页面。
通过 OpenAPI、SDK、Postman 或 MCP 为代理、仪表板、SOAR 剧本和 CRM 提供数据。
集成流程
从第一次请求到可重复生产使用的简单路径。
使用文档中的请求头发送 API 密钥,并在服务之间保持请求一致。
从 curl 和 HTTP 示例开始,再把参数映射到你的应用代码。
使用状态码、积分成本和响应字段构建重试、日志和告警。
开发者工具包
从此页面跳转到机器可读文档、请求集合、SDK 或代理工具。
参数和响应映射
在把端点接入客户端前,快速查看输入、输出字段和状态码。
参数
响应示例
HTTP 状态码
API 端点
/v1/webhooks
/v1/webhooks
/v1/webhooks/:webhook_id
/v1/webhooks/:webhook_id/rotate-secret
/v1/webhooks/:webhook_id/test
/v1/webhooks/:webhook_id/deliveries
/v1/webhooks/:webhook_id
验证每一条提醒
请使用收到时的原始请求正文,不要做任何改动。请求头中包含一个签名,密钥轮换期间则包含两个。只要有任意一个签名匹配,就接受该请求。
import crypto from 'node:crypto';
// rawBody: the request body exactly as received, before JSON parsing.
function verifyDomScanWebhook(rawBody, headers, secret) {
const timestamp = headers['x-domscan-timestamp'];
const header = headers['x-domscan-signature'] || '';
if (!/^\d{10}$/.test(timestamp || '')) return false;
if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false;
const expected = Buffer.from('sha256=' + crypto
.createHmac('sha256', secret)
.update(timestamp + '.' + rawBody)
.digest('hex'));
// One entry normally; two during a secret rotation (new secret first).
return header.split(',').some((entry) => {
const candidate = Buffer.from(entry.trim());
return candidate.length === expected.length &&
crypto.timingSafeEqual(candidate, expected);
});
}
以 24 小时宽限期轮换密钥
轮换会返回一次新密钥。宽限期结束前,每条提醒先用新密钥、再用旧密钥签名,因此仍在使用旧密钥的接收端可以继续正常工作。
X-DomScan-Signature: sha256=<new>,sha256=<previous>
集成前可见的信任信号
透明文档、已认证请求和清晰的可靠性信息,让你在上线前更容易评估 DomScan。
集成前,请先查看实时服务运行状况和文档中说明的失败响应。
OpenAPI、Swagger、Postman、CLI、SDK 和 MCP 文档链接一键可达。
认证端点使用 API 密钥,并在调用前清楚显示积分成本。
从每月 10,000 积分开始,只有在用量增长时再升级。
主要功能
每条提醒都附带对时间戳和原始正文计算的 HMAC-SHA256 签名,接收端可据此拒绝伪造和重放的请求。
可让每个端点订阅可注册、到期、状态、DNS、证书、注册信息、托管、技术、邮件安全或品牌威胁提醒,也可以订阅全部。
投递失败后会以递增的间隔重试,最多 6 次。每次重试都使用相同的事件 ID,因此您可以忽略已处理过的提醒。
只有当端点返回 2xx 状态码时,一条提醒才会收取 2 积分。投递失败会退款,测试事件和密钥轮换均免费。
持续失败的端点会被暂停,您会收到一封邮件,内含端点主机和最后一次错误。修复后重新启用,失败次数将从零开始计算。
可随时轮换签名密钥。24 小时内每条提醒都会同时使用新旧两个密钥签名,因此您可以切换接收端,不会漏掉任何提醒。
请求示例
curl -X POST "https://domscan.net/v1/webhooks" \
-H "X-API-Key: $DOMSCAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://hooks.example.com/domscan","events":["domain.expiring_30","domain.available","domain.dns_changed"]}'
curl -X POST "https://domscan.net/v1/webhooks/whe_3f1c0a9b8e7d6c5b4a39281706f5e4d3/rotate-secret" \
-H "X-API-Key: $DOMSCAN_API_KEY"
curl -X PATCH "https://domscan.net/v1/webhooks/whe_3f1c0a9b8e7d6c5b4a39281706f5e4d3" \
-H "X-API-Key: $DOMSCAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled":true}'
响应示例
{
"endpoint": {
"id": "whe_3f1c0a9b8e7d6c5b4a39281706f5e4d3",
"url": "https://hooks.example.com/domscan",
"events": ["domain.available", "domain.expiring_30", "domain.dns_changed"],
"status": "active",
"disabled_reason": null,
"consecutive_failures": 0,
"secret_hint": "9c2e",
"previous_secret_expires_at": null
},
"secret": "whsec_..."
}
常见问题解答
关注列表中的可注册、到期和状态变更,针对 DNS、证书、注册信息、托管、技术和邮件安全的域名变更监控,以及您所监控品牌的新注册相似域名。
使用端点密钥,对 X-DomScan-Timestamp 的值、一个英文句点和原始正文依次拼接后的内容计算 HMAC-SHA256,以恒定时间方式与 X-DomScan-Signature 中的每一项比较,并拒绝时间戳超过 5 分钟的请求。
每条以 2xx 响应成功投递的提醒收取 2 积分。创建端点、测试事件和轮换密钥均免费,为投递失败预留的积分会退还。
每条提醒会在约 6 小时内最多重试 6 次。连续失败 15 次后,端点会被暂停,您会收到一封邮件。在监控设置或通过 API 重新启用后即可恢复投递。
调用轮换密钥接口,或在监控设置中操作。新密钥只显示一次,24 小时内每条提醒都带有两个密钥的签名,因此在您部署变更期间,接收端可接受其中任意一个。
例如超时之后,端点可能已经处理了提醒,重试仍会送达。每次重试都会在正文和 X-DomScan-Event-Id 中重复相同的事件 ID,因此请保存已处理的 ID 并跳过重复项。
相关工具和资源
HTTP 状态码
我们明确列出了客户端应处理的 HTTP 状态码,帮助你区分成功响应、认证问题、额度不足、速率限制、数据不存在以及上游故障。
请求成功
资源已成功创建。
参数无效
API 密钥或会话缺失或无效。
我们明确列出了客户端应处理的 HTTP 状态码,帮助你区分成功响应、认证问题、额度不足、速率限制、数据不存在以及上游故障。
超出速率限制

