Make an HTTPS request in Node.js
node-js
Updated August 29, 2026
For a low-level HTTPS request, Node exposes node:https. Save this as an ES module (for example, request.mjs). The response arrives as a stream, so collect its chunks before parsing:
import https from 'node:https';
https.get('https://example.com/data', (res) => {
let body = '';
res.setEncoding('utf8');
res.on('data', (chunk) => { body += chunk; });
res.on('end', () => {
if (res.statusCode < 200 || res.statusCode >= 300) {
console.error(`HTTP ${res.statusCode}`);
return;
}
console.log(body);
});
}).on('error', console.error);
For new code, the promise-based fetch() API is usually easier to read. Whichever client you choose, check status codes, set timeouts, limit response sizes, and handle connection errors. Never disable TLS certificate verification to make a failing request “work”; diagnose the hostname, certificate chain, proxy, or local trust store instead.
Sources
related.
Ruslan Osipov
About the author