Перейти к содержимому

Tavily-совместимый API

Клиенты Tavily работают с UnoAPI без изменений в коде: укажите базовый URL https://proxy.unoapi.ru и ключ UnoAPI вместо tvly-…. Поиск идёт через Яндекс, извлечение страниц — через Smart Scrape.

from tavily import TavilyClient
client = TavilyClient(api_key="sk_…", base_url="https://proxy.unoapi.ru")
client.search("лучшие рестораны москвы")
client.extract(["https://example.com/"])
Эндпоинт Псевдоним Что внутри
POST /v1/tavily/search POST /search Умный поиск Яндекса — тот же движок, что у /v1/search/yandex
POST /v1/tavily/extract POST /extract Smart Scrape для каждого URL
Окно терминала
curl -X POST "https://proxy.unoapi.ru/v1/tavily/extract" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://example.com/", "https://ya.ru/"]}'
Поле Тип Описание
urls string | string[] Один URL или до 20. Обязательное.
extract_depth basic | advanced Принимается; оба режима — полный каскад.
timeout number, 1–60 Секунды на весь запрос, как в Tavily; по умолчанию 30 (SDK всегда передаёт 30). Все URL, включая ожидание свободного браузера, укладываются в него; большую часть времени каждого URL получает браузер.
format и остальные поля Tavily Принимаются и игнорируются; raw_content — всегда Markdown. Неизвестные поля не ломают запрос.

Ответ — формат Tavily: results[] с url и raw_content, failed_results[] с url и error, response_time. Статус 200, даже если все URL в failed_results; порядок соответствует запросу. В одном ответе — не больше 16 МБ raw_content, повторы URL считаются каждый раз: документы сверх лимита (какие именно — зависит от того, какие загрузятся первыми) попадают в failed_results и оплачиваются, так как уже загружены. Повторяющиеся URL (и разные написания одного адреса) загружаются и оплачиваются один раз.

Каждый URL оплачивается по ставке, до которой дошёл каскад — как у Smart Scrape: 1 копейка без Chromium, 10 копеек с ним, включая неудачную попытку браузера. Отклонённые URL, ошибки сервиса и занятый пул браузеров не оплачиваются. Перед запросом резервируется браузерная ставка за каждый URL, списывается фактическое.

Заголовок Пример Значение
X-Cost-Cents 21 Сумма за запрос, копейки
X-Extract-Tiers cheap=11,browser=1 Из чего она сложилась; отсутствует, если ничего не оплачено

Пакет не вытесняет одиночные запросы: браузеры для него выделяются из отдельной половины пула. Если запрос не помещается в оставшийся лимит узла (по умолчанию 40 одновременных загрузок), ответ 503 — повторите позже.

Миграция — только базовый URL: https://api.tavily.com → https://proxy.unoapi.ru.