# Google News

Search and scrape news articles from Google News.

- **Documentation:** [https://scrappa.co/docs/google-news-api/google_news](https://scrappa.co/docs/google-news-api/google_news)
- **API group:** Google News API
- **Endpoint:** `GET https://scrappa.co/api/google/news`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `q` | string | No | Search term for news (required unless using topic_token, kgmid, publication_token, section_token, or story_token) |
| `hl` | string | No | Language code for the search interface (2 characters, e.g., en, de, fr). Default: en |
| `gl` | string | No | Country code for geolocation (2 characters, e.g., us, de, uk). Default: us |
| `page` | integer | No | Page number for pagination (1-based). Default: 1 |
| `start` | integer | No | Starting offset for pagination (0-based). Cannot be used with page parameter. |
| `so` | integer | No | Sort order: 0 for relevance, 1 for date. Default: 0 |
| `topic_token` | string | No | Token for specific topic browsing (cannot use with q parameter) |
| `kgmid` | string | No | Knowledge Graph entity ID (format: /m/... or /g/..., use alone) |
| `publication_token` | string | No | Token for specific publication browsing (cannot use with q parameter) |
| `section_token` | string | No | Token for specific news section (cannot use with q parameter) |
| `story_token` | string | No | Token for specific story cluster (cannot use with q parameter) |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/google/news?q=technology"
```

## Example response

```json
{
    "news_results": [
        {
            "position": 1,
            "title": "Example News Article",
            "link": "https://example.com/news/article",
            "type": "article",
            "source": {
                "name": "Example Source",
                "title": "Example Source"
            },
            "date": "2 hours ago",
            "iso_date": "2025-01-15T10:30:00+00:00",
            "published_at": "2025-01-15 10:30:00 UTC",
            "thumbnail": "https://news.google.com/api/attachments/example-thumbnail.jpg",
            "thumbnail_small": "https://news.google.com/api/attachments/example-thumbnail-small.jpg",
            "snippet": "Article summary text..."
        }
    ],
    "menu_links": [
        {
            "title": "Technology",
            "link": "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRFZ4ZERBU0FtVnVHZ0pWVXlnQVAB",
            "topic_token": "CAAqJggKIiBDQkFTRWdvSUwyMHZNRFZ4ZERBU0FtVnVHZ0pWVXlnQVAB"
        }
    ],
    "related_publications": [],
    "sub_menu_links": [],
    "highlight": null,
    "related_searches": [
        {
            "position": 1,
            "query": "related search term",
            "link": "https://news.google.com/search?q=related+search+term"
        }
    ]
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | Provide a query or exactly one supported Google News token, and keep pagination and locale parameters valid. |
| 402 | Insufficient Credits | Your API key is valid, but the account has no free, subscription, or package credits available. |
| 500 | The upstream service is temporarily unavailable. Please retry shortly. | The upstream service is temporarily unavailable. Please retry shortly. |
| 502 | Provider HTML Failure | The upstream service is temporarily unavailable. Please retry shortly. |
| 500 | News Parse Error | Usable Google News HTML was fetched, but Scrappa could not parse it into the documented response shape. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
