official page

Free Open Source
SERP API & CLI

Self-host search engine result scraping for Google, Bing, Yandex, Baidu, and DuckDuckGo. No subscription. No API keys. No vendor lock-in.

Google Bing Yandex Baidu DuckDuckGo
Quick install
$ 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"

Start with the README

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.

Everything you need, nothing you don't

A lean Go library and HTTP server. Zero dependencies on third-party SERP providers.

REST API server

Spin up a local HTTP server. Query any supported engine via standard GET requests.

>_

CLI tool

Run searches directly from the terminal. Pipe results into scripts and automation workflows.

{ }

Go library

Import and embed directly into your Go application. Full programmatic access to all engines.

Self-hosted

Runs entirely on your infrastructure. Your queries stay private. No rate limits from a third party.

$0

Completely free

Open source. No API keys. No billing. No usage tiers. No account required.

Structured output

Returns JSON results with title, URL, description, and position for each result.

Multi-engine support

Unified API surface across five major search engines.

Engine API CLI Notes
Google Organic results, full pagination
Bing - Web results
Yandex Russian-language results supported
Baidu Chinese search market coverage
DuckDuckGo - Privacy-preserving engine

Built for developers

Common tasks that OpenSERP handles out of the box.

01
Rank tracking & SEO monitoring Automate keyword rank checks across multiple engines without paying per-query API fees.
02
Research automation Aggregate search results programmatically for competitive analysis, content research, or data pipelines.
03
Self-hosted AI grounding Feed real-time web search results into LLM pipelines without depending on proprietary search APIs.
04
Multi-engine comparison Compare result sets across engines in a single request for research or quality analysis.
05
Internal tooling & dashboards Power internal search monitoring tools, news aggregators, or custom start pages.

Official project links

OpenSERP has one official codebase and one official domain.

Common questions

Questions from the community and GitHub issues.

Is OpenSERP really free?
Yes. OpenSERP is MIT-licensed open source. You download and run it yourself. There is no hosted service, no paid tier, no API key billing.
Where are the current docs?
The GitHub README is the current canonical documentation for install commands, API examples, proxy setup, health checks, and response examples.
What language is it written in?
Go. It compiles to a single binary with no runtime dependencies. Install with go install github.com/karust/openserp@latest or pull from Docker Hub.
Does it need a headless browser?
Some engines (Google, Yandex) use a headless Chromium instance for rendering. Others work with plain HTTP requests. The Docker image includes all required dependencies.
What does the API response look like?
Each result is a JSON object with title, url, description, and rank fields. The full schema is documented in the GitHub repository README.
Can I embed it in my own Go application?
Yes. Import the package directly: import "github.com/karust/openserp". Each engine exposes a common interface so you can swap or combine engines in your own code.