Extract Google News
Pull a clean, structured feed of news articles from Google News — each item carries its headline, destination link, summary snippet, publisher, relative timestamp, and thumbnail — so you can track coverage of any topic programmatically.
Overview
Submit a search query and cloro returns the matching Google News results already parsed into JSON. Instead of scraping and cleaning the news listing yourself, you receive ranked article objects ready to store or analyze. You can localize results by country, target desktop or mobile layouts, and page through several result pages in a single request. Raw HTML is available on demand when you need the underlying markup.
Request parameters
| Field | Type | Description |
|---|---|---|
| query | string | Required. The term or phrase to look up on Google News. Length must be between 1 and 10,000 characters. |
| country | string | ISO 3166-1 alpha-2 country code used to localize the news feed. Falls back to US when omitted. |
| device | enum<string> | Rendering profile for the results. Accepts desktop (default) or mobile. |
| pages | integer | How many result pages to collect, from 1 to 10. Defaults to 1; all pages are merged into one response. |
| include | object | Optional switches for extra payload. Set include.html to true to attach the raw HTML for each page (default false). |
Response fields
| Field | Type | Description |
|---|---|---|
| success | boolean | Indicates whether the request completed successfully. |
| result | object | Container holding the extracted Google News data. |
| result.newsResults | array | Ordered list of news article objects returned for the query. |
| result.newsResults[].position | integer | Rank of the article within the combined result set. |
| result.newsResults[].title | string | Headline of the article. |
| result.newsResults[].link | string | Canonical URL of the source article. |
| result.newsResults[].snippet | string | Short excerpt or summary shown alongside the headline. |
| result.newsResults[].source | string | Name of the publisher that ran the story. |
| result.newsResults[].date | string | Relative publication time as displayed by Google News (for example, "2 hours ago"). |
| result.newsResults[].page | integer | Which result page the article was collected from. |
| result.newsResults[].thumbnail | string | URL of the article's thumbnail image, when one is available. |
| result.html | array | Links to the stored raw HTML for each page. Present only when include.html is true. |
Response example
{
"success": true,
"result": {
"newsResults": [
{
"position": 1,
"title": "Major Climate Summit Reaches Historic Agreement",
"link": "https://example.com/climate-summit-agreement",
"snippet": "World leaders agreed on new climate targets at the summit...",
"source": "The Guardian",
"date": "2 hours ago",
"page": 1,
"thumbnail": "https://example.com/images/climate-summit.jpg"
}
],
"html": [
"https://storage.cloro.cloud/results/a12b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o5p6/page-1.html"
]
}
}
Usage examples
A minimal query targeting US coverage:
{
"query": "climate change",
"country": "US"
}
Collect several pages at once and localize to Great Britain — the articles from all requested pages arrive combined in a single response:
{
"query": "artificial intelligence",
"pages": 3,
"country": "GB"
}
Request the mobile layout and attach raw HTML for downstream inspection:
{
"query": "technology news",
"device": "mobile",
"country": "US",
"include": {
"html": true
}
}
Notes
Every request must include an Authorization header of the form Bearer <token>, where <token> is your cloro API key, and a Content-Type: application/json header. Along with 200, the endpoint may return 400, 401, 403, 404, 409, 429, 499, 500, and 502 status codes; handle rate limiting (429) with backoff. For help, reach us at [email protected].