Bedste nyheder API til JavaScript & Node.js 2026 (+TS + SSE)

Erick Horn

Erick Horn

·

23 mins Læs

Bedste nyheder API til JavaScript & Node.js 2026 (+TS + SSE)

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 globale fetch, Response, Headers og Request er indbygget. Alle eksempler nedenfor bruger den native. Alt, hvad du finder online, der starter med require('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:

RangAPInpm pakkeAuth-stilTS-venligEdge-runtime sikkerStreaming
1APITubeingen (brug native fetch)X-API-Key headerJa (BYO typer)JaSSE
2NewsData.ioingen (brug native fetch)header / queryJa (BYO typer)JaNej
3Perigoningen (brug native fetch)headerJa (BYO typer)JaNej
4NewsAPI.orgnewsapi (uofficiel)?apiKey= forespørgselDelvis (uofficielle typer)Kun pakkeNej
5Event Registryevent-registry-node-jsheaderDelvist understøttetNej (kun Node SDK)Nej
6GNewsingen (brug native fetch)query paramJa (BYO typer)JaNej
7NewsFilterfinancial-news-apiheaderDelvist understøttetDelvist understøttetJa (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

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:

  1. 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 sentiment og entities pr. artikel, lader agenten springe et NLP-trin over. Leverandører, der ikke tvinger dig til at tilføje en anden tjeneste til din stak.

  2. 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.

  3. node-fetch er på vej ud. Mange populære nyheds-SDK'er fastlåser stadig gamle node-fetch versioner 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 native fetch kald 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:

APITube - News API

Relaterede artikler

Bedste nyheder API til React 2026 (RSC, SWR, TanStack Query)
Insights

Bedste nyheder API til React 2026 (RSC, SWR, TanStack Query)

Bedste nyheder API til React i 2026 — 6-valg, Next.js 15 RSC-opskrift, useInfiniteQuery-paginering, SSE live feed og hvordan man ikke lækker sin API-nøgle.

News API Pagination: Cursor, Offset & the 10k Cap
Developer Guides

News API Pagination: Cursor, Offset & the 10k Cap

Stop losing articles between pages. A consumer-side guide to news API pagination: date-window slicing, 429 retries, async streaming, and dedup.

Real-time news alerts with WebSockets (Socket.IO 2026)
Developer Guides

Real-time news alerts with WebSockets (Socket.IO 2026)

Build real-time news alerts with WebSockets in Node.js using Socket.IO 4.8 and APITube SSE. Room filters, reconnect, Redis adapter, full code.

How to Build a News Aggregator App in 30 Minutes (2026)
Developer Guides

How to Build a News Aggregator App in 30 Minutes (2026)

Learn how to build a news aggregator app in 30 minutes with vanilla JavaScript. Search, filters, rate-limit handling — full working code included.

Vi bruger cookies

Ved at klikke på "Accepter" accepterer du cookies på din enhed, så webstedet fungerer og til analyse.