How a Google News SERP request works

Send a query and select the Google news result type. The endpoint returns a snapshot of the news results page, not a persistent news database or a feed of every article published on a topic.

curl https://api.serqo.io/v1/search \
  -H "x-api-key: $SERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"renewable energy","engine":"google","type":"news","gl":"us","hl":"en","tbs":"qdr:w"}'

Use q for the query, gl for the country market and hl for the interface language. The example’s tbs: "qdr:w" requests Google’s past-week filter; the API accepts Google time filters such as qdr:d, qdr:w and qdr:m. Check the Google News API reference before using other filter syntax.

Read the returned article fields

News items are returned in data.results. Depending on the result, fields can include position, title, url, source, date, snippet and thumbnail. The date is extracted display text—such as “2 hours ago”—and is not guaranteed to be an ISO timestamp. Store the collection time separately if you need reliable chronological analysis.

Build a useful monitoring workflow

  1. Choose a narrow query that describes the subject or event you need to monitor.
  2. Fix gl, hl and any supported time filter for that monitoring run.
  3. Schedule requests in your application at the interval your use case requires.
  4. Store request settings, collection time, source and article URL; deduplicate on a stable URL when possible.
  5. Review changes in result coverage and ordering instead of treating one response as complete coverage of the news.

What this API does not provide

A news SERP request does not guarantee exhaustive article coverage, continuous streaming, full-text access or a permanent publication timestamp. The results reflect what Google displayed for a particular query and context at collection time. Result availability and ordering can change.

Frequently asked questions

Can I limit Google News results to the last day or week?

For supported Google requests, the tbs parameter accepts time filters such as qdr:d and qdr:w. Use the documented syntax and verify the response because a filter does not guarantee a fixed number of results.

Does the result date represent the exact publication time?

Not necessarily. The returned date can be relative display text. Keep your own collection timestamp and avoid converting that text into an exact publication time unless you can verify it from the publisher.

Can I paginate through all Google News stories?

No API can promise every story from a changing search results page. When data.pagination.hasNext is true, use nextStart as documented, but treat each page as another snapshot request.

Design queries for a topic, not an entire archive

A Google News request returns the articles shown for one query and search context. Start with a topic, company, product or event phrase that has a clear meaning to your users. Broad queries may mix unrelated stories; very narrow queries may return few items. If a monitoring system uses several related phrases, retain the original query for each result so that later reports show why an article was collected.

The tbs parameter accepts documented Google time filters such as qdr:d, qdr:w and qdr:m. These filters limit the search window requested from Google; they do not promise a fixed number of articles or make the response a complete archive. Keep a collection timestamp in your own data because the filter and an article's displayed date describe different things.

Normalize fields without inventing certainty

News items in data.results can include a title, URL, source, displayed date, snippet and thumbnail. The exact fields depend on the result. A date such as “2 hours ago” is display text, not necessarily an exact publication timestamp. Store it as returned and store your collection time in a separate field. If an application needs a verified publication time, obtain it from a reliable publisher source rather than converting relative text into a precise time.

Source labels may also vary in spelling or presentation. Preserve the original source text, and apply a separate normalization field only when your rules can map it reliably. Use the final article URL as a practical duplicate key, but account for tracking query parameters and redirects before merging two links. Keep the first-seen and last-seen collection times if you want to know when an item entered or left your monitored results.

Build a monitoring job

  1. Define a small set of queries that reflect the question the monitor should answer.
  2. Set engine to google and type to news; choose country, language and time filter deliberately.
  3. Schedule requests at a cadence appropriate to the topic and your credit budget.
  4. Store the query, settings, collection timestamp, returned items and request ID.
  5. Deduplicate carefully, then compare new items and ordering with prior snapshots.
  6. Review the monitor when its query or target market changes.

For an alert, distinguish “the article was not in this response” from “the article was deleted.” Search pages are not exhaustive and their ordering can change. A missing item may have moved beyond the returned range, fallen out of the time window or simply not appeared on that collection run.

Handle pagination and partial results

When the response indicates another page, use the returned nextStart with the same query and settings. Decide how many pages the job needs and stop at that limit. Each page is another request and another result snapshot. A long pagination sequence is not a guarantee that every article about a subject has been found.

Code should tolerate missing optional fields. A news card may have no thumbnail, source, date or snippet. Render what is available and keep the original result object if your application needs to revisit its mapping. Validate HTTP status and error codes before processing results, and retry only transient errors allowed by the API contract.

Understand what the API does not supply

This workflow does not deliver continuous push alerts, full article text, a comprehensive publisher index, or guaranteed historical coverage. It does not verify the accuracy of an article or determine whether a headline is true. Those require separate sources and editorial checks. The API gives your application search-page data; your product defines retention, deduplication, alert thresholds and any subsequent analysis.

Successful searches are charged according to the current engine, type and country rate. Cache hits are free under the default rates; failed searches and timeouts release the reservation. Check the pricing page before choosing a high-frequency schedule.

Make alerts useful rather than noisy

An alert should correspond to an action someone can take. For example, a team may want to know when a new publisher appears for a product query, when a particular source is present, or when a topic returns a materially different set of links. Store the rule that triggered the alert and the result snapshot that supports it. A message such as “news changed” is difficult to verify without the original query and collection time.

Use a quiet period or deduplication window if the same story appears across multiple queries or collection runs. A canonical article URL can help, but syndication often creates different URLs for similar stories. Keep the original links and make deduplication a separate, reviewable decision instead of deleting records at ingestion.

Test realistic variations

Check the monitor with a query that returns several sources, a query with few results, and a response without optional thumbnails or dates. Verify that your user interface remains understandable in each case. Test a time filter and a second country or language if your workflow uses them; do not assume the same query returns equivalent source coverage in every market.

When collection fails, record the error and schedule the next attempt according to your retry policy. Do not silently replace a failed response with an empty result list. That can create a false “no news” alert and erase the difference between a successful empty response and a failed search.

See the Google News API reference and the Google SERP API guide.