Six engines, one schema
Multi-Engine SERP API
One query, six engines, one shape.
Send the same query to Google, Bing, Yahoo, DuckDuckGo, Baidu and Ecosia and compare organic[] side by side: every engine returns the same SerpOrganicResponse shape. Per-engine details live on each engine's page.
Baidu and Ecosia endpoints opening soon.
paths = ["google/organic", "ecosia/organic"] + [f"{e}/organic" for e in ("bing","yahoo","duckduckgo","baidu")]
results = {p: requests.post(f"{API}/v1/serp/{p}", headers=H, json={"q": "solar panels"}).json()
for p in paths}
overlap = set.intersection(*[{o["url"] for o in r["organic"]} for r in results.values()])Capability matrix
Organic: Yes
News: Yes
Images: Yes
Tasks: Yes
hl: Yes
Bing
Organic: Yes
News: No
Images: No
Tasks: No
hl: No
Yahoo
Organic: Yes
News: No
Images: No
Tasks: No
hl: No
DuckDuckGo
Organic: Yes
News: No
Images: No
Tasks: No
hl: No
Baidu
Organic: Yes
News: No
Images: No
Tasks: No
hl: No
Ecosia
Organic: Yes
News: No
Images: No
Tasks: No
hl: Yes
Google and Ecosia take SerpGoogleOrganicRequest (q, country, hl, device). Bing, Yahoo, DuckDuckGo and Baidu take SerpOrganicRequest (q, country); sending hl to them is rejected as an unknown field.
Fan-out comparison
- Pick one query and one country.
- POST it to the six /v1/serp/{engine}/organic paths; add hl only for Google and Ecosia.
- Collect the url set from each organic[].
- Intersect or diff the sets to see which results every engine agrees on.
Launch status for this page
Check engine availability before choosing an endpoint. Google also supports News, Images and asynchronous tasks.
- GoogleGoogle is callable today with a Bearer API key.
- BingBing is callable today with a Bearer API key.
- YahooYahoo is callable today with a Bearer API key.
- DuckDuckGoDuckDuckGo is callable today with a Bearer API key.
- BaiduBaidu endpoints opening soon: until they open, requests return 503 service_unavailable and are not charged.
- EcosiaEcosia endpoints opening soon: until they open, requests return 503 service_unavailable and are not charged.
SERP searches are charged per successful search at a display rate of 2 Credits per search; failed searches are not charged. Polling task status is free. The current rate is on Pricing.
What this is not
- Six engines only; no Yandex or Naver.
- News and images are Google-only.
- Tasks are Google-only.
- No cross-engine merge endpoint; compare client-side.
Frequently asked questions
Is the schema identical across engines?
Yes. Organic results from every engine use the SerpOrganicResponse shape.
Which engines take hl?
Google and Ecosia.
Which have news or images?
Only Google.
Price per engine?
The same everywhere: 2 Credits per completed search (display rate).
Compare engines with one parser
Get an API key and fan one query out to six engines.
Baidu and Ecosia endpoints opening soon.