TL;DR

OpenSERP là SERP API mã nguồn mở (MIT license), self-hosted, viết bằng Go. Hỗ trợ Google, Bing, Yandex, Baidu, DuckDuckGo và Ecosia - tất cả trong một REST endpoint. Deploy bằng một lệnh Docker, không API key, không giới hạn query. Phù hợp cho AI agent, RAG pipeline và SEO rank tracking - đặc biệt khi cần data từ thị trường Nga (Yandex) hoặc Trung Quốc (Baidu).

OpenSERP - Self-host SERP API hỗ trợ 6 search engine: Google, Bing, Yandex, Baidu, DuckDuckGo, Ecosia

Vấn đề với SERP API thương mại

Nếu bạn đang xây dựng AI agent, RAG pipeline hay hệ thống SEO monitoring, search data là nguyên liệu không thể thiếu. Vấn đề là các SERP API thương mại hiện tại không hề rẻ.

SerpAPI - một trong những tên tuổi phổ biến nhất - chỉ cho 250 query miễn phí mỗi tháng, sau đó tính từ $75/tháng cho 5.000 query. Với AI agent cần search nhiều lần trong một session, con số này cạn kiệt rất nhanh. Chưa kể lo ngại về privacy khi toàn bộ query đi qua server của bên thứ ba, và không phải provider nào cũng cover cả Yandex lẫn Baidu trong cùng một API.

Với các team đang xây LLM agent hoặc RAG pipeline, search là thao tác lặp lại liên tục - grounding, fact-checking, context enrichment. Mỗi agent run có thể gọi search hàng chục lần. Chi phí thương mại nhân với volume đó không còn là bài toán nhỏ. Một giải pháp self-hosted, không giới hạn query, kiểm soát hoàn toàn data trở thành nhu cầu thực tế chứ không chỉ là "nice to have".

OpenSERP ra đời giải quyết đúng những vấn đề đó: chi phí bằng 0, dữ liệu nằm trên server của bạn, và cover đủ 6 engine kể cả thị trường RU/CN.

OpenSERP hoạt động như thế nào

OpenSERP là một REST server viết bằng Go, chạy browser automation bên dưới để render và parse kết quả từ các search engine. Khi bạn gửi một query, nó mở browser headless, thực hiện tìm kiếm, trích xuất dữ liệu có cấu trúc và trả về theo format bạn chọn.

OpenSERP pipeline: một query đầu vào qua 6 engine, output JSON/Markdown/Text/NdJSON
Pipeline: một query vào, OpenSERP fan-out qua 6 engine, trả về JSON/Markdown/Text/NdJSON

Response trả về JSON có cấu trúc đồng nhất giữa các engine: title, URL, snippet, rank, và các SERP feature như AI summary, answer box, people-also-ask, related searches. Ngoài kết quả tìm kiếm, bạn còn có thể yêu cầu fetch luôn nội dung trang đích dưới dạng clean markdown - hữu ích cho RAG ingestion mà không cần thêm bước scraping riêng.

Khởi động trong 1 phút

Cách nhanh nhất là dùng Docker:

# Khởi động server trên port 7000
docker run --rm -p 127.0.0.1:7000:7000 karust/openserp:latest serve

# Search Google
curl "http://127.0.0.1:7000/google/search?text=golang+tutorial"

# Megasearch qua nhiều engine cùng lúc
curl "http://127.0.0.1:7000/mega/search?engines=google,bing,yandex&text=golang"

# Lấy kết quả dạng Markdown
curl "http://127.0.0.1:7000/baidu/search?text=ai+news&format=markdown"

Nếu muốn dùng CLI standalone mà không cần khởi động server:

go install github.com/karust/openserp@latest

# Search với format markdown
openserp search duckduckgo "your query" --format markdown

# Giới hạn số kết quả và chỉ định ngôn ngữ
openserp search google "term" --limit 20 --lang DE

# Search trong một domain cụ thể + fetch nội dung 2 trang đầu
openserp search bing "phrase" --site github.com --extract 2

Flag --extract 2 cho phép fetch nội dung của 2 trang đầu tiên trong kết quả, trả về clean text hoặc markdown trong cùng response - không cần thêm bước scraping riêng. Param --lang RU hay --lang ZH hữu ích khi cần kết quả ngôn ngữ cụ thể, đặc biệt với Yandex và Baidu.

Tính năng nổi bật

  • Megasearch: Gửi một query, fan-out qua nhiều engine đồng thời, merge và dedup kết quả tự động. Endpoint /mega/search?engines=google,bing,yandex,baidu - một call, tổng hợp từ nhiều nguồn.
  • URL extraction: Param extract=0-5 - fetch nội dung trang đích, trả về clean markdown hoặc plain text ngay trong cùng response. Zero hop thêm cho RAG pipeline.
  • Output formats: JSON (default), Markdown, Text, NdJSON. NdJSON phù hợp cho streaming hoặc pipeline xử lý line-by-line.
  • SERP feature parsing: Không chỉ 10 kết quả thông thường - OpenSERP còn parse AI summaries, answer boxes, people-also-ask, related searches khi có.
  • Advanced filtering: Language code (--lang RU), date range, file type, site-specific search (--site reddit.com), tối đa 100 kết quả mỗi query.
  • Proxy support: HTTP và SOCKS5 - thiết yếu khi chạy volume lớn để tránh rate limit từ các search engine.
  • SDK & integrations: npm package, PyPI package (openserp), MCP server (tích hợp Claude/Cursor trực tiếp), n8n node cho workflow automation không cần code.
  • Image search: Hỗ trợ tìm kiếm hình ảnh - hữu ích cho pipeline cần thu thập visual data.

So sánh với SerpAPI

Tiêu chíOpenSERP (OSS)SerpAPI
Chi phíMiễn phí$75/tháng (5.000 query)
Engine hỗ trợ6 engine (kể cả Yandex, Baidu)Chọn lọc, ít hơn
PrivacyData ở server bạnQuery qua server bên thứ ba
Rate limitTự quyết (hardware-bound)Theo plan trả phí
MegasearchCó - merge + dedup tự độngKhông
URL extractionCó (clean markdown)Không
SLA / SupportKhông (community)
Vận hànhTự host hoặc Cloud (pay-as-you-go)Managed

Điểm khác biệt quan trọng nhất không phải là giá - mà là coverage. Yandex và Baidu trong cùng một API là thứ rất ít provider thương mại cung cấp. Với team có thị trường ở Đông Âu hoặc Trung Quốc, đây là lợi thế thực sự.

OpenSERP Cloud là lựa chọn managed nếu bạn muốn API shape giống OSS nhưng không muốn tự vận hành server - có free starter credits, pay-as-you-go, không subscription bắt buộc.

Giới hạn cần biết

OpenSERP không phải silver bullet. Một số điểm cần cân nhắc trước khi deploy production:

  • Browser automation = resource nặng hơn: Mỗi request cần browser headless. RAM và CPU tiêu thụ đáng kể hơn so với API call thuần. Cần sizing server phù hợp nếu chạy volume lớn.
  • Block risk: Google và các search engine có cơ chế anti-bot. Volume lớn không có proxy rotation có thể bị block IP. Proxy support có sẵn nhưng bạn phải tự lo proxy pool.
  • Community support: Không có SLA, không có support ticket chính thức. Phù hợp cho team có kỹ thuật tự xử lý sự cố.
  • Kết quả phụ thuộc region: IP server của bạn ảnh hưởng đến kết quả trả về - đặc biệt với Baidu và Yandex vốn ưu tiên nội dung địa phương.

Ai nên dùng ngay

OpenSERP phù hợp nhất với những nhóm sau:

  • AI/LLM engineers: Cần search tool cho agent mà không muốn tốn tiền mỗi lần agent gọi search. MCP server integration cho phép kết nối trực tiếp với Claude, Cursor, Windsurf - zero config.
  • RAG pipeline builders: Kết hợp search results và URL extraction - fetch live web content dạng clean markdown, sẵn sàng cho chunking và embedding trong cùng một API call.
  • SEO teams đa thị trường: Theo dõi ranking đồng thời trên Google, Bing, Yandex, Baidu - đặc biệt hữu ích với sản phẩm có thị trường ở Nga hoặc Trung Quốc.
  • Researchers và automation builders: Volume query cao, competitive intelligence, data scraping quy mô lớn mà không muốn bị giới hạn bởi plan pricing hay vendor dependency.

Kết

OpenSERP lấp một khoảng trống thực sự: SERP API miễn phí, self-hosted, cover đủ 6 engine kể cả RU/CN, với megasearch và URL extraction tích hợp sẵn. Với AI agent và RAG pipeline ngày càng cần search data volume lớn, một giải pháp không giới hạn query và không vendor lock-in là lợi thế rõ ràng.

Nếu bạn cần SLA và không muốn lo infrastructure, OpenSERP Cloud là bước tiếp theo. Còn nếu dùng n8n, đã có node sẵn - không cần code thêm gì cả. Với Claude hay Cursor, MCP server cho phép agent gọi search trực tiếp như một tool native.

via GitHub karust/openserp