JustSERPDocs
Google

Google News

The articles in Google's News tab for a search: title, publisher, snippet, age, the time of the article (`iso_date`, from the page's own data), thumbnail and the story group each sits in (the `news_results` field names).

GET
/v1/google/news

The articles in Google's News tab for a search: title, publisher, snippet, age, the time of the article (iso_date, from the page's own data), thumbnail and the story group each sits in (the news_results field names). A page is 10 articles, or more when Google puts story groups ("Top news", "News about …") above them; pagination links the pages and start asks for one. Time filter: when; order: sort_by.

In the document form. $1 request $2 q and no query is the document-form Google News call (q, device desktop, location/uule, hl, gl, lr, cr, nfpr, filter, page, time_period, time_period_min/max, sort_by: most_recent, link), answered as the document: search_metadata, search_parameters, search_information (with total_results), organic_results, top_stories (the story groups above the list) and pagination. link: resolved expands the articles' Google redirects. location/uule had no effect on News in a test. Not returned: author, author_link, is_video, detected_location, did_you_mean; iso_date, section, news_id, story_id are ours and are left out.

Authorization

headerX-API-Key<token>

Your API key.

Query Parameters

cancel_token?string

A name you make up for this request (a UUID is fine), so you can later GET /v1/cancel with it. Only you know it, so only you can cancel. Use a new one for every request, retries included: a cancelled token stays cancelled for a few minutes.

Length1 <= length <= 128
query?string
Length1 <= length <= 2000
location?||string
when?string
Value in"hour""day""week""month""year"
sort_by?|
start?integer

The page offset: 0, 10, 20, …

Range0 <= value <= 990
Default0
q?string
Length1 <= length <= 2000
device?"desktop"

mobile and tablet are a 400.

Default"desktop"
Value in"desktop"
uule?string
hl?string
Default"en"
gl?string
Default"us"
lr?string

Languages, lang_xx, several joined by |.

cr?string

Countries, countryXX, several joined by |.

nfpr?string
Value in"0""1"
filter?string
Value in"0""1"
page?integer
Range1 <= value <= 100
Default1
time_period?string
Value in"last_hour""last_day""last_week""last_month""last_year"
time_period_min?string

MM/DD/YYYY; with time_period_max, not with time_period.

time_period_max?string

MM/DD/YYYY.

Response Body

One page of articles. news_results is [] with a news_results_state of no_results when Google has none; with q, the document.

application/json
  1. response

The first three keys of every parsed 200 (the answer is the document itself, no success/data envelope): what the search was (search_metadata), what it asked (search_parameters), the parser's own search_information ({} when it has none). The engine's blocks follow, at the same level. An engine whose answer is a list puts it under results.

search_metadata*
search_parameters*

The request's own fields as sent, engine first, without cancel_token.

search_information*

The parser's own, e.g. yelp_search's; otherwise {}.

news_results*array<>
pagination?

Absent when the page has no navigation, and when there are no results.

Example Request
curl -X GET 'https://api.justserp.com/v1/google/news?query=openai&location%5Bcountry%5D=us&location%5Blanguage%5D=en&when=week&sort_by=date&start=0'
Example Response
{  "search_metadata": {    "id": "string",    "status": "Success",    "created_at": "string",    "request_url": "string",    "html_url": "string"  },  "search_parameters": {},  "search_information": {    "query_displayed": "string",    "news_results_state": "results"  },  "news_results": [    {      "position": 0,      "title": "string",      "link": "string",      "source": {        "name": "string",        "icon": "string"      },      "snippet": "string",      "date": "string",      "iso_date": "2019-08-24T14:15:22Z",      "thumbnail": "string",      "live": true,      "section": "string",      "news_id": "string",      "story_id": "string"    }  ],  "pagination": {    "current": 0,    "next": "string",    "other_pages": {      "property1": "string",      "property2": "string"    }  }}