Search1API文档

优化搜索结果

选择搜索来源、获取完整页面文本,并按站点、时间和语言缩小 Search1API 的搜索结果范围。

先使用默认的搜索行为,只有当结果表明确实需要时,再添加约束条件。

从默认来源开始

如果省略 search_service,Search1API 会搜索 Google,效果与发送 "search_service": "google" 相同。需要通用网页覆盖时,保持这个默认值即可。

当来源本身就是请求的一部分时,设置 search_service:

{ "query": "rust async runtime", "search_service": "reddit" }

例如,Reddit 适合查找使用经验分享,GitHub 适合查找代码和 issue,arXiv 适合查找论文,YouTube 适合查找视频。

可用的网页搜索来源

来源适用场景
google通用网页
bing通用网页
bingcn中文 Bing
duckduckgo通用网页
yahoo通用网页
yandex通用网页,尤其是俄罗斯和独联体地区
xX 上的帖子和反应
reddit讨论和使用经验分享
github仓库、issue、pull request 和 discussion
youtube视频
arxiv预印本和学术论文
wikipedia百科背景知识
grokipedia来自 Grokipedia 的英文百科背景知识(Powered by xAI)
imdbGoogle 索引的 IMDb 页面,涉及电影、人物和演职员信息
wechat微信公众号文章
bilibili中文视频
baidu中文通用网页
quark中文通用网页
360中文通用网页

/news 使用另一套来源集合:google、bing、duckduckgo、yahoo、hackernews 和 reuters。对于新闻搜索,省略 search_service 同样会启用默认的多来源行为。

社区类来源会在每条结果的 metadata 中添加可选的结构化字段。通用字段(title、link、snippet,以及可选的 content 和 published_date)仍位于结果的顶层。没有适用的引擎专属字段时,会省略 metadata:

  • github 结果带有 metadata.kind(repo、issue、pr 或 discussion)。仓库会额外包含 metadata.stars 和 metadata.language;issue、pull request 和 discussion 会额外包含 metadata.num_comments,且其 snippet 以 owner/repo · issue · open · N comments 开头。像 "tanstack start hydration error" 这样的查询会返回匹配的 issue 和 discussion,而不只是仓库;如果只想搜索某一类,可以追加 GitHub 限定符,例如 is:issue 或 stars:>1000。使用 time_range 时,结果仅限于在该时间窗口内创建的仓库和讨论串。
  • hackernews 结果(/news)链接到 Hacker News 讨论串,所提交的文章地址位于 metadata.story_url(没有文章 URL 的纯文本帖子会省略该字段),点赞数和评论数分别位于 metadata.points 和 metadata.num_comments。多词查询会匹配包含其中任意一个词的帖子,最匹配的排在前面。
  • reddit 结果的排序方式是:标题或 subreddit 中提及查询词的帖子排在前面。

/trending 支持 github 和 hackernews,并且必须提供 search_service。

grokipedia 搜索的是 xAI 的百科全书 Grokipedia。 其条目为英文,因此请用英文编写查询;language 和 time_range 会被忽略。 结果链接到条目页面,并以条目的开头文本作为 snippet。Grokipedia 的内容由 xAI 依据 xAI Community License 提供;展示这些内容的产品应显示 "Powered by xAI"。

imdb 通过 Google 索引搜索 IMDb 域名下的页面。它返回网页标题、链接和摘要, 而不是结构化的 IMDb 目录元数据。请在 query 中同时保留电影或人物以及你需要的信息, 无需把它精简为仅有标题。索引覆盖并不完整,结果也不保证提供可复用的图片版权、 外部采访或档案下载。

读取结果原文,而不只是摘要

搜索结果包含一段简短的 snippet。当模型需要来源原文时,设置 crawl_results 来抓取排名靠前的结果,并填充其 content 字段:

curl -X POST https://api.search1api.com/search \
  -H "Authorization: Bearer $SEARCH1API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "postgres connection pooling best practices",
    "max_results": 10,
    "crawl_results": 3
  }'

该请求最多返回十条排好序的结果,并尝试为前三条补充全文。crawl_results 不能大于 max_results。

一次搜索消耗 1 积分,每成功抓取一个页面再加 1 积分。详见积分与限制。

按站点缩小范围

使用 include_sites 只搜索指定的域名,使用 exclude_sites 排除不需要的域名:

{
  "query": "vector database benchmarks",
  "include_sites": ["github.com", "news.ycombinator.com"],
  "exclude_sites": ["pinterest.com"]
}

范围很窄的 include_sites 列表搭配具体的查询词,可能会得到空的 results 数组。这是一次已完成并已计费的搜索,只是没有找到匹配项。请逐个移除约束条件,以扩大匹配范围。

按时间或语言缩小范围

time_range 可选值为 day、week、month 或 year。当时效性很重要时,请使用它,而不是在查询中添加“最新”之类的词。

当来源提供发布日期时,每条结果都会带有 published_date,模型可以据此判断结果的新旧程度,或在相互矛盾的来源之间做出取舍。该值采用 ISO 8601 格式:只知道日期时为 YYYY-MM-DD(网页搜索引擎通常如此),来源带有具体时间时则为 UTC 时间戳,例如 2026-09-03T10:00:00Z(x、reddit、github、arxiv、youtube、bilibili、wechat、设置了 time_range 的 yandex,以及 /news 的各个来源)。请将该字段视为可选:duckduckgo、wikipedia、grokipedia 和大多数中文网页引擎不返回日期;yandex 在未设置 time_range 时也会省略该字段;其他网页引擎只对部分页面提供日期。

language 接受语言代码,例如 en、zh-CN 或 fr。Search1API 不提供单独的国家或地区参数。

控制结果数量

max_results 默认为 5,可接受 1 到 50 之间的值。网关会把大于 50 的数值截断为 50。

原生 SERP 结果分页

page 是搜索引擎原生的分页,而不是在融合后结果列表中的偏移量。只有 bing、bingcn、baidu 和 grokipedia 支持该参数。其他引擎(包括 yandex)会忽略它。

{
  "query": "vector database",
  "search_service": "bing",
  "page": 2
}

完整的请求 Schema、图片结果、批量请求体和响应字段,请参阅 Search API 参考。

本页内容