API

API pencarian untuk AI

Satu permintaan HTTP mengembalikan hasil terstruktur — pengambilan web real-time untuk aplikasi AI, RAG, dan agen. Alternatif untuk Firecrawl · Exa · Tavily.

Mulai cepat

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

Parameter kueri

ParameterTipeDeskripsi
q*stringKueri pencarian (wajib); beberapa kata default AND (semua harus cocok)
limitintJumlah hasil, default 10, maks 100
offsetintOffset paginasi, default 0, maks 990
langstringFilter bahasa, mis. zh / en
time_rangestringRentang waktu indeks: 1d/7d/30d/1y/all (berdasarkan crawled_at)
sitestringBatasi ke domain situs
lang_prioritystringPrioritas bahasa (boost lembut, bukan filter keras): mis. zh menaikkan hasil bahasa yang cocok tanpa menyembunyikan lainnya; independen dari lang

Operator kueri (tulis di dalam q)

site:domainBatasi ke situs, mis. site:github.com rust
intitle:wordCocok hanya untuk judul yang berisi kata
"exact phrase"Setiap kata dalam frasa harus muncul
-excludeKecualikan hasil yang berisi kata, mis. rust -tutorial
A OR BCocok salah satu, mis. rust OR golang
filetype:typeFilter berdasarkan tipe file (pdf/doc/ppt/xls), mis. filetype:pdf

Respons

{
  "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: nama tampilan; bisa dihilangkan — kembali ke domain. source: local = indeks kami / brave = fallback web saat hasil lokal kurang. has_llms_txt: apakah situs target menyediakan llms.txt (ramah AI).

Ambil teks penuh (RAG)

GET /api/v1/content/{id}

Bila hasil memiliki source=local dan id tidak kosong, ambil teks lengkapnya untuk diberikan ke LLM. Hasil fallback eksternal tidak punya body lokal dan tak bisa memakai endpoint ini.

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
}

Akses & batas laju

Endpoint pencarian dan konten publik tidak memerlukan login atau kunci API — coba langsung; lapisan publik menerapkan pembatasan laju yang adil per-IP klien dan mengembalikan 429 saat terlampaui. Kunci API khusus disediakan oleh operator untuk integrasi yang dikonfirmasi; situs ini tidak menampilkan pendaftaran swalayan yang tidak ada.

Respons kunci khusus mengembalikan X-RateLimit-Limit, X-RateLimit-Remaining, dan X-RateLimit-Reset. Saat 429, mundur sesuai petunjuk respons — jangan langsung mencoba ulang tanpa batas.