# GNews's Python client on SpecStream

Date: 2026-11-10

Client: gnews-io-python 1.0.0 (PyPI), Python 3.14.4

The one line a user changes:

```python
client = GNews(api_key=SPECSTREAM_KEY, base_url="https://api.specstream.ai/api/v4")
```

## Request parameters

| Parameter | Sent | Status | Result |
| --- | --- | --- | --- |
| `q` | `q=Nvidia earnings` | 200 | honoured |
| `lang` | `lang=de` | 200 | honoured |
| `country` | `country=jp` | 200 | accepted, not applied |
| `max` | `max=5` | 200 | honoured |
| `page` | `page=2`, `max=3` | 200 | honoured |
| `from` | `from=3 days ago` | 200 | honoured |
| `to` | `to=2026-11-01T00:00:00Z` | 200 | honoured |
| `sortby (publishedAt)` | `sortby=publishedAt` | 200 | honoured |
| `sortby (relevance)` | `sortby=relevance` | 200 | accepted, not applied |
| `in` | `in=title` | 200 | accepted, not applied |
| `nullable` | `nullable=description,content,image` | 200 | accepted, not applied |
| `truncate` | `truncate=content` | 200 | accepted, not applied |
| `top-headlines category` | `category=business` | 200 | honoured |
| `top-headlines q` | `q=Airbus` | 200 | honoured |
| `top-headlines lang` | `lang=fr` | 200 | honoured |
| `apikey (not a key)` | `apikey=not-a-key` | 401 | refused |

## Response fields

| Field | State |
| --- | --- |
| `totalArticles` | present |
| `articles[].id` | absent |
| `articles[].title` | present |
| `articles[].description` | present |
| `articles[].content` | empty |
| `articles[].url` | present |
| `articles[].image` | empty |
| `articles[].publishedAt` | present |
| `articles[].lang` | absent |
| `articles[].source.id` | absent |
| `articles[].source.name` | present |
| `articles[].source.url` | absent |
| `articles[].source.country` | absent |
