Skip to content
SpideyData

SERP guide · comparison table

SERP API vs Google Custom Search

Google: live · not GA

A reference table, not an essay: twelve rows that set a live SERP API next to Google's Custom Search JSON API, using Google's documentation for the Custom Search column.

Published · Updated

Twelve rows, side by side

Custom Search facts come from Google's public documentation; quotas and prices are left to that documentation.

Data source

/v1/serp: The live public results page, fetched per request

Custom Search JSON API: The index behind a Programmable Search Engine you configure

Engines

/v1/serp: Google, Bing, Yahoo, DuckDuckGo, Baidu and Ecosia organic

Custom Search JSON API: Google only

News and Images

/v1/serp: Google News (news[]) and Google Images (images[]) endpoints

Custom Search JSON API: Image search via a search type parameter; see Google's docs

Locale parameters

/v1/serp: country and hl (Google and Ecosia bodies)

Custom Search JSON API: gl, hl and related parameters per Google's docs

Async

/v1/serp: Google tasks: POST …/tasks returns 202, then poll GET /v1/serp/tasks/{task_id}

Custom Search JSON API: Synchronous requests

Billing unit

/v1/serp: Display rate 2 Credits per successful search; failed searches are not charged

Custom Search JSON API: Per Google's pricing page

Official status

/v1/serp: Third-party SERP API, not affiliated with Google

Custom Search JSON API: Google's own API

Site restriction

/v1/serp: None: public results only

Custom Search JSON API: Yes, through cx

Result fields

/v1/serp: organic[]: rank, title, url, display_url, snippet; organic_count

Custom Search JSON API: items[] with title, link, snippet and more per Google's docs

Errors

/v1/serp: 400, 401, 402, 403, 409, 429, 502, 503

Custom Search JSON API: Per Google's docs

Idempotency

/v1/serp: Idempotency-Key header, 1–128 characters

Custom Search JSON API: Not documented as a feature

Terms

/v1/serp: SpideyData terms; you assess the terms of the sites you research

Custom Search JSON API: Google's API terms of service

An observation developers report

Developers on Stack Overflow have reported that Custom Search results do not always match what a browser shows for the same query. We note this only as a reported observation: the two read different sources, so differences are expected, not a sign that either one is wrong.

If your product shows users where a page ranks in the browser, a live SERP is the closer source. If it searches your own content, Custom Search is built for that.

When to pick which

  1. Searching your own site or a fixed site list: Custom Search.
  2. Reporting public rank positions, or the same query across engines: a live SERP API.
  3. Both needs at once: run both and keep their numbers in separate columns.

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.

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.

Frequently asked questions

Which one returns live ranking positions?

The SERP API: organic[].rank is the position on the fetched results page. rank can be null when a position cannot be read.

Does SpideyData support async requests?

Yes, for Google: organic, news and images tasks return 202 with a job, and you poll GET /v1/serp/tasks/{task_id} until it completes. Polling is free.

What error do I get without enough Credits?

402 InsufficientCredits. Add Credits and retry with the same Idempotency-Key.

Need public rank positions?

Use the live SERP column: one Bearer key, organic[] with rank, and the same shape on six engines.