OpenSERP — self-hosted SERP API для AI, SEO и автоматизации
📂 Исходный код на GitHubSelf-hosted SERP API на Go с поддержкой Google, Yandex, Bing, Baidu, DuckDuckGo и Ecosia. Браузерный рендеринг, извлечение контента страниц, megasearch, MCP-сервер для AI-агентов, SDK для Python и TypeScript.
OpenSERP — бесплатный open-source SERP API и CLI для живых поисковых данных из шести поисковиков: Google, Yandex, Baidu, Bing, DuckDuckGo и Ecosia. Написан на Go, MIT-лицензия, 1.1k звёзд на GitHub. Особенно полезен, когда рабочему процессу нужно покрытие RU/CN-сегмента веба, а не очередное Google-only API.
Запускается локально, на своём сервере или через облачную версию. Одинаковые эндпоинты и схема ответа — клиентский код мигрирует в любую сторону без привязки к вендору.
Возможности
- Мульти-движок — отдельные эндпоинты для Google, Yandex, Baidu, Bing, DuckDuckGo, Ecosia со стабильным JSON для SEO-пайплайнов
- Megasearch —
/mega/searchвыполняет один запрос через все выбранные движки, сливает и дедуплицирует результаты - Извлечение контента — возвращает результаты поиска вместе с чистым markdown/text содержимым целевых страниц в одном вызове
- SERP-фичи — AI-саммари, answer boxes, people-also-ask, related searches
- Поиск картинок —
/bing/image,/mega/image - Продвинутые фильтры — язык, диапазон дат, тип файла, поиск по сайту
- Форматы ответа — JSON, Markdown, Text, NdJSON
- Прокси и кэш — HTTP и SOCKS5 прокси, пулы с тегами, настраиваемый кэш
- Docker — готовые образы на Docker Hub
SDK и интеграции
| Тип | Пакет | Установка |
|---|---|---|
| JavaScript / TypeScript SDK | @openserp/sdk |
npm install @openserp/sdk |
| Python SDK | openserp |
pip install openserp |
| MCP-сервер (AI-агенты) | @openserp/mcp |
npx @openserp/mcp |
| n8n community node | @openserp/n8n-nodes-openserp |
Через n8n community nodes |
MCP-сервер позволяет AI-агентам (Claude, OpenCode, Cursor) выполнять поисковые запросы напрямую — это превращает OpenSERP в инструмент заземления (grounding) для LLM и RAG-пайплайнов.
Быстрый старт
Docker:
docker run --rm -p 127.0.0.1:7000:7000 karust/openserp:latest serve -a 0.0.0.0 -p 7000
Go install:
go install github.com/karust/openserp@latest
openserp search duckduckgo "open source serp api" --format markdown
Первый запрос:
curl "http://127.0.0.1:7000/mega/search?engines=bing,google&text=golang+vs+rust&extract=1&mode=any"
Megasearch: три режима
| Режим | Поведение |
|---|---|
balanced |
Параллельный запрос ко всем движкам, слияние и дедупликация результатов |
fast |
Минимальная задержка — используется самый быстрый доступный движок |
any |
Последовательный перебор движков, пока один не ответит |
Результаты дедуплицируются по нормализованному URL, кластеры сохраняют информацию о том, какой движок что нашёл.
CLI-поиск
Сервер не обязателен — можно искать прямо из терминала:
openserp search google "golang generics" --limit 20
openserp search yandex "wetter berlin" --format text --lang DE --region DE
openserp search bing "release notes" --site github.com --format ndjson
openserp search google "llm observability" --extract 2 --format markdown
CLI разделяет те же движки, форматы и фильтры, что и API.
Параметры запросов
Основные параметры: text (поисковый запрос), lang (EN, DE, RU, ES), region (DE, en-GB, Berlin), date (20250101..20251231), file (pdf, doc, xls), site (github.com), limit (до 100), start (смещение пагинации), format (json, markdown, text, ndjson).
Параметр extract извлекает и встраивает контент целевых страниц для топ-N результатов (1-5). Стратегия извлечения: auto (raw HTTP, затем браузер при необходимости), fast (только raw HTTP), rendered (всегда браузер).
Прокси и отказоустойчивость
OpenSERP поддерживает HTTP и SOCKS5 прокси. Расширенная конфигурация через config.yaml: tagged proxy pools и per-request override через заголовки X-Use-Proxy: <tag> или X-Use-Proxy: direct. Эндпоинты health, ready, stats, stats/cache, stats/proxy, stats/cb для мониторинга.
Когда использовать
- AI-агенты и RAG: заземление LLM через поиск + извлечение контента
- SEO-трекинг: отслеживание позиций в поисковой выдаче Google, Yandex, Baidu
- Мультиязычные проекты: когда нужно покрытие RU/CN-сегмента, а не только Google
- Автоматизация: n8n-нода, CLI, SDK — встраивается в любые пайплайны
Облачная версия на openserp.org/cloud — те же эндпоинты, обслуживается командой проекта. Каждый запрос через облако помогает финансировать и улучшать open-source ядро.
Источник: https://github.com/karust/openserp