request
The once-ubiquitous, now officially deprecated Node.js HTTP request client
Repository Health
Technical Analysis
request was, for most of the 2010s, the de facto standard HTTP client for Node.js, offering a single simple function supporting callbacks, streaming, redirects, cookie jars, multipart forms, OAuth, and HAR-based request replay. It was officially deprecated by its maintainers on February 11, 2020, with no further changes expected to land, in favor of newer promise/async-based clients.
Despite its deprecated status, request remains deeply embedded as a transitive dependency across the npm ecosystem, and its README continues to be referenced as the canonical example of Node’s early callback/streaming HTTP idioms. It is documented here as a widely-installed legacy library rather than a recommendation for new projects.
What You Get
- A single
request()function supporting both callback and streaming (pipe-based) response handling - Automatic HTTPS and redirect handling out of the box
- Built-in cookie jar, multipart/form-data, and OAuth request signing support
- HAR (HTTP Archive) format request support for replaying captured requests
- A large, still-widely-installed transitive footprint across the npm ecosystem
Common Use Cases
- Legacy Node.js codebases and tooling that were built against request’s callback/streaming API before promise-based clients became standard
- Reading and understanding older Node.js tutorials and Stack Overflow answers that still reference request as the example HTTP client
- Maintaining or migrating off of older dependency trees that pull request in transitively
- Studying stream-based HTTP request/response piping patterns in Node.js (e.g. piping a response directly to a file write stream)
Under The Hood
Architecture: The library’s core (request.js, ~1,550 lines) implements a single Request object that extends Node’s Stream and wires together the request lifecycle — DNS/proxy resolution, redirect following, and response piping — as a sequence of event-driven steps rather than a promise chain, reflecting Node’s pre-async/await conventions. Cross-cutting concerns (cookies, auth, multipart, OAuth, HAR replay) are split into separate modules under lib/ (cookies.js, auth.js, multipart.js, oauth.js, har.js) that the core request pipeline composes together at request time.
Tech Stack: Plain CommonJS JavaScript targeting Node’s built-in http/https modules directly, with dependencies on now-largely-legacy helper packages (har-validator, tunnel-agent, forever-agent) that were common in the pre-2018 Node ecosystem.
Code Quality: The tests/ directory is extensive (test-agent, test-api, test-aws, test-cookies, and more), reflecting years of production hardening, but the project has had zero commits and zero releases since 2020 per GitHub activity data, and the README leads with a formal deprecation notice pointing users to the discussion issue and alternative clients.
API Design: The single-function callback/stream API (request(url, callback) or request(url).pipe(...)) was praised in its era for simplicity, but by modern standards requires wrapper libraries (request-promise, request-promise-native) to get promise/async-await ergonomics — a real gap relative to fetch-based or axios-style clients that support promises natively.
Used by 11 apps in this directory
APITable
Low Code Platforms · Databases
API-first collaborative spreadsheet-database platform that auto-generates REST APIs and lets teams build internal tools, CRMs, and dashboards without code.
CapRover
Developer Tools · Devops · Hosting Control Panel
Deploy any app, database, or website to your own server in minutes—no Docker or Linux expertise required.
ChartBrew
Analytics · Databases
Open-source reporting platform to build live dashboards from SQL, NoSQL, APIs, and SaaS tools with an AI assistant that creates charts from natural language.
ClearFlask
Product Management · Community
Open-source feedback management and roadmap tool that lets product teams collect, prioritize, and respond to user input — with AI-powered summarization and full self-hosting control.
Jan
AI Assistants
Run LLMs 100% locally with full privacy, or connect to cloud AI — your machine, your data, your control.
Joplin
Note Taking
The privacy-first, open-source note-taking app with end-to-end encrypted sync, AI assistance, and a powerful plugin ecosystem across every platform.
matomo
Analytics
Open-source, privacy-first web and app analytics that puts you in complete control of your data.
Ory Kratos
Authentication
API-first identity and user management that handles login, registration, MFA, and recovery so your application never has to.
overleaf
Collaboration · Productivity
Open-source, real-time collaborative LaTeX editor with sandboxed compilation and full TeXLive support for self-hosted academic and research teams.