News Search
The google_search
source is designed to retrieve Google Search results (SERPs). This sub-page specifically presents data related to Google News Search. To explore other result types, read here: Web Search, Image Search.
To scrape Google News search, include the context:udm
parameter with value set to 12
or context:tbm
parameter with the value set to nws
.
Request samples
In the examples below, we make a request to obtain News search result pages for the search term adidas
on the google.nl
domain.
udm
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "google_search",
"domain": "nl",
"query": "adidas",
"parse": true,
"context": [
{
"key": "udm",
"value": "12"
}
]
}'
tbm
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "google_search",
"domain": "nl",
"query": "adidas",
"parse": true,
"context": [
{
"key": "tbm",
"value": "nws"
}
]
}'
We use synchronous Realtime integration method in our examples. If you would like to use Proxy Endpoint or asynchronous Push-Pull integration, refer to the integration methods section.
Request parameter values
Generic
Basic setup and customization options for scraping Google News search results.
source
Sets the scraper.
google_search
query
The keyword or phrase to search for.
-
context: tbm
To get News search results, set value to nws. Other accepted values are: app
, blg
, bks
, dsc
, isch
, pts
, plcs
, rcp
, lcl
-
- mandatory parameter
- udm
and tbm
context parameters cannot be used together in a single scraping request; please select one of them. Using both simultaneously may lead to conflicts or unexpected behavior.
Google Advanced Search Operators
When scraping, you might find it useful to combine Google advanced search operators with your query. It enables you to customize the scope of the search, ensuring that the results are more relevant and focused. Explore these special commands here and here. See an example below.
{
"source": "google_search",
"query": "iphone 15 launch inurl:apple",
}
Localization
Adapt search results to specific geographical locations, domains, and languages.
geo_location
The geographical location that the result should be adapted for. Using this parameter correctly is extremely important to get the right data. For more information, read about our suggested geo_location
parameter structures here.
-
locale
Accept-Language
header value which changes your Google search page web interface language. More info.
-
Pagination
Controls for managing the pagination and retrieval of search results.
start_page
Starting page number.
1
pages
Number of pages to retrieve.
1
limit
Number of results to retrieve in each page.
10
context
:
limit_per_page
If you want to scrape multiple pages with the same IP address, include a JSON array and specify the page numbers using the page
key. You must also indicate the number of organic results on each page by adding a limit
key. See example.
-
Limit per page
To use this feature, include a JSON array with JSON objects containing the following data:
page
The number of the page you would like to scrape. Any integer value greater than 0
will work
1
limit
The number of results on the page in question. Any integer value between 1
and 100
(inclusive) will work.
90
Request sample
{
"source": "google_search",
"query": "adidas",
"parse": true,
"context": [
{
"key": "limit_per_page",
"value": [
{"page": 1, "limit": 10},
{"page": 2, "limit": 90}
]
}]
}
Filtering
Options to filter and refine search results based on various criteria.
context
:safe_search
Safe search. Set to true
to enable it.
false
context
:
tbs
tbs
parameter. This parameter is like a container for more obscure google parameters, like limiting/sorting results by date as well as other filters some of which depend on the tbm
parameter (e.g. tbs=app_os:1
is only available with tbm
value app
). More info here.
-
Other
Additional advanced settings and controls for specialized requirements.
context
:
nfpr
true
will turn off spelling auto-correction
false
Context parameters
All context parameters should be added to the context
array as objects with key
and value
pairs, e.g.:
...
"context": [
{
"key": "filter",
"value": "0"
}
]
...
Structured data
SERP Scraper API is capable of extracting either an HTML or JSON object that contains Google search results, offering structured data on various elements of the results page.
Output data dictionary
HTML example

JSON structure
The Google News Search structured output includes fields like URL
, page
, results
, and others. The table below presents a detailed list of each SERP feature we parse, along with its description and data type. The table also includes some metadata.
url
The URL of the Google search page.
string
results
A dictionary containing the results of the search.
array
results.main
A list of unpaid news results with their respective details.
array
results.additional
A list of trending articles with their respective details.
object
results.total_results_count
The total number of results found for the search query.
array
parse_status_code
The status code of the parsing job. You can see the parser status codes described here.
integer
created_at
The timestamp when the scraping job was created.
timestamp
updated_at
The timestamp when the scraping job was finished.
timestamp
page
Page number relative to the Google SERP pagination.
integer
job_id
The ID of the job associated with the scraping job.
string
status_code
The status code of the scraping job. You can see the scraper status codes described here.
integer
Main
Displays a list of unpaid news results, providing relevant details for each article.

...
"main": [
{
"url": "https://www.yahoo.com/lifestyle/tiger-woods-nikes-epic-partnership-015311819.html",
"desc": "That there could ever be a world in which Tiger Woods wasn't sponsored by \nNike seemed...",
"title": "How Tiger Woods and Nike's Epic Partnership Fell Apart",
"source": "Yahoo",
"pos_overall": 1,
"relative_publish_date": "1 day ago"
},
...
},
...
url
The URL to the full article.
string
desc
A short excerpt from the full article.
string
title
The title of the article.
string
source
The name of the website where the article is published.
string
pos_overall
Indicates the overall position of the result within the main results of News SERP.
integer
relative_publish_date
Describes how long ago the article was published.
string
Additional
Presents a list of trending articles, accompanied by relevant details.

...
"additional": [
{
"items": [
{
"pos": 1,
"url": "https://www.complex.com/sneakers/a/brendan-dunne/nike-book-1-colorways-haven-hike-rattlesnake",
"title": "Nike Book 1 Colorways Haven Hike Rattlesnake",
"source": "Complex",
"relative_publish_date": "1 day ago"
},
...
],
"pos_overall": 2,
"section_title": "Devin Booker confirms issues with Nike Book 1 launch"
}
...
items
A list of articles with their respective details.
array
items.pos
A unique indicator denoting the article position in the list.
integer
items.url
The URL to the full article.
string
items.title
The title of the article.
string
items.source
The name of the website where the article is published.
string
items.relative_publish_date
Describes how long ago the article was published.
string
pos_overall
Indicates the overall position of the result within the additional results of News SERP.
integer
section_title
The name of the additional section.
string
Last updated
Was this helpful?