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.

POST https://api.serphouse.com/serp/google_advanced_scheduled

Headers

Name
Type
Description

Authorization*

String

Bearer <YOUR_API_KEY>

Content-Type*

String

application/json

Request Body

Name
Type
Description

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?