API

API tìm kiếm cho AI

Một yêu cầu HTTP trả về kết quả có cấu trúc — truy hồi web thời gian thực cho ứng dụng AI, RAG và agent. Thay thế cho Firecrawl · Exa · Tavily.

Bắt đầu nhanh

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

Tham số truy vấn

Tham sốKiểuMô tả
q*stringTruy vấn tìm kiếm (bắt buộc); nhiều từ mặc định AND (phải khớp tất cả)
limitintSố kết quả, mặc định 10, tối đa 100
offsetintĐộ lệch phân trang, mặc định 0, tối đa 990
langstringBộ lọc ngôn ngữ, vd zh / en
time_rangestringKhoảng thời gian lập chỉ mục: 1d/7d/30d/1y/all (theo crawled_at)
sitestringGiới hạn theo tên miền trang
lang_prioritystringƯu tiên ngôn ngữ (tăng nhẹ, không phải lọc cứng): vd zh đẩy kết quả đúng ngôn ngữ lên mà không ẩn cái khác; độc lập với lang

Toán tử truy vấn (viết trong q)

site:domainGiới hạn theo trang, vd site:github.com rust
intitle:wordChỉ khớp tiêu đề chứa từ đó
"exact phrase"Mọi từ trong cụm phải xuất hiện
-excludeLoại kết quả chứa từ đó, vd rust -tutorial
A OR BKhớp một trong hai, vd rust OR golang
filetype:typeLọc theo loại tệp (pdf/doc/ppt/xls), vd filetype:pdf

Phản hồi

{
  "total": 586,
  "took_ms": 142,
  "results": [
    {
      "id": "a1b2c3d4-…",         // page id for local results; may be empty for external fallback
      "url": "https://rust-lang.org/",
      "title": "Rust Programming Language",
      "snippet": "A language empowering everyone to build reliable software…",
      "domain": "rust-lang.org",
      "site_name": "Rust Programming Language", // display name (optional; client falls back to domain)
      "lang": "en",
      "score": 12.4,
      "source": "local",          // local (our index) | brave (web fallback)
      "has_llms_txt": true,
      "published_at": "2010-01-25T…", // article publish time (nullable; returned when known; RAG freshness/date)
      "crawled_at": "2026-07-18T…" // crawl time (freshness; time_range filters on this)
    }
  ]
}

site_name: tên hiển thị; có thể bỏ — quay về domain. source: local = chỉ mục của chúng tôi / brave = dự phòng web khi kết quả cục bộ chưa đủ. has_llms_txt: trang đích có cung cấp llms.txt không (thân thiện AI).

Lấy toàn văn (RAG)

GET /api/v1/content/{id}

Khi kết quả có source=local và id không rỗng, hãy lấy toàn văn để đưa vào LLM. Kết quả dự phòng bên ngoài không có nội dung cục bộ và không dùng được endpoint này.

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

# Response (RAG-relevant fields only, no internal columns):
{
  "id": "…",
  "url": "https://rust-lang.org/",
  "title": "Rust Programming Language",
  "body_text": "…full article text…",
  "author": "Jane Doe",        // author (nullable; RAG citation/byline)
  "published_at": "2026-01-…", // original publish time (nullable; freshness)
  "lang": "en",
  "word_count": 1200,
  "crawled_at": "2026-07-18T…",
  "has_llms_txt": true
}

Truy cập & giới hạn tần suất

Các endpoint tìm kiếm và nội dung công khai không cần đăng nhập hay khóa API — hãy dùng thử trực tiếp; tầng công khai áp dụng giới hạn tốc độ công bằng theo IP máy khách và trả về 429 khi vượt quá. Khóa API riêng được nhà vận hành cấp cho các tích hợp đã xác nhận; trang này không hiển thị cổng đăng ký tự phục vụ không tồn tại.

Phản hồi bằng khóa riêng trả về X-RateLimit-Limit, X-RateLimit-RemainingX-RateLimit-Reset. Khi gặp 429, hãy chờ theo hướng dẫn trong phản hồi — đừng thử lại ngay lập tức mà không giới hạn.