Schema reference
SERP JSON API
Know every field before you integrate.
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.
{"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.
- 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
- 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.