· Руководства  · 2 мин. чтения

Как интегрировать Яндекс Поиск API в ваше приложение

Пошаговое руководство по подключению Tavily-совместимого поиска для русскоязычного контента.

Пошаговое руководство по подключению Tavily-совместимого поиска для русскоязычного контента.

Стандартные поисковые API (Google, Bing, Brave) плохо работают с русским языком. Они не понимают морфологию, пропускают региональные сайты, дают нерелевантные результаты для кириллицы.

UnoAPI Search решает эту проблему: под капотом Яндекс, но с Tavily-совместимым интерфейсом.

Почему не напрямую в Яндекс?

Яндекс предоставляет Search API, но:

  • Сложная OAuth-авторизация
  • Нестандартный формат ответов
  • Требует привязки к Яндекс Cloud

UnoAPI даёт простой REST API с Bearer-токеном и стандартным JSON.

Шаг 1: Получите API-ключ

  1. Зарегистрируйтесь на unoapi.ru/dash
  2. Создайте API-ключ с доступом к сервису “Поиск”
  3. Сохраните ключ (показывается один раз)

Шаг 2: Сделайте первый запрос

cURL

curl -X POST https://proxy.unoapi.ru/v1/search/yandex \
  -H "Authorization: Bearer sk_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "лучшие рестораны москвы",
    "max_results": 10
  }'

Python

import requests

def search(query: str, max_results: int = 10):
    response = requests.post(
        "https://proxy.unoapi.ru/v1/search/yandex",
        headers={"Authorization": "Bearer sk_xxx"},
        json={"query": query, "max_results": max_results}
    )
    return response.json()

results = search("лучшие рестораны москвы")
for r in results["results"]:
    print(f"{r['title']}: {r['url']}")

JavaScript/TypeScript

async function search(query: string, maxResults = 10) {
  const response = await fetch('https://proxy.unoapi.ru/v1/search/yandex', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer sk_xxx',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ query, max_results: maxResults })
  });
  return response.json();
}

const results = await search('лучшие рестораны москвы');
results.results.forEach(r => console.log(`${r.title}: ${r.url}`));

Шаг 3: Обработайте результаты

Ответ содержит:

{
  "results": [
    {
      "title": "Топ-50 лучших ресторанов Москвы 2026",
      "url": "https://example.ru/restaurants",
      "content": "Рейтинг лучших ресторанов столицы по версии...",
      "score": 0.95
    }
  ],
  "query": "лучшие рестораны москвы"
}
ПолеОписание
titleЗаголовок страницы
urlСсылка на источник
contentСниппет (релевантный фрагмент)
scoreРелевантность (0-1)

Расширенные параметры

{
  "query": "ремонт квартиры",
  "search_depth": "advanced",
  "max_results": 20,
  "include_domains": ["houzz.ru", "remont.ru"],
  "exclude_domains": ["spam-site.ru"]
}
  • search_depth: basic (быстрый) или advanced (глубокий)
  • include_domains: искать только на этих сайтах
  • exclude_domains: исключить сайты

Интеграция с Tavily SDK

Если вы уже используете Tavily, переключение — это одна строка:

from tavily import TavilyClient

client = TavilyClient(api_key="tvly-xxx")

client = TavilyClient(
    api_key="sk_xxx",
    base_url="https://proxy.unoapi.ru/v1"
)

results = client.search("запрос")

Кэширование

UnoAPI кэширует результаты поиска на 1 час. Кэшированные запросы стоят 10% от обычной цены.

Чтобы получить свежие данные:

{
  "query": "новости сегодня",
  "cache": false
}

Что дальше?

Назад в блог

Похожие статьи

Все статьи »