Google News Scraper
Creating a Google News Scraping Task
Submit a Google News scraping task to retrieve articles and stories for a given feed type.
Requires the google-news scope on your API key.
Endpoint
POST /api/parsing/v1/google-news
Request Body
All feeds share a set of base fields, plus feed-specific fields controlled by the feed discriminator.
Base fields (all feeds)
| Name | Type | Required | Description |
|---|---|---|---|
| feed | string | yes | Feed type: "search", "topic", or "stories" |
| gl | string | yes | Country code (e.g. US, GB) |
| hl | string | yes | Language code (e.g. en, de) |
| timeframe | string | yes | Time filter (e.g. 1d, 7d, 30d) |
| limit | number | yes | Number of articles to fetch (min: 10, max: 100) |
| callbackUrl | string | no | Webhook URL to POST result when done |
feed: "search" — search by query
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | yes | Search query |
feed: "topic", by: "token" — topic by token
| Name | Type | Required | Description |
|---|---|---|---|
| by | string | yes | Must be "token" |
| topicTitle | string | yes | Human-readable topic name (e.g. Business) |
| topicToken | string | no | Topic token from the topics endpoint |
feed: "topic", by: "kgmid" — topic by Knowledge Graph ID
| Name | Type | Required | Description |
|---|---|---|---|
| by | string | yes | Must be "kgmid" |
| topicKgmid | string | yes | Google Knowledge Graph ID (e.g. /m/09s1f) |
feed: "stories" — story cluster by token
| Name | Type | Required | Description |
|---|---|---|---|
| storiesToken | string | yes | Stories cluster token (from topicStories[].storiesToken in a topic result) |
| storiesTitle | string | no | Human-readable label for the story cluster |
Example Requests
Search feed:
curl -X POST 'https://app.scrapering.com/api/parsing/v1/google-news' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"gl":"US","hl":"en","timeframe":"1d","limit":10,"feed":"search","q":"Pizza"}'
Topic feed (by token):
curl -X POST 'https://app.scrapering.com/api/parsing/v1/google-news' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"gl":"US","hl":"en","timeframe":"1d","limit":10,"feed":"topic","by":"token","topicToken":"CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB","topicTitle":"Business"}'
Topic feed (by kgmid):
curl -X POST 'https://app.scrapering.com/api/parsing/v1/google-news' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"gl":"US","hl":"en","timeframe":"1d","limit":10,"feed":"topic","by":"kgmid","topicKgmid":"/m/0k8z"}'
Stories feed:
curl -X POST 'https://app.scrapering.com/api/parsing/v1/google-news' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"gl":"US","hl":"en","timeframe":"1d","limit":10,"feed":"stories","storiesToken":"CAAqNggKIjBDQklTSGpvSmMzUnZjbmt0TXpZd1NoRUtEd2k1c2J2MUVSRWN0X3l1dFpkS3dpZ0FQAQ","storiesTitle":"Wall Street stocks"}'
Example Response
{
"id": "ac9c7911-b32c-4890-a850-227003ee2d35",
"status": "parsing",
"scope": "google-news",
"costCredits": 10,
"createdAt": "2026-09-03T10:00:00.000Z"
}
| Field | Type | Description |
|---|---|---|
| id | string | Task ID used to poll for the result |
| status | string | Current task status (parsing, done, error) |
| scope | string | Task type — always google-news for this endpoint |
| costCredits | number | Credits charged for the task |
| createdAt | string | ISO 8601 timestamp of when the task was created |
The task is processed asynchronously. Use the id to poll for the result or set callbackUrl to receive a webhook when parsing completes.
Next steps
- Receiving result — poll for the result using the task ID
- Webhook — receive the result via callback instead of polling
- Available topics — look up topic tokens by country
- Pricing — see how credits are calculated for this request
