Google Schedule SERP (Top 100 results)
This endpoint schedules one or more Google SERP scraping tasks that fetch up to the top 100 results by iterating result pages using the max_pages parameter from the advanced Google SERP flow.
Why this endpoint?
Google recently restricted the num
parameter to a maximum of 10 results per request. To overcome this limitation, we introduced a new endpoint that can fetch results from multiple pages.
How it works
max_pages
defines how many result pages you want scraped.Each page contains up to 10 results.
Example:
max_pages=5
→ up to 50 results (5 pages × 10 results per page)max_pages=10
→ up to 100 results (10 pages × 10 results per page)
Pricing
Credits are deducted upfront per task based on max_pages; 1 page = 1 credit credit reserved per task at scheduling time.
If fewer pages are actually available than requested, unused reserved credits are automatically returned after processing completes.
Example: When we set
max_pages=7
but only 2 pages exist, 7 credits are reserved initially, 2 credits are consumed, and 5 credits are returned to the account after completion.
Requires authentication
POST
https://api.serphouse.com/serp/google_advanced_scheduled
Headers
Authorization*
String
Bearer <YOUR_API_KEY>
Content-Type*
String
application/json
Request Body
q*
string
Search phrase that you want to search
domain*
string
Choose google ,bing or yahoo domain.
You can get the list of available search engines by making a separate request to the List of Search Engines
lang*
string
You can set language for e.g. en
for english fr
for french.
Get the list of available languages by making a separate request to the List of Language
device*
string
Device can be
desktop
To extract desktop result
tablet
To extract tablet result
mobile
To extract mobile result
loc*
string
Optional field if you specify loc_id
when choose yahoo domain then field is optional
You must choose one of the fields: loc_id
or loc
You can receive the list of available locations of search engines with their loc_id by making a separate request to the List of Locations
loc_id*
integer
Optional field if you specify loc
you must choose one of the fields: loc_id
or loc
You can receive the list of available locations of search engines with their loc_id by making a separate request to the
List of Locations
verbatim
integer
Set Google Verbatim search, Parameter value can be 0
or 1
gfilter
integer
Parameter defines if the filters for 'Similar Results' and 'Omitted Results' are on or off. It can be set to 1
(default) to enable these filters, or 0
to disable these filters.
postback_url
url
return URL for sending task results
If you specify the Postback URL there will be no need to use Get SERP Tasks Results for obtaining results. We will send the result of a completed task by a POST request to the URL as soon as the task is completed. You can change your webhook setting from Webhook Settings Page.
pingback_url
url
Pingback URL is Notification URL of a completed task, When a task is completed we will notify you by GET request sent to the URL you have specified. You can change your webhook setting from Webhook Settings Page.
max_pages
integer
Number of pages to return (e.g., max_pages=4
gives 4 pages, allowed range 1–10, default = 10).
date_range
String
Sometimes you may want to only find information published during a specific time frame. To limit Google results by date
Parameter values can be comma seprated date range YYYY-MM-DD,YYYY-MM-DD
OR
h
Past hour
d
Past 24 hours
w
Past week
m
Past month
y
Past year
{
"status": "success",
"msg": "Task(s) successfully scheduled",
"results": [
{
"user_id": 4281,
"se": "google_advanced",
"q": "Cold Cofee",
"domain": "google.com",
"lang": "en",
"country_iso": "GB",
"loc": "London,England,United Kingdom",
"lat": "51.51",
"long": "-0.13",
"device": "desktop",
"verbatim": 0,
"date_range": null,
"gfilter": "1",
"pingback_url": null,
"postback_url": null,
"is_scheduled": 1,
"page": 1,
"num_result": 50,
"updated_at": "2025-10-03T09:42:08.000000Z",
"created_at": "2025-10-03T09:42:08.000000Z",
"id": 211237003,
"max_pages": 5
},
{
"user_id": 4281,
"se": "google_advanced",
"q": "Coffee",
"domain": "google.com",
"lang": "en",
"country_iso": "RU",
"loc": "Russia",
"lat": "61.52",
"long": "105.32",
"device": "desktop",
"verbatim": 0,
"date_range": null,
"gfilter": "1",
"pingback_url": null,
"postback_url": null,
"is_scheduled": 1,
"page": 1,
"num_result": 80,
"updated_at": "2025-10-03T09:43:23.000000Z",
"created_at": "2025-10-03T09:43:23.000000Z",
"id": 211237016,
"max_pages": 8
},
{
"user_id": 4281,
"se": "google_advanced",
"q": "Tea",
"domain": "google.com",
"lang": "en",
"country_iso": "US",
"loc": "Alba,Texas,United States",
"lat": "32.79",
"long": "-95.63",
"device": "desktop",
"verbatim": 0,
"date_range": null,
"gfilter": "1",
"pingback_url": null,
"postback_url": null,
"is_scheduled": 1,
"page": 1,
"num_result": 50,
"updated_at": "2025-10-03T09:41:04.000000Z",
"created_at": "2025-10-03T09:41:04.000000Z",
"id": 211236971,
"max_pages": 5
}
]
}
Example request:
curl --location --request POST 'https://api.serphouse.com/serp/google_advanced_scheduled' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
"data": [
{
"q": "Cold Cofee",
"domain": "google.com",
"lang": "en",
"device": "desktop",
"loc": "London,England,United Kingdom",
"verbatim": 0,
"max_pages":5
},
{
"q": "Coffee",
"domain": "google.com",
"lang": "en",
"device": "desktop",
"loc": "Russia",
"verbatim": 0,
"max_pages":8
},
{
"q": "Tea",
"domain": "google.com",
"lang": "en",
"device":"desktop",
"loc": "Alba,Texas,United States",
"verbatim": 0,
"max_pages":5
}
]
}'
Last updated
Was this helpful?