Sitemap 变化
监控任意网站的 sitemap,每天拿到它新增和下线的页面。
接口
GET
路径/api/v1/sitemap/watches
作用列出监控的域名,带状态、是否免费和最近一次扫描。
POST
路径/api/v1/sitemap/watches
作用添加监控。请求体
{ "domain": "example.com" },重复添加不会报错。DELETE
路径/api/v1/sitemap/watches?domain=
作用停止监控,已有的变化历史保留。
GET
路径/api/v1/sitemap/changes?domain=
作用新增或下线的页面 URL,按日期倒序。
GET
路径/api/v1/sitemap/history?domain=&days=
作用每天的页面数和新增、下线数。
工作方式
- 每个监控的域名每天北京时间 9 点左右抓一次,入口是 robots.txt 里的
Sitemap:声明(没有就用/sitemap.xml)。 - 第一次抓取只记录页面清单,第二天起才报告变化。
- 近 30 天没出现过的页面算新增;连续 7 天没出现的页面算下线。
- 页面总数不到基线的七成时,这一天标记为
suspicious,不判下线;部分 sitemap 文件抓取失败时(complete: false)同样不判下线。 - 只能查自己监控的域名。
www.example.com和example.com是两个站。
请求参数
domain
类型string
必填是
说明你监控的域名。
date
类型string
必填—
说明指定一天,
YYYY-MM-DD(北京时间)。不传就看最近 30 天。change
类型string
必填—
说明
added或removed,不传两种都要。scope
类型string
必填—
说明
primary(默认)不含/de/这类语言前缀下的翻译页;all全部包含。page
类型integer
必填—
说明页码,从 1 开始。
pageSize
类型integer
必填—
说明每页条数,1–200,默认 50。
请求示例
# Watch a domain (crawled daily from tomorrow 09:00 UTC+8)
curl -X POST "https://seo-api.org/api/v1/sitemap/watches" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"example.com"}'
# Pages it added in the last 30 days
curl "https://seo-api.org/api/v1/sitemap/changes?domain=example.com&change=added" \
-H "Authorization: Bearer YOUR_API_KEY"响应示例
items 每行是一条 URL 变化:snapshotDate、change、url、section(一级目录)和 locale;total 是符合条件的总条数。
{
"ok": true,
"data": {
"items": [
{
"snapshotDate": "2026-10-29",
"domain": "example.com",
"change": "added",
"url": "https://example.com/tools/new-tool",
"section": "tools",
"locale": null
}
],
"total": 1,
"page": 1,
"pageSize": 50
}
}计费
查询不扣积分。监控的前 3 个域名(按添加时间最早的算)免费;超出的每个域名,每天扫描成功扣 2 积分。建基线的那天和扫描失败的日子不扣。积分不够时超出的域名会暂停,余额够扣一天后自动恢复。
错误码
SEO_API.MISSING_API_KEY
HTTP401
含义没有 Authorization 头,也没有 x-api-key 头。
SEO_API.INVALID_API_KEY
HTTP401
含义key 不存在或已被撤销。
SEO_API.INVALID_DOMAIN
HTTP400
含义缺少 domain 参数,或者它不是域名(IP 会被拒绝)。
BILLING.INSUFFICIENT_CREDITS
HTTP402
含义账号积分用完了。24 小时内的重复查询仍然可用。
SYSTEM.INTERNAL_SERVER_ERROR
HTTP500
含义我们这边出了问题,请退避后重试。
通过 MCP 调用
工具 list_sitemap_watches、add_sitemap_watch、remove_sitemap_watch、get_sitemap_changes 和 get_sitemap_history,参数与 REST 一致。
{
"name": "get_sitemap_changes",
"arguments": {
"domain": "example.com",
"change": "added"
}
}通过命令行调用
npx @seo-api/cli sitemap add example.com
npx @seo-api/cli sitemap list
npx @seo-api/cli sitemap changes example.com --added