Google News Scraper
Receiving Google News Results
Poll this endpoint to retrieve the result of a submitted Google News scraping task.
Endpoint
GET /api/parsing/v1/result/google-news/{requestId}
Keep polling until status is no longer "parsing".
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| requestId | string (uuid) | yes | Task ID returned from the submit endpoint |
Example Request
curl https://app.scrapering.com/api/parsing/v1/result/google-news/YOUR_REQUEST_ID \
--header 'Authorization: Bearer YOUR_API_KEY'
Responses
In progress — task is still being processed:
{
"status": "parsing"
}
Ready — task completed successfully:
{
"status": "ready",
"requestId": "ac9c7911-b32c-4890-a850-227003ee2d35",
"data": {
"input": {
"q": "Business",
"feed": "topic",
"queryVars": { "gl": "US", "hl": "en", "ceid": "US:en" },
"topicKgmid": "/m/09s1f",
"topicTitle": "Business",
"topicToken": "CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB",
"original_url": "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB?hl=en&gl=US&ceid=US%3Aen",
"storiesTitle": null,
"storiesToken": null
},
"organic": [
{
"link": "https://www.ft.com/content/75c3179a-5c42-42fd-94e9-6f0c3dfc0c70",
"rank": 1,
"time": "15 hours ago",
"image": "https://news.google.com/api/attachments/...",
"title": "In a Big Win, Google Won't Have to Break Up Its Ad Tech Business",
"author": "Stephen Morris",
"domain": "www.ft.com",
"datetime": "2026-09-02T19:53:17.000Z",
"publisher": "Financial Times",
"sourceURL": "https://news.google.com/read/...",
"articleType": "regular"
}
],
"topicStories": [
{
"rank": 1,
"storiesUrl": "https://news.google.com/stories/...",
"storiesType": "multy",
"storiesTitle": "Judge orders behavioral remedies for Google ad tech business",
"storiesToken": "CAAqNggKIjBDQklTSGpv...",
"topStories": [
{
"link": "https://www.ft.com/content/75c3179a-5c42-42fd-94e9-6f0c3dfc0c70",
"rank": 1,
"title": "Google spared break-up of online advertising monopoly",
"articleType": "feature"
}
]
}
],
"relatedTopics": [
{
"rank": 1,
"topicTitle": "Economy",
"topicToken": "CAQiSENCQVNNQW9JTDIwdk1EbHpNV1lTQW1WdUdnSlZVeUlQQ0FRYUN3b0pMMjB2TUdkbWNITXpLZ3NTQ1M5dEx6QnpaakJ6TXlnQSoq..."
}
]
},
"success": true,
"respondedAt": "2026-09-03T10:00:06.000Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
| status | string | "ready" when complete |
| requestId | string | Task ID |
| success | boolean | Whether the scraping succeeded |
| respondedAt | string | ISO 8601 timestamp of completion |
| data.input | object | Echo of the resolved request parameters |
| data.input.feed | string | Feed type used (search, topic, or stories) |
| data.input.original_url | string | Resolved Google News URL that was fetched |
| data.input.queryVars | object | Query parameters sent to Google News (gl, hl, ceid) |
| data.input.q | string? | Search query (search feed only) |
| data.input.topicTitle | string? | Topic name (topic feed only) |
| data.input.topicToken | string? | Topic token (topic feed only) |
| data.input.topicKgmid | string? | Knowledge Graph ID (topic feed only) |
| data.input.storiesTitle | string? | Story cluster title (stories feed only) |
| data.input.storiesToken | string? | Story cluster token (stories feed only) |
| data.organic | array | Flat list of individual articles |
| data.organic[].rank | number | Position in the feed (1-based) |
| data.organic[].link | string | Article URL |
| data.organic[].title | string | Article headline |
| data.organic[].author | string | Author name |
| data.organic[].publisher | string | Publisher name |
| data.organic[].domain | string | Publisher domain |
| data.organic[].datetime | string | ISO 8601 publication timestamp |
| data.organic[].time | string | Human-readable relative time (e.g. 15 hours ago) |
| data.organic[].image | string? | Article image URL from Google News CDN |
| data.organic[].sourceURL | string | Google News reader URL for the article |
| data.organic[].articleType | string | "regular" or "feature" |
| data.topicStories | array? | Story clusters (topic feed only) |
| data.topicStories[].rank | number | Position in the topic feed (1-based) |
| data.topicStories[].storiesTitle | string | Headline summarising the story cluster |
| data.topicStories[].storiesToken | string | Token to fetch this cluster via the stories feed |
| data.topicStories[].storiesUrl | string | Google News URL for the story cluster |
| data.topicStories[].storiesType | string | "single" (one article) or "multy" (several articles) |
| data.topicStories[].topStories | array | Top articles within the cluster |
| data.topicStories[].topStories[].rank | number | Position within the cluster (1-based) |
| data.topicStories[].topStories[].link | string | Article URL |
| data.topicStories[].topStories[].title | string | Article headline |
| data.topicStories[].topStories[].articleType | string | "regular" or "feature" |
| data.relatedTopics | array? | Related topic suggestions (topic feed only) |
| data.relatedTopics[].rank | number | Position in the list (1-based) |
| data.relatedTopics[].topicTitle | string | Topic name |
| data.relatedTopics[].topicToken | string | Token for use with the topic feed |
Next steps
- Webhook — receive the result via callback instead of polling
- Creating a task — back to the submit endpoint reference
