Skip to content
SpideyData

Six engines, one schema

Multi-Engine SERP API

One query, six engines, one shape.

Google, Bing, Yahoo and DuckDuckGo: live · Baidu and Ecosia: opening soon · not GA

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.

Python · fan out one query, intersect URLs
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

Google

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

  1. Pick one query and one country.
  2. POST it to the six /v1/serp/{engine}/organic paths; add hl only for Google and Ecosia.
  3. Collect the url set from each organic[].
  4. 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.

  • GoogleLiveGoogle is callable today with a Bearer API key.
  • BingLiveBing is callable today with a Bearer API key.
  • YahooLiveYahoo is callable today with a Bearer API key.
  • DuckDuckGoLiveDuckDuckGo is callable today with a Bearer API key.
  • BaiduOpening soonBaidu endpoints opening soon: until they open, requests return 503 service_unavailable and are not charged.
  • EcosiaOpening soonEcosia 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.