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
/api/v1/searchcurl "https://tutusoo.com/api/v1/search?q=rust&limit=5"Tham số truy vấn
| Tham số | Kiểu | Mô tả |
|---|---|---|
| q* | string | Truy vấn tìm kiếm (bắt buộc); nhiều từ mặc định AND (phải khớp tất cả) |
| limit | int | Số kết quả, mặc định 10, tối đa 100 |
| offset | int | Độ lệch phân trang, mặc định 0, tối đa 990 |
| lang | string | Bộ lọc ngôn ngữ, vd zh / en |
| time_range | string | Khoảng thời gian lập chỉ mục: 1d/7d/30d/1y/all (theo crawled_at) |
| site | string | Giới hạn theo tên miền trang |
| lang_priority | string | Ư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:domain | Giới hạn theo trang, vd site:github.com rust |
| intitle:word | Chỉ khớp tiêu đề chứa từ đó |
| "exact phrase" | Mọi từ trong cụm phải xuất hiện |
| -exclude | Loại kết quả chứa từ đó, vd rust -tutorial |
| A OR B | Khớp một trong hai, vd rust OR golang |
| filetype:type | Lọ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)
/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-Remaining và X-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.


















