新闻 API 通常按请求次数计费,需要密钥,且免费版每天限制为一百次调用。Free News API 则完全不同:涵盖滚动 90 天窗口内的 2150 万篇文章、25000 多家出版商,无需密钥、无需注册、无配额,且允许商业用途。以下是其全部功能——搜索、统计、趋势、市场、订阅源和 MCP——以及关于数据可能存在的偏差的诚实说明。

问题的形态

询问 AI 代理当前世界正在讨论什么,它有三个糟糕的选项。它可以直接抓取出版商的内容,但这很脆弱、缓慢且法律上存在模糊地带。它可以调用商业新闻 API,这意味着需要一个账户、一个密钥、每月账单,并且——在市场上的每个免费套餐中——每天限制一百次请求,且文章会有二十四小时的延迟。或者,它可以根据几个月前就停止更新的训练数据进行猜测。

Free News API 去掉了中间选项的价格和繁琐手续,同时保留了其能力。一次 GET 请求,无需凭据,即可访问一个语料库,截至写作时包含21,557,044 篇文章,来自超过两万家出版商,保持在滚动九十天的窗口内并持续刷新——索引中最新文章的年龄通常不到两分钟。

2150 万
已索引文章
25,000+
出版商
100
国家
~100
语言
90 天
滚动窗口
0
现有的 API 密钥
规则如下: 不存在 API 密钥,且将来也不会有。没有相关参数,无需发送特定请求头,无需创建账户,也没有请求配额限制——仅设有限流机制:每 IP 每秒 20 次请求,确保单一调用者不会导致服务对其他用户不可用。

四大核心端点,以及更多

该服务的核心是四个 GET 端点,均位于 https://freenewsapi.ai 下,均返回 UTF-8 格式的 JSON 数据,并带有 Access-Control-Allow-Origin: * 响应头,以便浏览器代码可以直接调用它们。此外,所有端点均通过 took_ms 字段报告服务器端耗时。

端点解决的问题
GET /v1/search支持过滤条件的全文搜索。这是您 95% 的时间都会使用的端点。
GET /v1/stats任意切片(按国家、语言、顶级域名、发布商和日期)的聚合统计数据。
GET /v1/article一篇完整文章,包含其精确的 URL 及完整正文。
GET /health存活状态及当前文档计数。成本足够低,支持轮询。

围绕这一核心,还有四个其他类别,每个在其他地方都可能是独立的产品:趋势(按国家/地区实时聚类故事)、市场(价格序列与报道量的对齐)、加密情绪(七个端点的比特币区块)以及分发(将相同的搜索结果呈现为 RSS、Atom 或 JSON 订阅源)。以下将对所有这些内容进行详细介绍。

curl "https://freenewsapi.ai/v1/search?q=climate+summit&size=2"
{
  "took_ms": 41,
  "total": 1284,
  "total_is_lower_bound": false,
  "size": 2,
  "offset": 0,
  "results": [
    {
      "id": "9c1f8a4b2d3e5f6071829304a5b6c7d8",
      "url": "https://example-news.com/world/climate-summit-opens",
      "title": "Climate summit opens with a call for binding targets",
      "description": "Delegates from 190 countries gathered on Monday ...",
      "published_at": "2026-08-17T09:12:00Z",
      "crawled_at": "2026-08-17T10:48:31Z",
      "host": "example-news.com",
      "sitename": "Example News",
      "country": "GB",
      "country_source": "cctld",
      "lang": "en",
      "tld": "com"
    }
  ]
}

响应中的三个字段值得立即关注,因为它们编码了整个数据集的诚实性。total_is_lower_bound 告诉你匹配计数是否达到了 10,000 的上限并停止计数。country_source 告诉你国家是如何确定的——因为在任何新闻数据集中,很大一部分国家值是推断得出的,而非事实。而 crawled_at 是可信的时间戳:发布者通常会回溯设置 published_at,但抓取时间由管道分配,且只会向前推进。

搜索:每个关键参数详解

所有参数均为可选。仅发起基本调用即可返回索引中的最新文章。

查询词

像搜索引擎一样查询,而不是像聊天机器人那样: 这是最常见的错误。搜索对所有词执行 AND 操作,因此请写 2–5 个关键词,而不是一个句子。opec production cut 有效。what did OPEC decide about oil 则返回空结果。

过滤器

过滤器与跨参数的 AND 和单个参数内的 OR 结合使用。因此 country=DE,AT&lang=de 表示“来自德国或奥地利的德语文章”。每个过滤器接受最多五十个值的逗号分隔列表。

过滤器格式说明
countryISO 3166-1 alpha-2,大写发布商国家。派生而非声明 — 参见 country_source 和 strict_country。
langISO 639-1,小写从文档本身检测得出。覆盖率 99.9%。
tld无点号发布商所属的顶级域。tld=ua 是事实;country=UA 是推断。
host完整主机名与 URL 中显示的一致 — 如果发布商使用 www.,请包含它。
date今天 · 昨天 · 24小时 · 48小时 · 7天 · 30天预设周期,基于 published_at(发布时间)进行评估。
from / toISO 日期预设条件不匹配的明确时间窗口。
strict_countrytrue/false仅统计国家归属为确凿事实而非推断的文章。

输出控制

参数值效果
sortdate · date_asc · crawled · crawled_asc · relevance轮询新文章时按 crawled(抓取时间)排序 — 出版商可能会将发布时间回溯;而抓取时间只会向前推进。
size1–100每页显示的结果数量。
offset0–9900分页偏移量。
full_texttrue/false包含文章内容。默认关闭。
highlighttrue/false返回匹配片段。
fieldsCSV仅返回您实际需要的字段,以精简响应。
curl "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=date&size=10"
curl "https://freenewsapi.ai/v1/search?q=merger&country=DE&date=48h&sort=date&size=20"

搜索前的统计

该服务中最常被忽视的端点是 /v1/stats。通常,更有价值的问题不是“有哪些文章”,而是“这里到底有没有内容,以及它们在哪里”。统计数量只需极低的成本——大约两百个 token,而获取一页结果则需要数千个 token——这使得它成为代理(Agent)在决定是否执行搜索时的首选第一步调用。

curl "https://freenewsapi.ai/v1/stats?q=earthquake&date=7d"

它返回按国家、语言、顶级域名(TLD)、发布商和日期分类的计数,这些统计基于整个匹配集合而非当前页面。这也是您在信任数据之前衡量覆盖范围的方法。以下是撰写本文时的未过滤快照:

热门国家

国家文章
印度2,286,014
美国2,180,797
土耳其1,499,897
俄罗斯1,436,556
意大利1,057,479
阿根廷826,947
西班牙812,347
乌克兰662,041
巴西551,013
德国543,132
法国502,846
希腊460,372
日本437,209
越南408,934
墨西哥402,320
韩国362,945
罗马尼亚354,229
英国334,379
伊朗291,782
波兰255,599

主要语言

英语 5,513,650 · 西班牙语 2,699,457 · 俄语 1,785,796 · 土耳其语 1,501,004 · 意大利语 992,200 · 德语 733,677 · 法语 689,136 · 阿拉伯语 664,016 · 葡萄牙语 637,607 · 印地语 560,840 · 希腊语 466,504 · 日语 427,085 · 越南语 385,719 · 罗马尼亚语 358,766 · 中文 352,720 · 乌克兰语 345,809 · 韩语 335,079 · 波斯语 268,126 · 波兰语 238,904 · 保加利亚语 183,204。

这种分布值得多看一眼,因为它与大多数新闻 API 提供的内容截然相反。通常以英语和英语国家为主的语料库并非如此:印度超过美国,土耳其语超过德语,希腊语、越南语、波斯语和保加利亚语都有六位数的代表。如果你的问题涉及非英语媒体,这是一个截然不同的数据集。

数量

by_day 中的每日曲线覆盖了完整的九十天空。最近几天的范围大致为每天 400,000 到 700,000 篇文章;在该窗口早期,在 RSS 层与档案摄取一起添加之前,每日数量在 130,000–230,000 之间。两个数据都显示在同一个响应中,这正是该服务的要点——它向你展示的是自身的扩展情况,而不是引用营销平均值。

趋势:媒体目前真正在报道什么

搜索回答“关于 X 写了什么”。趋势回答的是一个不同且通常更好的问题:“正在发生什么” —— 无需指定 X。

机器人将文章按国家聚类为故事,并持续更新。每五分钟,新文章会通过其标识词附加到已知故事中,无需调用模型;每隔几小时,一个国家会进行一次完整遍历,语言模型会阅读标题并从头命名故事。在撰写本文时,趋势层覆盖 115 个国家,每个国家的数据都在过去几分钟内重新计算。

curl "https://freenewsapi.ai/v1/trends?country=US&window=24h&size=5"
{
  "window": "24h",
  "filters": { "country": ["US"], "min_publishers": 1 },
  "trends": [
    {
      "title": "Hurricane Marie threatens Labor Day weather",
      "slug": "hurricane-marie-threatens-labor-day-weather",
      "country": "US",
      "category": "weather",
      "articles": 57,
      "publishers": 24,
      "first_seen": "2026-09-05T19:24:36Z",
      "latest": "2026-09-06T19:00:04Z",
      "url": "https://freenewsapi.ai/trends/us/hurricane-marie-…",
      "headlines": [ … ]
    }
  ]
}

每个故事都附带两个计数,它们含义不同。articles 代表热度;publishers 代表广度。一个由 4 家媒体发布的 200 篇文章的故事,可能只是某家新闻机构的执念。而一个由 40 家媒体发布的 60 篇文章的故事则是一个事件。默认排序按媒体数量进行,min_publishers / min_articles 让你自己设定门槛。

每条新闻故事都来自一个固定分类集:politics(政治)、business(商业)、markets(市场)、tech(科技)、sport(体育)、health(健康)、science(科学)、culture(文化)、crime(犯罪)、conflict(冲突)、weather(天气)、society(社会)。

时间窗口由读者决定,而非由机器人决定

这是一个真正优雅的设计决策。每篇文章都存储了发布时间,并关联到其所属的故事。因此,任何时间窗口——十五分钟、一小时、一天或特定日历日期——都只需对同一组存储数据进行范围查询即可。一次计算即可同时服务于所有窗口。window=15m、window=1h、window=24h、date=2026-09-01,或显式的 since/until 参数对,均可针对同一索引运行,且无需重新计算。

关键词:新闻构建的基石

curl "https://freenewsapi.ai/v1/trends/keywords?country=US&size=8"

每个关键词都会返回其关联的不同故事数量、这些故事包含的文章总数,以及——最有趣的一项——使用它的国家媒体数量。最后一个数字是区分全球性事件与本土事件的关键。一个词若出现在七十个国家,即为全球性新闻;若一个词主导了某个国家的媒体,则为本土新闻,无论其在该国的声量有多大。

哪些国家处于实时更新状态

curl "https://freenewsapi.ai/v1/trends/countries"

返回所有受追踪国家及其实时故事数量,以及距离上次重新计算过去了多少分钟。目前,土耳其、俄罗斯、伊朗、希腊、印度、意大利、乌克兰、罗马尼亚、阿根廷、德国和巴西的每个国家都拥有数千条实时新闻,且最近十分钟内已完成重新计算。此外,/v1/trends/{cc}/{slug} 可打开单个故事并展示其完整的文章列表。

市场与报道:价格在一轴,关注度在另一轴

这是该服务中最不寻常的功能,其存在是因为语料库使得构建成本几乎为零。将价格序列与同一时间段内全球对该事物的报道量并排展示,置于同一时间轴上。

curl "https://freenewsapi.ai/v1/markets"

共追踪十四种交易工具,涵盖四大资产类别:

类别交易工具数据粒度数据来源
加密货币比特币、以太坊、Solana、XRP、BNB、Dogecoin小时币安
金属黄金(美元/盎司)小时币安
外汇欧元/美元,美元/日元,美元/土耳其里拉,美元/印度卢比,美元/巴西雷亚尔,美元/波兰兹罗提天欧洲央行
能源德国电力价格(欧元/兆瓦时)小时Energy-Charts
curl "https://freenewsapi.ai/v1/markets/usd-try?window=30d"

这一单一调用即可获取里拉对美元的汇率数据,以及土耳其媒体在同一时期内的报道量,并按小时进行对齐。土耳其媒体是该语料库中占比第三大的部分,正因如此,这种配对产生的数据才具有实际意义,而非噪音。

以及完整的比特币情绪数据块

比特币拥有其专属的七个端点家族,因为它是唯一一个新闻情绪与价格走势常被热议却鲜少被量化衡量的标的:

端点返回值
/v1/btc/summary最新价格、近期走势以及今日报道的情绪基调。
/v1/btc/price按时间间隔划分的 BTC/USDT K线数据。
/v1/btc/sentiment各时间段内的新闻情绪。
/v1/btc/series价格与情绪在同一时间轴上对齐。
/v1/btc/correlation情绪与价格变动之间的相关性按时间偏移计算——是报道领先于价格走势,还是跟随其后?
/v1/btc/news带有情绪标签的加密货币文章,可按标签、来源网站、语言和查询条件进行筛选。
/v1/btc/sources哪些媒体驱动了加密货币报道,以及它们各自的倾向。

情感标签来自一个每五分钟对最新加密货币文章运行一次的语言模型,并对照经过校准的币种列表。/v1/btc/correlation 配合 max_shift 参数是最佳选择,如果你曾想测试“新闻导致行情变动”这一说法,而不是仅仅重复它。

相同的搜索,作为订阅源

另外三个端点采用相同的搜索参数,并将结果渲染为聚合格式,而非 JSON:

https://freenewsapi.ai/v1/rss?q=semiconductor+export+controls&lang=en&date=7d&sort=date

这意味着任何已保存的搜索都会变成一个订阅源,你可以将其粘贴到阅读器、n8n 节点、Slack 集成、Zapier 触发器或静态网站生成器中——无需编写代码,也无需密钥。这是一个小巧的功能,却默默地为非程序员移除了一层完整的集成层。

MCP:二十八种工具,两层架构

MCP 服务器位于一个 URL,支持 Streamable HTTP(JSON-RPC 2.0 通过 POST 发送,协议版本 2025-06-18),支持批处理,并且——与这里的一切一样——无需授权步骤,也没有会话 ID。

claude mcp add --transport http freenewsapi https://freenewsapi.ai/mcp

它暴露了两层精心设计的 28 种工具。

第一层:六个快捷方式,一次调用即可回答整个问题

工具用途
search_news“关于 X 写了什么”——全文搜索,结果已精简。
get_trends“正在发生什么”——按主题分组的新闻故事,而非简单的文章列表。
trend_keywords当前新闻赖以构建的关键词,附带故事数量及覆盖的国家分布。
find_publishers查询媒体机构:名称、域名、国家、语言及每日文章数量。
list_countries哪些国家有实时新闻、数量多少以及新闻的时效性。
market_vs_news价格序列与报道量的对比。不传入标的参数即可查看现有数据。

第二层:每个端点均由服务本身生成

在快捷方式之下,每个原始端点都作为独立工具暴露出来,并包含 API 支持的所有参数——news_get_search、news_get_stats、news_get_article、news_get_trends、news_get_trends_keywords、news_get_markets_slug、整个 news_get_btc_* 系列、Feed 渲染器以及 news_get_health。这些端点由实时服务生成,因此绝不会偏离 API 实际支持的范围。

两个元工具完成了闭环:news_list_endpoints 返回所有可用端点的目录,而 news_get 可对任意路径执行原始 GET——因此,即使代理遇到的端点不在其工具列表中,依然可以通过该方式访问。

curl "https://freenewsapi.ai/mcp?format=json"

一次 GET,无需握手,即可获得整个机器可读的目录:服务器、传输协议、协议类型、工具总数、每个工具的描述以及每个端点的参数列表。

专为机器阅读而构建

文档并非附加在 API 上的附属品——它是 API 的一等公民级输出。该站点提供 665 个静态页面,其中几个页面专门设计,以便模型无需读取 HTML 即可获取信息:

加上 168 个国家/地区页面、121 个语言页面和 275 个顶级域名(TLD)页面——每个数据切片对应一个可浏览的入口,清晰展示其实际内容。

文章的来源

两条数据摄入路径共同填充同一个索引,它们之间的差异至关重要。

归档路径

每十分钟,一项任务会检查 Common Crawl 的 CC-NEWS 归档库,查找新的 WARC 文件,并使用 40 个并行工作进程处理任何未见过的新内容。提取器通过针对每个字段记录的级联规则,从原始抓取数据中提取每篇文章——这些级联规则是基于真实数据测量得出的,而非凭空假设:

字段级联规则覆盖率
descriptionJSON-LD → meta → OpenGraph → Twitter 卡片 → articleBody → 导语段落98.1%
language<html lang> → JSON-LD inLanguage → og:locale99.9%
countryccTLD → JSON-LD addressCountry → 语言-地区 → og:locale79.1%
dateJSON-LD datePublished → meta → trafilatura → 抓取时间100%

该国家字段是诚实的,这也是为何每篇文章都公开 country_source 的原因:约五分之一的记录完全没有可靠的国家信号,而现有值中约有三分之一是推断值而非事实。API 会明确告知你哪一个是推断值、哪一个是事实,而不是假装不存在差异。

实时路径

第二个机器人每五分钟轮询发布者 RSS 的 Feed 源,并与条件请求配合使用——返回 304 Not Modified(未修改)的 Feed 几乎不消耗资源,每个 Feed 的轮询间隔会根据其实际发布频率进行调优。如果一家媒体每天发布五篇文章,就不需要每十五分钟就对其进行一次轮询。

它仅获取发布者在 Feed 中提供的内容:标题、导语以及当 Feed 包含时提供的全文。它不会爬取发布者网站以获取更多数据。这是一种刻意设定的边界,也是该服务能够在其面向发布者的法律页面上做出承诺的原因。

及其周围的机制

在两条数据摄入路径周围,还有十几个机器人按计划运行:源发现与同步、按域名解析国家、趋势构建与审计、关键词回填、加密货币情绪、市场数据拉取、分类目录、保留(九十天窗口是通过每晚对 published_at 执行查询来强制执行的,而非依据索引年龄)、日期验证、空文章复查,以及一个用于重启任何停止运行组件的健康监控守护程序。语料库托管在专用的 Elasticsearch 集群上。

本数据集的不足之处

该服务公开其自身的局限性,这是判断其是否适合你需求的最快方式。

良好使用指南:成本、分页与错误

Token 使用纪律

对于智能体而言,响应大小是真正的成本。其文档化的结构如下:

调用Token 成本估算何时
/v1/stats~200首先,判断是否值得运行搜索。
/v1/search 仅元数据每页数千条扫描并选择。
/v1/search?full_text=true每篇文章约 900 个仅针对你实际选择的那些。

二十篇带有 full_text=true 的文章大约需要 40,000 个 token。推荐的模式始终如一:先计数,再扫描,最后仅获取你所需内容的正文。

超出上限的分页

offset 在 9,900 处停止。要遍历大量数据集,不要硬拼上限,而是改用时间切片。按天循环,或在查询繁忙时按小时循环,配合 from/to 和 sort=date 使用。文档中有专门介绍如何遍历一整天的页面。

错误

契约直截了当且易于编码实现:4xx 表示请求有误——请修正,不要重试。5xx 表示服务不可用——请退避。429 表示请放慢速度并重试。 未知的查询参数会被忽略而非被拒绝,因此添加字段绝不会导致现有调用者出错。

标识身份(可选,且确实是可选的)

如果没有密钥,就无法识别调用方。建议的礼貌做法是添加一个标头,注明你的代理、其运行的框架以及驱动它的模型:

X-Agent: agent_name=<agent>; software=<langchain|llamaindex|n8n|claude-desktop|cursor|openai-assistants|crewai|custom>; model=<model>; version=<v>; purpose=<rag|monitoring|research|digest>; contact=<url or mailto>
User-Agent: <agent>/<version> (+<contact url>)

相同的值也可以作为普通查询参数使用,这通常更方便:

https://freenewsapi.ai/v1/search?q=climate&agent_name=newsbot&software=langchain&model=gpt-4o

未知的键会被忽略,因此发送额外的键总是安全的。没有任何验证,也不会因省略而进行限流,唯一的硬性要求是:切勿将这些字段用于存放终端用户的个人数据。

对抗付费新闻 APIs

网站上的对比页面逐一介绍了十一家竞争对手。在所有对比中均存在的结构性差异:

其他平台的免费层级

每天 100 次请求,24 小时延迟

免费新闻 API 层级的标准形态:令牌桶容量极小,仅够演示使用,最新文章需付费才能获取。

  • 需要密钥
  • 每日上限
  • 延迟文章
  • 仅限非商业用途
Free News API

无上限,无延迟,无需密钥

唯一的限制是每个 IP 每秒 20 次请求。最新文章通常不到两分钟,且允许商业用途。

  • 无需密钥,无需注册
  • 无每日或每月上限
  • 持续刷新
  • 允许商业用途
其他平台的覆盖范围

以英语和英语国家为主

大多数语料库以英语出版商列表为基础,再添加世界其他地区的来源。

  • 英语占主导地位
  • 非拉丁语系覆盖较薄
此处覆盖情况

印度 > 美国,土耳其语 > 德语

涵盖约 100 种语言,其中希腊语、越南语、波斯语、乌克兰语和保加利亚语的语料规模达到六位数。

  • 100 个国家
  • 约 100 种语言
  • 11,668 个已编目来源

付费服务仍提供但本服务不具备的功能:作为标准字段的情感评分和实体抽取、可追溯多年的档案,以及附带服务等级协议(SLA)的合同保障。这些都是真实存在的价值,如果你需要这些功能,应该购买付费服务。

食谱

实时国家监控

curl "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=crawled&size=50"

这是全球性新闻还是国内新闻?

curl "https://freenewsapi.ai/v1/trends/keywords?size=30"
# read `countries` on each keyword: 1 country = domestic, 70 = world event

以低成本将模型基于今日的最新报道

# 1. count first
curl "https://freenewsapi.ai/v1/stats?q=semiconductor+export+controls&date=7d"
# 2. scan metadata
curl "https://freenewsapi.ai/v1/search?q=semiconductor+export+controls&date=7d&lang=en&size=20&sort=relevance"
# 3. fetch bodies for the three you picked
curl "https://freenewsapi.ai/v1/article?url=<exact-url>&full_text=true"

报道热度是否领先于价格走势?

curl "https://freenewsapi.ai/v1/btc/correlation?interval=hour&max_shift=12"

将保存的搜索条件转换为信息流

https://freenewsapi.ai/v1/rss?q=central+bank+rate&lang=en&date=24h&sort=date&size=50

找出市场中真正重要的媒体

curl "https://freenewsapi.ai/v1/stats?country=BR&date=30d&top=50"
# the `hosts` block is a ranked publisher list for that slice

简短版本

Free News API 提供对来自 100 个国家、约 100 种语言的 25,000 多家出版商的 2150 万篇新闻文章的全文搜索,数据滚动窗口为 90 天,持续刷新,无需 API 密钥、无需注册,除按 IP 地址的速率限制外无配额限制。在搜索功能之上,还提供覆盖 115 个国家的实时按国家/地区故事聚类、区分全球事件与国内事件的关键词分析、将 14 种市场工具与报道量进行对比的图表、7 端点的比特币情绪区块、RSS/Atom/JSON 内容分发,以及由该服务本身生成的 28 工具 MCP 服务器。

它记录自身的错误率,展示每个国家/地区数据值的推导过程,并发布关于数据可能出错之处的说明页面。对于一个需要实时了解世界动态(无论是土耳其语、希腊语还是印地语)的智能体来说,这种组合在任何价位都难以找到,而 Free News API 是免费的。

搜索对所有关键词采用“与(AND)”逻辑。请使用 2–5 个关键词,而非自然语言问题。

Free News API 关于如何有效查询的指南

从这里开始:freenewsapi.ai · 在 freenewsapi.ai/mcp 使用 MCP · 在 /llms-full.txt 获取完整手册单文件。