监控与自动化

面向域名监控与品牌保护的 Webhook 提醒 API 接口

将关注列表、域名变更和品牌监控提醒以带签名的 JSON 发送到您自己的 HTTPS 端点。可为每个端点选择接收的事件,用 HMAC-SHA256 验证每个请求,只需为端点成功接收的提醒付费。

分类 监控与自动化
API 端点 7
主要功能 6
常见问题解答 6

被这些公司的人员使用

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse

集成前可见的信任信号

透明文档、已认证请求和清晰的可靠性信息,让你在上线前更容易评估 DomScan。

实时 服务状态

集成前,请先查看实时服务运行状况和文档中说明的失败响应。

OpenAPI API 资料

OpenAPI、Swagger、Postman、CLI、SDK 和 MCP 文档链接一键可达。

API 密钥 受保护访问

认证端点使用 API 密钥,并在调用前清楚显示积分成本。

10,000 免费额度

从每月 10,000 积分开始,只有在用量增长时再升级。

这个 API 可以帮你交付什么

把此页面当作生产集成简报:端点、示例、响应结构,以及把 DomScan 接入产品所需的工作流组件。

产品工作流

把域名检查、DNS 情报、风险信号或数据增强嵌入注册、搜索和内部工具。

分析自动化

用计划任务、告警和可复现的调查步骤替代重复的人工查询。

干净的 JSON 数据

使用可预测字段、已记录的状态码和积分成本,而不是抓取供应商页面。

AI 和运维工具

通过 OpenAPI、SDK、Postman 或 MCP 为代理、仪表板、SOAR 剧本和 CRM 提供数据。

集成流程

从第一次请求到可重复生产使用的简单路径。

1
一次认证

使用文档中的请求头发送 API 密钥,并在服务之间保持请求一致。

2
用示例查询

从 curl 和 HTTP 示例开始,再把参数映射到你的应用代码。

3
运行和监控

使用状态码、积分成本和响应字段构建重试、日志和告警。

开发者工具包

从此页面跳转到机器可读文档、请求集合、SDK 或代理工具。

参数和响应映射

在把端点接入客户端前,快速查看输入、输出字段和状态码。

请求参数

参数

urldescriptioneventsenabledwebhook_idlimit
响应字段

响应示例

endpointendpoint.idendpoint.urlendpoint.eventsendpoint.statusendpoint.disabled_reasonendpoint.consecutive_failuresendpoint.secret_hintendpoint.previous_secret_expires_atsecret
状态覆盖

HTTP 状态码

200201400401409429

API 端点

POST /v1/webhooks
积分: 0身份验证: 需要身份验证
urldescriptionevents
GET /v1/webhooks
积分: 0身份验证: 需要身份验证
PATCH /v1/webhooks/:webhook_id
积分: 0身份验证: 需要身份验证
enabledeventsdescription
POST /v1/webhooks/:webhook_id/rotate-secret
积分: 0身份验证: 需要身份验证
POST /v1/webhooks/:webhook_id/test
积分: 0身份验证: 需要身份验证
GET /v1/webhooks/:webhook_id/deliveries
积分: 0身份验证: 需要身份验证
limit
DELETE /v1/webhooks/:webhook_id
积分: 0身份验证: 需要身份验证

验证每一条提醒

请使用收到时的原始请求正文,不要做任何改动。请求头中包含一个签名,密钥轮换期间则包含两个。只要有任意一个签名匹配,就接受该请求。

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 API 资料

OpenAPI、Swagger、Postman、CLI、SDK 和 MCP 文档链接一键可达。

API 密钥 受保护访问

认证端点使用 API 密钥,并在调用前清楚显示积分成本。

10,000 免费额度

从每月 10,000 积分开始,只有在用量增长时再升级。

主要功能

带签名的请求

每条提醒都附带对时间戳和原始正文计算的 HMAC-SHA256 签名,接收端可据此拒绝伪造和重放的请求。

自选事件

可让每个端点订阅可注册、到期、状态、DNS、证书、注册信息、托管、技术、邮件安全或品牌威胁提醒,也可以订阅全部。

重试时事件 ID 保持不变

投递失败后会以递增的间隔重试,最多 6 次。每次重试都使用相同的事件 ID,因此您可以忽略已处理过的提醒。

只为成功投递的提醒付费

只有当端点返回 2xx 状态码时,一条提醒才会收取 2 积分。投递失败会退款,测试事件和密钥轮换均免费。

自动暂停并发送邮件

持续失败的端点会被暂停,您会收到一封邮件,内含端点主机和最后一次错误。修复后重新启用,失败次数将从零开始计算。

无停机的密钥轮换

可随时轮换签名密钥。24 小时内每条提醒都会同时使用新旧两个密钥签名,因此您可以切换接收端,不会漏掉任何提醒。

请求示例

POST /v1/webhooks bash
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"]}'
POST /v1/webhooks/:webhook_id/rotate-secret bash
curl -X POST "https://domscan.net/v1/webhooks/whe_3f1c0a9b8e7d6c5b4a39281706f5e4d3/rotate-secret" \
  -H "X-API-Key: $DOMSCAN_API_KEY"
PATCH /v1/webhooks/:webhook_id bash
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}'

响应示例

200 OK json
{
  "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_..."
}

常见问题解答

哪些提醒可以发送到 Webhook?

关注列表中的可注册、到期和状态变更,针对 DNS、证书、注册信息、托管、技术和邮件安全的域名变更监控,以及您所监控品牌的新注册相似域名。

如何验证请求确实来自 DomScan?

使用端点密钥,对 X-DomScan-Timestamp 的值、一个英文句点和原始正文依次拼接后的内容计算 HMAC-SHA256,以恒定时间方式与 X-DomScan-Signature 中的每一项比较,并拒绝时间戳超过 5 分钟的请求。

Webhook 提醒如何收费?

每条以 2xx 响应成功投递的提醒收取 2 积分。创建端点、测试事件和轮换密钥均免费,为投递失败预留的积分会退还。

端点宕机时会怎样?

每条提醒会在约 6 小时内最多重试 6 次。连续失败 15 次后,端点会被暂停,您会收到一封邮件。在监控设置或通过 API 重新启用后即可恢复投递。

如何安全地轮换签名密钥?

调用轮换密钥接口,或在监控设置中操作。新密钥只显示一次,24 小时内每条提醒都带有两个密钥的签名,因此在您部署变更期间,接收端可接受其中任意一个。

同一条提醒会收到两次吗?

例如超时之后,端点可能已经处理了提醒,重试仍会送达。每次重试都会在正文和 X-DomScan-Event-Id 中重复相同的事件 ID,因此请保存已处理的 ID 并跳过重复项。

相关工具和资源

HTTP 状态码

我们明确列出了客户端应处理的 HTTP 状态码,帮助你区分成功响应、认证问题、额度不足、速率限制、数据不存在以及上游故障。

成功 200

请求成功

已创建 201

资源已成功创建。

请求错误 400

参数无效

未授权 401

API 密钥或会话缺失或无效。

HTTP 409 409

我们明确列出了客户端应处理的 HTTP 状态码,帮助你区分成功响应、认证问题、额度不足、速率限制、数据不存在以及上游故障。

请求过多 429

超出速率限制

添加您的第一个 Webhook 端点