Bedste nyheder API til JavaScript / Node.js-projekter i 2026 (med TypeScript, Fetch og SSE)
De fleste "bedste nyheds-API til Node.js"-artikler på første side af Google blev skrevet, før Node 18 blev leveret med en indbygget fetch. Mange starter stadig med npm install node-fetch og et require-kald. Denne her vil ikke.
Ansvarsfraskrivelse. dette indlæg er på APITube bloggen. APITube er en af de API'er, der er angivet nedenfor. Hvert kodestykke kører som skrevet; hvert leverandørfaktum kommer fra leverandørens offentlige dokumenter fra 2026-04-15.
Bemærk: Hvis du bruger Node 18 eller nyere, behøver du ikke længere
node-fetch. De globalefetch,Response,HeadersogRequester indbygget. Alle eksempler nedenfor bruger den native. Alt, hvad du finder online, der starter medrequire('node-fetch'), blev sandsynligvis skrevet til Node 16, som har været ude af LTS siden 2023.
TL;DR — den bedste nyheds-API til JavaScript / Node.js i 2026
Den bedste nyheds API til JavaScript og Node.js i 2026 er den, der taler rent REST med header-auth, returnerer en typet JSON form, du kan zod-parse, virker i Node 18+ og ved kanten, og ikke tvinger en forældet npm SDK på dig. På den definition fører APITube, NewsData.io og Perigon; NewsAPI.org halter bagefter på grund af sin ?apiKey= query-param auth og produktions-only betalingsmur.
Hurtige valg:
| Rang | API | npm pakke | Auth-stil | TS-venlig | Edge-runtime sikker | Streaming |
|---|---|---|---|---|---|---|
| 1 | APITube | ingen (brug native fetch) | X-API-Key header | Ja (BYO typer) | Ja | SSE |
| 2 | NewsData.io | ingen (brug native fetch) | header / query | Ja (BYO typer) | Ja | Nej |
| 3 | Perigon | ingen (brug native fetch) | header | Ja (BYO typer) | Ja | Nej |
| 4 | NewsAPI.org | newsapi (uofficiel) | ?apiKey= forespørgsel | Delvis (uofficielle typer) | Kun pakke | Nej |
| 5 | Event Registry | event-registry-node-js | header | Delvist understøttet | Nej (kun Node SDK) | Nej |
| 6 | GNews | ingen (brug native fetch) | query param | Ja (BYO typer) | Ja | Nej |
| 7 | NewsFilter | financial-news-api | header | Delvist understøttet | Delvist understøttet | Ja (finansiel stream) |
Resten af dette indlæg er en leverandør-specifik gennemgang, en enkelt genanvendelig TypeScript-klient, der fungerer på tværs af dem alle, et SSE streaming-eksempel i Node, og produktionsnoterne (429-håndtering, nøgle-i-URL-lækage, Express-proxy, edge-kompatibilitet), som ingen andre på SERP dækker.
Denne artikel er til dig, hvis
Du er en JavaScript eller TypeScript udvikler, der vælger en nyheds-API til et reelt projekt — en Node backend, en Next.js API rute, en Cloudflare Worker, en Deno service eller en Vercel Edge-funktion. Du ønsker kørbar kode, ikke reklamebudskaber. Du vil vide, hvilke SDK'er der stadig vil fungere om to år, og hvilke der ikke vil.
Indholdsfortegnelse
- 1. APITube
- 2. NewsData.io
- 3. Perigon
- 4. NewsAPI.org
- 5. Event Registry
- 6. GNews
- 7. NewsFilter
- En genanvendelig TypeScript nyhedsklient
- Streaming nyheder med SSE i Node.js
- Forsendelse til produktion uden at blive ringet op
- Hvad der ændrer sig for JS-udviklere i 2026-2027
- FAQ
- Dom
1. APITube
Installation: ingen — brug native fetch (Node 18+).Autentifikation: X-API-Key header.Endpoint: /v1/news/everything. Svar inkluderer sentiment, entities, categories og summary pr. artikel. Understøtter text/event-stream for SSE.
const res = await fetch(
"https://api.apitube.io/v1/news/everything?title=openai&language.code=en&per_page=3",
{ headers: { "X-API-Key": process.env.APITUBE_KEY! } }
);
const data = await res.json();
for (const a of data.results) console.log(a.title, a.sentiment.overall.polarity);
Særheder: ingen officiel SDK — det er pointen. En ren REST-overflade plus header-godkendelse fungerer identisk i Node 18+, Deno, Bun, Cloudflare Workers og Vercel Edge. BYO-typer via zod eller håndskrevne interfaces.Vælg når: du vil have én leverandør, der fungerer i alle kørselsmiljøer, du vil have sentiment og entiteter uden en anden NLP-tjeneste, og du bryder dig ikke om at være låst til en andens npm-pakke.
2. NewsData.io
Installation: ingen — native fetch.Autentifikation: apikey query eller header.Kilder: 87,000+ på tværs af 206 lande, 89 sprog.
const res = await fetch(
`https://newsdata.io/api/1/latest?q=openai&language=en&apikey=${process.env.NEWSDATA_KEY}`
);
const data = await res.json();
for (const a of data.results) console.log(a.title, a.source_id);
Særheder: forespørgselsparameter-godkendelse er praktisk, men lækker nøgler ind i serveradgangslogfiler. Skift til header-godkendelse for alt ud over en prototype. Ingen officiel Node SDK.Vælg når: du har brug for den bredest mulige kildedækning og er komfortabel med at skrive typer.
3. Perigon
Installation: ingen — native fetch.Autentifikation: apiKey header.Fokus: AI-først: klynger artikler i begivenheder, leverer navngivne entiteter, tilbyder vektorindlejringer.
const res = await fetch(
"https://api.goperigon.com/v1/all?q=openai&language=en",
{ headers: { "x-api-key": process.env.PERIGON_KEY! } }
);
const data = await res.json();
for (const a of data.articles) console.log(a.title, a.entities?.length ?? 0);
Særheder: rigere svars-skema end de fleste, hvilket er en fordel for LLM-pipelines og en lille vedligeholdelsesomkostning, hvis du selv typer hvert felt.Vælg når: du bygger en agent- eller hentningspipeline og ønsker klynger og entiteter ud af boksen.
4. NewsAPI.org
Installation: npm install newsapi (uofficiel) — eller brug native fetch.Autentifikation: ?apiKey= query-parameter (den største ulempe).Licens: Developer-planen er kun til udvikling; produktion starter ved $449/måned. Se vores NewsAPI.org migrationsguide for hele historien.
// using native fetch (no SDK needed)
const url = new URL("https://newsapi.org/v2/everything");
url.searchParams.set("q", "openai");
url.searchParams.set("apiKey", process.env.NEWSAPI_KEY!);
const res = await fetch(url);
const data = await res.json();
Særheder:?apiKey=-mønsteret placerer din hemmelighed i hver serveradgangslog, upstream proxy-log og enhver fejlsporings-payload, der inkluderer request URLs. Det er en velkendt vektor for hemmelighedslækage. newsapi npm-pakken vedligeholdes af en frivillig og sporer ikke altid nye endpoints rettidigt.Vælg når: du prototyper på localhost og har brug for den største brandgenkendelse til en CV-linje. For alt, der sendes, se alternativerne ovenfor.
5. Event Registry
Installation: npm install eventregistry (officiel Node-pakke).Autentifikation: header.
import { EventRegistry, QueryArticlesIter } from "eventregistry";
const er = new EventRegistry({ apiKey: process.env.EVENTREGISTRY_KEY! });
const iter = new QueryArticlesIter(er, { keywords: "openai", lang: "eng" });
await iter.execQuery((a) => console.log(a.title));
Særheder: dette er et af de få officielle Node SDK'er, hvilket føles godt, indtil du prøver at køre det i en Cloudflare Worker eller Vercel Edge-funktion — pakken er afhængig af http/https-moduler, som edge-kørselsmiljøer ikke leverer. Fint i en traditionel Node-server, problematisk alle andre steder.Vælg når: du har brug for den akademisk-forskning-orienterede vinkel (begivenheder, koncepter, sentiment) og du kører på ren Node, ikke edge.
6. GNews
Installation: ingen — native fetch.Autentifikation: apikey query-parameter.
const res = await fetch(
`https://gnews.io/api/v4/search?q=openai&lang=en&apikey=${process.env.GNEWS_KEY}`
);
const data = await res.json();
for (const a of data.articles) console.log(a.title);
Særheder: samme nøgle-i-URL problem som NewsAPI.org. Dækningen er smallere (~60k kilder).Vælg når: du har et stramt budget ($40/md betalt niveau) og dit nøgleordsæt er engelsk-tungt.
7. NewsFilter
Installation: npm install financial-news-api.Autentifikation: header.Fokus: finansielle nyheder; WebSocket streaming-understøttelse.
import { NewsApiClient } from "financial-news-api";
const client = new NewsApiClient(process.env.NEWSFILTER_KEY!);
client.on("data", (article) => console.log(article.title));
client.connect({ query: { tickers: "AAPL" } });
Særheder: kun finansielt vertikal; ikke egnet til generelle nyheder. Streaming fungerer godt til den brugssituation.Vælg når: du bygger et handels- eller compliance-produkt og kun bekymrer dig om finansielle nyheder.
En genanvendelig TypeScript nyhedsklient
De fleste "bedste nyheds-API"-artikler stopper ved individuelle uddrag. Her er en enkelt TypeScript-klient, der indpakker enhver af ovenstående REST API'er bag én grænseflade. Den håndterer genforsøg, 429 rate-begrænsning med eksponentiel backoff og et typet svar via generiske typer.
type FetchOpts = { retries?: number; backoffMs?: number };
export async function safeFetchJson<T>(
url: string,
init: RequestInit = {},
opts: FetchOpts = {}
): Promise<T> {
const { retries = 3, backoffMs = 500 } = opts;
for (let attempt = 0; attempt <= retries; attempt++) {
const res = await fetch(url, init);
if (res.status === 429 || res.status >= 500) {
if (attempt === retries) throw new Error(`HTTP ${res.status} after ${retries} retries`);
const retryAfter = Number(res.headers.get("retry-after")) * 1000 || backoffMs * 2 ** attempt;
await new Promise((r) => setTimeout(r, retryAfter));
continue;
}
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
return (await res.json()) as T;
}
throw new Error("unreachable");
}
export interface NewsArticle { title: string; url: string; publishedAt: string; source?: string; }
export interface NewsClient { search(query: string, lang?: string): Promise<NewsArticle[]>; }
export function apitubeClient(key: string): NewsClient {
return {
async search(query, lang = "en") {
const u = new URL("https://api.apitube.io/v1/news/everything");
u.searchParams.set("title", query);
u.searchParams.set("language.code", lang);
u.searchParams.set("per_page", "20");
const data = await safeFetchJson<{ results: any[] }>(u.toString(), {
headers: { "X-API-Key": key },
});
return data.results.map((a) => ({
title: a.title, url: a.href, publishedAt: a.published_at, source: a.source?.domain,
}));
},
};
}
// Same pattern for NewsData.io, Perigon, GNews — different query shape + field mapping only.
Kald det på samme måde uanset leverandør:
const client = apitubeClient(process.env.APITUBE_KEY!);
const articles = await client.search("openai", "en");
Byt apitubeClient ud med newsdataClient eller perigonClient af samme form, og resten af din app ændres ikke. Det er det lag, enhver tutorial på første side af Google burde have, men ikke har.
Streaming af nyheder med SSE i Node.js
De fleste leverandører leverer kun REST. Få — APITube blandt dem — eksponerer text/event-stream for realtidslevering. At forbruge SSE i Node 18+ tager omkring femten linjer:
const res = await fetch("https://api.apitube.io/v1/news/stream?language.code=en", {
headers: { "X-API-Key": process.env.APITUBE_KEY!, "Accept": "text/event-stream" },
});
if (!res.body) throw new Error("no body");
const reader = res.body.pipeThrough(new TextDecoderStream()).getReader();
let buf = "";
while (true) {
const { value, done } = await reader.read();
if (done) break;
buf += value;
const lines = buf.split("\n\n");
buf = lines.pop() ?? "";
for (const chunk of lines) {
const dataLine = chunk.split("\n").find((l) => l.startsWith("data: "));
if (dataLine) {
const article = JSON.parse(dataLine.slice(6));
console.log(new Date().toISOString(), article.title);
}
}
}
Det var det. Ingen eventsource pakke, ingen node-fetch shim, ingen polyfills. Tilføj en keep-alive ping og en reconnect-løkke til produktion, og du har et live nyhedsfeed.
Udrulning til produktion uden at blive alarmeret
Tutorials om Dev.to stopper ved hello-world. Her er de fire ting, der fanger teams i anden uge.
1. Sæt aldrig API nøgler i forespørgselsstrenge. URL'er ender i adgangslogge, upstream proxy-logge, APM-værktøjer og fejlsporingsdata. En nøgle i en forespørgselsstreng er en nøgle på tre dusin steder, du glemte. Når en leverandør kun tilbyder forespørgselsstreng-godkendelse (NewsAPI.org, GNews), proxy opkaldet gennem din egen backend og fjern nøglen fra loggede URL'er.
2. Håndter 429 korrekt. Wrapperen safeFetchJson ovenfor respekterer Retry-After og eksponentiel backoff. Hvis din leverandør ikke sender Retry-After, standard til 2^attempt * 500ms. Log retry-antallet som en metrik — hvis du rammer retries ofte, har du vokset ud af niveauet.
3. Brug en Express proxy til browserklients. Kald aldrig en nyheds-API direkte fra browser-JavaScript. En lille Express rute holder nøglen på serversiden:
import express from "express";
import { apitubeClient } from "./news";
const app = express();
const client = apitubeClient(process.env.APITUBE_KEY!);
app.get("/api/news", async (req, res) => {
const articles = await client.search(String(req.query.q ?? "news"));
res.json(articles);
});
app.listen(3000);
4. Verificer edge-runtime-kompatibilitet. Cloudflare Workers, Vercel Edge og Deno Deploy leverer web-standard fetch, men ingen http, https eller Buffer. Enhver npm SDK, der importerer disse, går i stykker. Rene REST-leverandører (APITube, NewsData, Perigon, GNews) kører identisk overalt; Node-only SDK'er (Event Registry's) gør ikke. Test tidligt i den runtime, du rent faktisk vil implementere til.
Hvad ændrer sig for JS-udviklere i 2026-2027
Tre skift gør nyheds-API-valget mere afgørende for JavaScript-butikker:
Node er standard LLM-agent backend. Agenter bygget med Vercel AI SDK, Mastra, LangGraph.js og deres ligemænd er i stigende grad Node-formede og trækker nyheder som et hentningsværktøj. Leverandører, der leverer
sentimentogentitiespr. artikel, lader agenten springe et NLP-trin over. Leverandører, der ikke tvinger dig til at tilføje en anden tjeneste til din stak.Edge-kørsler beskærer Node-specifikke SDK'er. Efterhånden som flere teams implementerer til Cloudflare Workers og Vercel Edge for latenstid, bliver Node-only npm-pakker en belastning. I modsætning til en leverandørspecifik SDK fungerer en ren REST plus header-auth API uændret i enhver køretid, hvilket betyder, at leverandøren med den tyndeste SDK-overflade ofte vinder.
node-fetcher på vej ud. Mange populære nyheds-SDK'er fastlåser stadig gamlenode-fetchversioner som transitive afhængigheder. Efterhånden som Node 22 og 24 strammer modulopløsning og ESM-adfærd, bliver disse fastlåsninger opgraderingsblokkere. Et et-linjers nativefetchkald i dag er et fremtidssikret valg; en 2023-vintage SDK er en fremtidig migrering.
Ofte stillede spørgsmål
Hvilken nyheds-API fungerer bedst med Node.js?
Nyheds-API, der fungerer bedst med Node.js i 2026, er APITube, NewsData.io, eller Perigon, fordi hver af dem taler ren REST med header-godkendelse og fungerer uændret med Node 18+'s indbyggede fetch plus edge-kørsler som Cloudflare Workers og Vercel Edge. NewsAPI.org fungerer også, men dens query-param-godkendelse lækker nøgler ind i logs.
Findes der en nyheds API npm-pakke?
Ja, der findes nyheds-API npm-pakker — newsapi (uofficiel NewsAPI.org-klient), eventregistry (officiel Event Registry SDK) og financial-news-api (NewsFilter). For de fleste 2026 produktionsprojekter, spring SDK'erne over og kald REST direkte med Node 18's native fetch, fordi den leverer bedre edge-runtime-kompatibilitet og undgår forældede node-fetch pins.
Hvordan bruger jeg News API i Express?
For at bruge en nyheds-API i Express, opret en rute, der kalder leverandøren fra serversiden, aldrig fra browseren, for at holde API-nøglen sikker. En typisk rute gør app.get("/api/news", async (req, res) => { const data = await fetch(...); res.json(await data.json()); }). Dette proxy-mønster holder legitimationsoplysninger på serversiden og lader dig cache eller rate-limit.
Har News API TypeScript-typer?
De fleste nyheds-API'er i 2026 leverer ikke officielle TypeScript-typer; du definerer dem selv med en svarsgrænseflade eller parser svaret med zod. En typet hentnings-wrapper (se den genanvendelige klient ovenfor) plus en leverandørspecifik mapperfunktion er det reneste mønster. Uofficielle @types/newsapi findes på DefinitelyTyped, men halter efter det reelle skema.
Hvordan streamer jeg nyheder i Node.js?
For at streame nyheder i Node.js, brug en nyheds-API, der eksponerer text/event-stream (APITube er en af de få). Kald fetch() med Accept: text/event-stream, send responsens brødtekst gennem en TextDecoderStream, split chunks på \n\n, og parse hver data: linje som JSON. Node 18+ håndterer dette uden npm-afhængighed — omkring femten linjer kode i alt.
Dom
Den bedste nyheds-API for JavaScript og Node.js i 2026 er den, der behandler din køretid som et webstandardmiljø, ikke kun et Node-miljø. APITube, NewsData.io og Perigon kvalificerer sig alle; NewsAPI.org's query-string auth og produktions-paywall holder den ude af topniveauet; Event Registry's officielle SDK er en fælde, hvis du nogensinde implementerer på kanten. Byg en lille typet wrapper, hold nøgler på serversiden, brug den native fetch, og du vil være fremtidssikret mod de næste fire LTS-opdateringer.
APITube leverer en ren REST API, der fungerer med Node 18+ native fetch, edge runtimes og SSE streaming. 100 anmodninger pr. dag på gratis niveau, kommerciel brug tilladt, sentiment og entiteter på enhver artikel. apitube.io
Relateret læsning: Bedste Nyheds-API i 2026: Komplet Sammenligningsguide · NewsAPI.org vs APITube: migrering på en eftermiddag · MDN: Fetch API
Ressourcer
- APITube — apitube.io — prøv det gratis, sentiment og entiteter inkluderet på hver artikel
- Dokumentation — docs.apitube.io — endpoints, parametre, svarsstruktur, integrationer
- Prissætning — apitube.io/pricing — alle niveauer
- APITube blog — apitube.io/blog — flere guides og sammenligninger
Relaterede vejledninger:
- Stock News Alert Node.js Tutorial
- Cache nyheds API-svar: Node.js + Redis
- Bedste nyheder API til React 2026


