Self-host search engine result scraping for Google, Bing, Yandex, Baidu, and DuckDuckGo. No subscription. No API keys. No vendor lock-in.
$ go install github.com/karust/openserp@latest
$ docker run -p 7000:7000 karust/openserp serve -a 0.0.0.0
-p 7000
$ curl
"http://127.0.0.1:7000/google/search?text=openserp&limit=5"
The GitHub README is the current canonical documentation for OpenSERP. It includes Docker and source install steps, multi-engine API examples, image search, proxy configuration, health checks, stats endpoints, and the active serp API response examples.
A lean Go library and HTTP server. Zero dependencies on third-party SERP providers.
Spin up a local HTTP server. Query any supported engine via standard GET requests.
Run searches directly from the terminal. Pipe results into scripts and automation workflows.
Import and embed directly into your Go application. Full programmatic access to all engines.
Runs entirely on your infrastructure. Your queries stay private. No rate limits from a third party.
Open source. No API keys. No billing. No usage tiers. No account required.
Returns JSON results with title, URL, description, and position for each result.
Unified API surface across five major search engines.
| Engine | API | CLI | Notes |
|---|---|---|---|
| ✓ | ✓ | Organic results, full pagination | |
| Bing | ✓ | - | Web results |
| Yandex | ✓ | ✓ | Russian-language results supported |
| Baidu | ✓ | ✓ | Chinese search market coverage |
| DuckDuckGo | ✓ | - | Privacy-preserving engine |
Common tasks that OpenSERP handles out of the box.
OpenSERP has one official codebase and one official domain.
Other sites, with similar names are not affiliated with this project. They use the OpenSERP name and branding to appear legitimate. This project is free and open-source - currently, there is no paid service, no SaaS tier, and no commercial offering under the OpenSERP name.
Questions from the community and GitHub issues.
go install github.com/karust/openserp@latest or pull from Docker Hub.
title, url,
description, and rank fields. The full schema is documented
in the GitHub repository README.
import "github.com/karust/openserp".
Each engine exposes a common interface so you can swap or combine engines in your own
code.