API

面向 AI 的搜尋 API

一行 HTTP 請求即得結構化搜尋結果,為 AI 應用 / RAG / Agent 提供即時全網檢索。對標 Firecrawl · Exa · Tavily

快速開始

GET /api/v1/search
curl "https://tutusoo.com/api/v1/search?q=rust&limit=5"

查詢引數

引數型別說明
q*string搜尋查詢詞(必填);多詞預設 AND(全部命中)
limitint返回條數,預設 10,最大 100
offsetint分頁偏移,預設 0,最大 990
langstring語言過濾,如 zh / en
time_rangestring收錄時間範圍:1d/7d/30d/1y/all(按 crawled_at)
sitestring限定站點域名
lang_prioritystring語言優先(軟加權,非硬過濾):如 zh,命中該語言的結果小幅上浮但不隱藏其它語言;與 lang 獨立

查詢運算元(寫在 q 裡)

site:域名限定站點,如 site:github.com rust
intitle:詞僅匹配標題含該詞
"精確短語"短語內所有詞都要出現
-排除詞排除含該詞的結果,如 rust -教程
A OR B任一詞命中即可,如 rust OR golang
filetype:型別按檔案型別過濾(pdf/doc/ppt/xls),如 filetype:pdf

響應

{
  "total": 586,
  "took_ms": 142,
  "results": [
    {
      "id": "a1b2c3d4-…",         // local 結果的頁面 id;外部兜底可能為空
      "url": "https://rust-lang.org/",
      "title": "Rust 官網",
      "snippet": "系統級程式語言…",
      "domain": "rust-lang.org",
      "site_name": "Rust Programming Language", // 站點展示名(可省略;無則客戶端回退 domain)
      "lang": "zh",
      "score": 12.4,
      "source": "local",          // local(本站索引)| brave(全網兜底)
      "has_llms_txt": true,
      "published_at": "2010-01-25T…", // 文章釋出時間(可空,有則返回;RAG 時效/展示日期)
      "crawled_at": "2026-07-18T…" // 抓取時間(判新鮮度;time_range 過濾即按它)
    }
  ]
}

site_name:站點展示名,欄位可能省略;缺少時用 domainsource:local=本站索引 /brave=本地結果不足時的全網兜底。has_llms_txt:目標站是否提供 llms.txt(AI 友好)。

獲取全文(RAG)

GET /api/v1/content/{id}

當搜尋結果 source=local 且 id 非空時,可取該頁完整正文餵給 LLM。外部兜底結果沒有本站正文,不能呼叫此端點。

curl "https://tutusoo.com/api/v1/content/<local_page_id>"

# 響應(只含 RAG 有用欄位,無內部列):
{
  "id": "…",
  "url": "https://rust-lang.org/",
  "title": "Rust 官網",
  "body_text": "…完整正文…",
  "author": "張三",            // 作者(可空,RAG 引用/署名)
  "published_at": "2026-01-…", // 原文釋出時間(可空,判時效)
  "lang": "zh",
  "word_count": 1200,
  "crawled_at": "2026-07-18T…",
  "has_llms_txt": true
}

訪問方式 & 限額

公共搜尋與正文端點無需登入或 API Key,可直接試用;公共層按客戶端 IP 做公平限流,超出返回 429。專用 API Key 目前由運營方為已確認的服務整合開通,本站不展示不存在的自助申請入口。

專用 Key 響應會迴帶 X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset。客戶端遇到 429 時應按響應提示退避,不要無上限立即重試。