跳到正文
AGENT 接入

把 AIHOT 接进你的 Agent

Skill、MCP、RSS、API 四种方式读的是同一份数据:精选、热点、日报、周报和月报,按你用的工具选一种就行。全部匿名只读,不用注册,也不用 API Key。

服务正常版本 2.0.0匿名只读 · 无需 Key
旧接口和旧域名 2026 年 10 月 31 日一起停用 /api/public/* 请换到 /api/v1,字段一一对应;地址里还是 aihot.virxact.com 的 RSS、MCP、API,请换成 aihot.news,之后旧域名只做跳转。迁移指南 →

下面复制出去的配置里带一个本机生成的匿名标识,只用来合并统计,不是账号或密钥,清除浏览器数据后会换新。详见隐私说明。

REST API · 2.0.0

匿名 GET,拿来就能用

不用 token;浏览器跨域、curl 和各语言默认的 HTTP 客户端都能直接调。路径是 /api/v1,字段和错误码以 OpenAPI 为准。

第一个请求
curl --compressed -A 'aihot-api/2.0.0 aihot-actor/<actor-uuid>' 'https://aihot.news/api/v1/items?mode=selected&window=24h&limit=20'

按分类筛选

在资讯请求中加上 category,只取对应分类;不传则包含全部分类。返回条目的 category 也使用下表中的值。

分类请求参数
AI 模型category=ai-models
AI 产品category=ai-products
行业动态category=industry
论文category=paper
教程category=tip
观点category=opinion

用得省,也更快

  1. 01
    开压缩

    curl 加 --compressed,其他客户端打开 gzip 或 br。JSON 压缩后只有原来的 1/4 到 1/8。

  2. 02
    带上 ETag

    保存响应里的 ETag,下次带 If-None-Match;内容没变时返回 304,不传正文。

  3. 03
    按节奏取

    资讯和热点最快一分钟一次;日报每天 08:00 后取一次,周报、月报出刊后取一次;往回翻页翻到已有的那条就停。

内容多久变一次:新资讯全天陆续进来,精选每天变几次到几十次,日报每天 08:00、周报每周一 10:00、月报每月 1 日 10:30(北京时间)各一期。同一个 IP 每分钟超过约 60 次会收到 429,请按 Retry-After 等待,不要并发重试。

接口一览

路径用来做什么多久取一次
资讯
/api/v1/items精选或最近 7 天全部动态,可按分类、时间窗、关键词筛最快 1 分钟一次
热点与事件
/api/v1/hot-topics当前热点榜 Top 10最快 1 分钟一次
/api/v1/stories/{publicId}一个事件的报道时间线、AI 综述和关联事件需要时
日报
/api/v1/dailies/latest最新一期日报每天 08:00 后一次
/api/v1/dailies/{date}指定日期日报;撤稿会移除引用缓存过期后使用前验证 ETag
/api/v1/dailies日报日期索引每天一次
周报与月报
/api/v1/weeklies/latest最新一期周报:头条、总述和一周重点,按栏目分好每周一 10:00 后一次
/api/v1/weeklies/{week}指定一周,ISO 周如 2026-W39;撤稿会移除引用缓存过期后使用前验证 ETag
/api/v1/weeklies周报索引每周一次
/api/v1/monthlies/latest最新一期月报每月 1 日 10:30 后一次
/api/v1/monthlies/{month}指定月份,如 2026-09缓存过期后使用前验证 ETag
/api/v1/monthlies月报索引每月一次
Tibo 重置监控
/api/v1/codex-resets/recent最近 7 天和尚未落地的预告,几 KB10 分钟一次
/api/v1/codex-resets完整日历,最近 30 天的帖子带全文只在要看历史时,最多 10 分钟一次
给 AI 助手
/api/v1/agent给 Agent 的使用说明,列出的地址返回整理好的中文 Markdown;Skill 用的就是它们需要时
完整精选同步
/api/v1/selected/snapshot当前全部精选,分页一次拿全只在第一次
/api/v1/selected/changes之后的新增、修改和撤选几分钟一次

常见用法

bash
# 第一次:保存响应头里的 ETag
curl --compressed -A 'aihot-api/2.0.0 aihot-actor/<actor-uuid>' -i 'https://aihot.news/api/v1/items?mode=selected&window=24h&limit=20'
# 之后最快每分钟一次,带上 ETag;返回 304 就是没变化
curl --compressed -A 'aihot-api/2.0.0 aihot-actor/<actor-uuid>' -i -H 'If-None-Match: <上次的 ETag>' 'https://aihot.news/api/v1/items?mode=selected&window=24h&limit=20'

需要往回翻页时,把 page.nextCursor 作为 cursor 传回去,翻到已经有的那条就停,不要每次把 7 天重翻一遍。

出错了怎么办

400
参数不对:按 OpenAPI 和返回的 code 修正,不要自动换成更宽的查询。cursor 无效或滑出时间窗返回 invalid_cursor,从第一页重来。
409
snapshot_required:增量没法安全续上,重新取一次完整快照。
429
请求太密:按 Retry-After 等待,不要并发重试。
5xx
指数退避,先用上次成功的结果;公开服务不承诺 SLA。
566/567
被边缘安全规则拦下(很小的 JSON):保留 requestId,正常退避后最多再试一次,还不行就去反馈页。不要换 User-Agent 或伪装浏览器。

能匿名调用不等于所有用途都获许可:个人、公益和组织内部使用免费;对外商业产品、收费服务、代理接口或批量再分发须先取得书面授权,见公开使用规则。

旧接口迁移(2026 年 10 月 31 日停用)

/api/public/* 将于 2026 年 10 月 31 日停止服务
原定 12 月 31 日,已提前。替代品是同样匿名只读的 /api/v1/*,字段一一对应。迁移时不要复用旧 cursor 或 ETag:普通列表从 v1 首屏开始,完整精选重新取一次 v1 快照。同一天起旧域名 aihot.virxact.com 只做跳转:RSS、MCP 和 API 地址里还写着旧域名的请一并换成 aihot.news,装过旧版 Skill 的请更新一次。
让 Agent 帮你改
我的项目还在调用 AIHOT 的旧接口 /api/public/*,它会在 2026 年 10 月 31 日停止服务。

请读取 https://aihot.news/llms.txt 和 https://aihot.news/openapi-v1.json,然后:
1. 在我的代码里找出所有调用 /api/public/ 的地方,列给我看;
2. 按 v1 的字段映射改写,注意 url→links.original、permalink→links.aihot、title_en→originalTitle、source→source.name;把代码和配置里的 aihot.virxact.com 全部换成 aihot.news;
3. 不要复用旧的 cursor 或 ETag;精选同步要重新取一次 v1 snapshot;
4. 请求加上压缩和 If-None-Match,轮询间隔不短于 60 秒;
5. 改完告诉我哪些地方需要我人工确认。
旧入口新入口或替代注意
https://aihot.virxact.com/…https://aihot.news/…(同一路径)旧域名与旧接口同日起只做跳转;API、RSS、MCP 的地址都换成新域名
/api/public/items/api/v1/itemstake 改为 limit;since 改用覆盖 window 后按 publishedAt 收窄;去掉 fields
/api/public/hot-topics/api/v1/hot-topics照旧读取当前热点
/api/public/daily/api/v1/dailies/latest最新日报;从响应顶层的 report 读取
/api/public/daily/{date}/api/v1/dailies/{date}北京时间日期;从顶层 report 读取
/api/public/dailies?take=/api/v1/dailies?limit=日报索引;读取 schemaVersion、count 和 items
/api/public/selected/snapshot/api/v1/selected/snapshot迁移时重新取一次 v1 快照
/api/public/selected/changes?take=/api/v1/selected/changes?limit=旧 cursor 不能复用;照旧读取顶层 hasMore 和 cursor
/api/public/fingerprint对 v1 完整 URL 用 ETag/If-None-Match返回 304 表示内容没变
/api/public/version换成最新 Skill;普通查询不再查版本旧 0.x Skill 的升级桥,保留,不停用

字段对照:url 改读 links.original,permalink 改读 links.aihot,title_en 改读 originalTitle,source 改读 source.name;items 顶层的 count/hasNext/nextCursor 改读 page.count/page.hasMore/page.nextCursor;attribution 从 { source, canonical } 改为 { name, url };错误统一为 Problem JSON。

v1 只接受 OpenAPI 里声明且不重复的参数;旧客户端带的 _ 防缓存参数、未知参数或重复参数要去掉,否则返回 400。

这些不用改:RSS 的路径和 GUID 不变(只把域名换成 aihot.news);/api/public/version 继续作为旧 0.x Skill 的升级桥,在旧域名上也保留。

迁移遇到阻塞:在反馈页说明用途和卡住的地方,我们会单独确认。