API

Поисковый API для ИИ

Один HTTP-запрос возвращает структурированные результаты — веб-поиск в реальном времени для ИИ-приложений, RAG и агентов. Альтернатива 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:domainОграничить сайтом, напр. site:github.com rust
intitle:wordСовпадает только с заголовками, содержащими слово
"exact phrase"Каждое слово фразы должно присутствовать
-excludeИсключить результаты со словом, напр. rust -tutorial
A OR BСовпадает с любым, напр. rust OR golang
filetype:typeФильтр по типу файла (pdf/doc/ppt/xls), напр. filetype:pdf

Ответ

{
  "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: отображаемое имя; может отсутствовать — откат к domain. source: local = наш индекс / brave = веб-фолбэк при нехватке локальных результатов. has_llms_txt: предоставляет ли целевой сайт llms.txt (дружелюбно к ИИ).

Получить полный текст (RAG)

GET /api/v1/content/{id}

Если у результата source=local и непустой id, получите его полный текст для LLM. У внешних фолбэк-результатов нет локального тела, и этот эндпоинт им недоступен.

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
}

Доступ и лимиты частоты

Публичные конечные точки поиска и контента не требуют входа или API-ключа — попробуйте их напрямую; публичный уровень применяет справедливое ограничение частоты по IP клиента и возвращает 429 при превышении. Выделенные API-ключи предоставляются оператором для подтверждённых интеграций; на этом сайте нет самостоятельной регистрации, которой не существует.

Ответы с выделенным ключом возвращают X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset. При 429 выдержите паузу согласно подсказкам ответа — не повторяйте запрос немедленно без ограничений.