# NewsAPI.org's Python client on SpecStream

Date: 2026-11-10

Client: newsapi-python 0.2.7 (PyPI), Python 3.14.4

The one line a user changes:

```python
for name in ("TOP_HEADLINES_URL", "EVERYTHING_URL"): setattr(newsapi.const, name, getattr(newsapi.const, name).replace("https://newsapi.org", "https://api.specstream.ai"))
```

## Request parameters

| Parameter | Sent | Status | Result |
| --- | --- | --- | --- |
| `q` | `q=Nvidia earnings` | 200 | honoured |
| `qInTitle` | `qintitle=Nvidia` | 200 | honoured |
| `pageSize` | `pageSize=5` | 200 | honoured |
| `page` | `page=2`, `pageSize=3` | 200 | honoured |
| `domains` | `domains=reuters.com` | 200 | honoured |
| `excludeDomains` | `excludeDomains=reuters.com` | 200 | honoured |
| `from` | `from=3 days ago` | 200 | honoured |
| `to` | `to=2026-11-01` | 200 | honoured |
| `language` | `language=fr` | 200 | honoured |
| `sortBy (publishedAt)` | `sortBy=publishedAt` | 200 | honoured |
| `sortBy (relevancy)` | `sortBy=relevancy` | 200 | accepted, not applied |
| `sortBy (popularity)` | `sortBy=popularity` | 200 | accepted, not applied |
| `sources` | `sources=bbc-news` | 200 | accepted, not applied |
| `top-headlines country` | `country=de` | 200 | honoured |
| `top-headlines category` | `category=business` | 200 | honoured |
| `top-headlines q` | `q=Airbus` | 200 | honoured |
| `apiKey (none)` | `apiKey=` | 401 | refused |

## Response fields

| Field | State |
| --- | --- |
| `status` | present |
| `totalResults` | present |
| `articles[].source.id` | empty |
| `articles[].source.name` | present |
| `articles[].author` | empty |
| `articles[].title` | present |
| `articles[].description` | present |
| `articles[].url` | present |
| `articles[].urlToImage` | empty |
| `articles[].publishedAt` | present |
| `articles[].content` | empty |
