API · CLI · MCP
三种集成面,全部公开、无需凭据:报告 API 返回 JSON,MCP 服务器 把同样的报告暴露为工具,Markdown 协商 让 agent 直接读报告页。错误统一为 RFC 9457 application/problem+json,带稳定的 code 与 resolution。
读取报告
curl "https://madeinred.com/api/v1/report?url=https://example.com/"
返回最新一次已完成的报告;没有则 404(不会触发新扫描)。字段:score、score_label、gate(硬门槛)、score_breakdown、findings[](id / layer / result / credit / details / recommendation / evidence)、fetches[](各 UA 实测)、preview(ChatGPT 视角)。
发起扫描
curl -X POST https://madeinred.com/api/v1/scan \
-H "content-type: application/json" \
-d '{"url":"https://example.com/","force":false}'
同步执行,5–20 秒返回完整报告并写入存储。force 为 true 时忽略 10 分钟内的缓存。加 Accept: text/event-stream 改为 SSE:phase(每一步抓取的开始/结果)、finding(每项检查)、done(分数与报告地址)、error。
curl -N -X POST https://madeinred.com/api/v1/scan -H "accept: text/event-stream" \
-H "content-type: application/json" -d '{"url":"https://example.com/"}'
历次分数
curl "https://madeinred.com/api/v1/history?url=https://example.com/"
信源猎手
输入一个细分领域,后台让 ChatGPT 联网回答 60 个真实问题,记录它引用了谁,剔掉巨头与不可仿建的站,给剩下的小站打猎物分,拆解被引用页面的结构,产出仿建蓝图。一次 20–40 分钟,需要登录(网页)或 API key(agent),免费账号每月 2 次。报告页公开可分享。
curl -X POST https://madeinred.com/api/v1/hunt \
-H "Authorization: Bearer isc_…" -H "content-type: application/json" \
-d '{"seed":"budget commuter bike helmets","locale":"en-GB"}'
# → 202 {"id":"…","poll":"/api/v1/hunt/…"}
curl https://madeinred.com/api/v1/hunt/<id> # 进行中给进度,完成后给完整报告
curl https://madeinred.com/hunt/<id>/blueprint.json # 页面规格清单,可直接喂给写作 agent
curl -H "Accept: text/markdown" https://madeinred.com/hunt/<id>
报告字段:prey[](域名、被引用问题、score.tier A 可替代 / B 可追赶 / watch / excluded、score.citation 引用强度、score.replaceability 可替代性、enrichment 规模数据、dissection 页面模板与站点骨架)、gap[](每个问题被谁引用:exclusive / open / contested / giants_only)、blueprint。评分口径见 /hunt 页面说明。
结构化错误
| code | HTTP | resolution |
|---|---|---|
| invalid_url | 400 | 传入公开的 http 或 https URL。 |
| missing_url | 400 | 在查询参数或 JSON 体中提供 url。 |
| private_target | 400 | 只接受公网可访问的域名。 |
| report_not_found | 404 | 先完成一次扫描再读取。 |
| rate_limit_exceeded | 429 | 按 Retry-After 等待后重试。 |
| target_unreachable | 502 | 目标不可解析、证书无效或不返回 200。 |
| scan_failed | 500 | 稍后重试。 |
| api_route_not_found | 404 | 查看 OpenAPI 或 API 目录。 |
限流
扫描类接口每 IP 每分钟 6 次,只读接口 120 次。响应带 IETF RateLimit-Policy 与 RateLimit 字段;429 附 Retry-After。
MCP 服务器
https://madeinred.com/mcp
Streamable HTTP,无鉴权、无状态。工具:is_cited_get_report(只读)、is_cited_scan(触发扫描,适合"修完复验")、is_cited_get_methodology。每个工具返回 Markdown 文本加 structuredContent。清单:/server.json,服务卡:/mcp/server-card。
{
"mcpServers": {
"is-cited": { "type": "streamable-http", "url": "https://madeinred.com/mcp" }
}
}
Agent skill
教 coding agent 怎么拿分、读报告、按层修复、复验:/skills/is-cited/SKILL.md,索引见 /.well-known/agent-skills/index.json(含 SHA-256)。
Markdown 内容协商
curl -H "Accept: text/markdown" https://madeinred.com/scan/example.com
首页、方法论、文档与所有报告页都支持;响应 Content-Type: text/markdown 并带 Vary: Accept。
AI 修复方案 / 模拟提问(可选)
POST https://madeinred.com/api/v1/advice {"url":"https://example.com/"}
POST https://madeinred.com/api/v1/simulate {"url":"https://example.com/"}
基于已存报告的证据生成。仅在部署方配置了模型网关时可用;主链路失败自动切换兜底链路。结果与该次报告绑定缓存。
机器可读资源
- /openapi.json — OpenAPI 3.1
- /.well-known/api-catalog — RFC 9727
- /server.json — MCP 注册清单
- /llms.txt · /sitemap.xml · /feed.xml · /robots.txt
价格
免费。没有付费计划、订阅或按报告计费。