You build a news widget, test it on localhost, and it works. You deploy it, and NewsAPI answers with this:
{
"status": "error",
"code": "corsNotAllowed",
"message": "Requests from the browser are not allowed on the Developer plan, except from localhost."
}
That isn't a bug. NewsAPI's free Developer plan is for development and testing only. Its pricing page says it may not be used in staging or production. Moving the call to your server doesn't change that. The first plan you can ship with is Business, at $449 a month.
So before you pick a news API, it's worth reading the free tiers closely. Here's what each one says, from each provider's own pricing page, checked on 1 October 2026.
The free tiers side by side
| API | Free requests | For a live product? | Delay | Browser calls from your site | First paid plan |
|---|---|---|---|---|---|
| NewsAPI | 100 a day | No, development only | 24 hours | Localhost only | $449 a month (250,000 requests a month) |
| GNews | 100 a day | No, non-commercial development and testing only | 12 hours | Localhost only | €49.99 a month (1,000 a day) |
| TheNewsAPI | 100 a day | No limit stated on its pricing page | None | Not stated | $19 a month (2,500 a day) |
| Mediastack | 100 a month | Non-commercial only | Delayed, length not stated | Not stated | $24.99 a month (10,000 a month) |
| Currents | 250 a day | Prototypes, evaluation and small news features | None | Not stated | $69 a month (2,500 a day) |
| Noozra | 100 a day | Personal and non-commercial | None | Any site | $9 for 30 days (25,000 a day, commercial use) |
A few things stand out:
- "Free" usually means "free to try". NewsAPI and GNews limit the free tier to development and testing; Mediastack and Noozra limit it to non-commercial use.
- Delays matter for news. A 12- or 24-hour delay is fine for a demo and not for a "latest headlines" box.
- Browser calls are their own question. If your frontend calls the API directly, check whether the free tier answers a deployed site at all. NewsAPI and GNews say theirs answers localhost only.
Which one fits
- A side project or a prototype: Currents gives the most free requests a day here (250). Currents, TheNewsAPI and Noozra have no delay on the free tier.
- A frontend that calls the API directly: pick one that answers a deployed site. Keep in mind that a key in page code can be read by anyone who opens the page, so for anything public, call the API from your own server.
- Something that earns money: read the free tier's terms first, since most of the ones above rule it out. Then compare the paid plans by the requests they include, not only the price: they run from $9 for 30 days to $449 a month.
Disclosure, and how to call ours
I work on Noozra, the last row in the table. It returns headlines and the publisher's own short descriptions from 70+ news sites as JSON, and every article links to the publisher's page. Coverage of one event from several outlets shares a story_id, so you can list each story once instead of five copies of it.
It needs a free key: make an account at noozra.com/account/api, confirm your email address, and send the key as a header:
const res = await fetch(
'https://noozra.com/api/search?q=electric+cars&limit=10',
{ headers: { Authorization: 'Bearer nk_your_key' } },
);
const { articles } = await res.json();
for (const a of articles) {
console.log(a.published_at, a.source, a.headline, a.url);
}
There's an OpenAPI spec if you'd rather generate a client, or point an AI agent at it.
Whatever you pick, read the free tier's terms before you deploy, not after.
Top comments (0)