Skip to content
SpideyData

Schema reference

SERP JSON API

Know every field before you integrate.

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

This page is the schema sheet: every field of SerpOrganicResponse, SerpNewsResponse and SerpImagesResponse, with nullability marked. Other SERP pages show excerpts; this one is complete.

Baidu and Ecosia endpoints opening soon.

Images response excerpt
{"engine":"google","vertical":"images","query":{"q":"aurora","country":"NO"},
 "images":[{"rank":1,"title":"…","url":"…","source_url":"…","domain":"…","alt":null}],
 "images_count":1}

Three response item tables

rank

Type: integer

Nullable: yes

title

Type: string

Nullable: no

url

Type: string

Nullable: no

display_url

Type: string

Nullable: yes

snippet

Type: string

Nullable: yes

rank

Type: integer

Nullable: yes

title

Type: string

Nullable: no

url

Type: string

Nullable: no

snippet

Type: string

Nullable: yes

source

Type: string

Nullable: yes

date

Type: string

Nullable: yes

image_url

Type: string

Nullable: yes

rank

Type: integer

Nullable: yes

title

Type: string

Nullable: no

url

Type: string

Nullable: no

source_url

Type: string

Nullable: yes

encoded_url

Type: string

Nullable: yes

subtitle

Type: string

Nullable: yes

alt

Type: string

Nullable: yes

domain

Type: string

Nullable: yes

Envelope fields

Every response wraps its items in the same envelope.

engine

Present on: all

Notes: google, bing, yahoo, duckduckgo, baidu or ecosia.

vertical

Present on: news, images

Notes: news or images.

query

Present on: all

Notes: Echo of {q, country}.

request_url

Present on: all

Notes: The results-page URL that was fetched.

status_code

Present on: all

Notes: Upstream HTTP status.

classification

Present on: all

Notes: Fetch classification label.

modules

Present on: organic

Notes: Open object (additionalProperties); no sub-module is promised.

organic_count / news_count / images_count

Present on: per vertical

Notes: Length of the item array.

Structured JSON only

No HTML or Markdown output is offered. If you need the page itself, this is the wrong product.

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

  • No HTML or Markdown output.
  • No promise about what modules contains.
  • No ads, knowledge graph or AI Overview fields.

Frequently asked questions

Which fields can be null?

In organic rows: rank, display_url and snippet. In news rows: rank, snippet, source, date and image_url. In image rows: rank, source_url, encoded_url, subtitle, alt and domain.

Is HTML ever returned?

No. Only structured JSON is delivered.

What is modules?

An open object (additionalProperties). No specific sub-module is promised.

How do I count results?

Read organic_count, news_count or images_count.

Build against a known schema

Get an API key; the fields above are what your parser will see.

Baidu and Ecosia endpoints opening soon.