
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
proxy-agent
Advanced tools
http.Agent implementationsThis module provides an http.Agent implementation which automatically uses
proxy servers based off of the various proxy-related environment variables
(HTTP_PROXY, HTTPS_PROXY and NO_PROXY among others).
Which proxy is used for each HTTP request is determined by the
proxy-from-env module, so
check its documentation for instructions on configuring your environment variables.
An LRU cache is used so that http.Agent instances are transparently re-used for
subsequent HTTP requests to the same proxy server.
The currently implemented protocol mappings are listed in the table below:
| Protocol | Proxy Agent for http requests | Proxy Agent for https requests | Example |
|---|---|---|---|
http | http-proxy-agent | https-proxy-agent | http://proxy-server-over-tcp.com:3128 |
https | http-proxy-agent | https-proxy-agent | https://proxy-server-over-tls.com:3129 |
socks(v5) | socks-proxy-agent | socks-proxy-agent | socks://username:password@some-socks-proxy.com:9050 (username & password are optional) |
socks5 | socks-proxy-agent | socks-proxy-agent | socks5://username:password@some-socks-proxy.com:9050 (username & password are optional) |
socks4 | socks-proxy-agent | socks-proxy-agent | socks4://some-socks-proxy.com:9050 |
pac-* | pac-proxy-agent | pac-proxy-agent | pac+http://www.example.com/proxy.pac |
import * as https from 'https';
import { ProxyAgent } from 'proxy-agent';
// The correct proxy `Agent` implementation to use will be determined
// via the `http_proxy` / `https_proxy` / `no_proxy` / etc. env vars
const agent = new ProxyAgent();
// The rest works just like any other normal HTTP request
https.get('https://jsonip.com', { agent }, (res) => {
console.log(res.statusCode, res.headers);
res.pipe(process.stdout);
});
Creates an http.Agent instance which relies on the various proxy-related
environment variables. An LRU cache is used, so the same http.Agent instance
will be returned if identical args are passed in.
This package provides an HTTP agent to proxy HTTP requests. It is similar to proxy-agent but is limited to HTTP protocol only, whereas proxy-agent supports multiple protocols.
This package provides an HTTPS agent to proxy HTTPS requests. Like http-proxy-agent, it is protocol-specific and does not offer the multi-protocol support that proxy-agent does.
This package is designed to provide an agent that proxies through a SOCKS proxy. It is specifically tailored for SOCKS protocol, unlike proxy-agent which handles SOCKS along with other protocols.
This package provides a proxy agent that can use a PAC file to determine the appropriate proxy for a given URL. It is focused on PAC file support, which is just one of the features available in proxy-agent.
FAQs
Maps proxy protocols to `http.Agent` implementations
The npm package proxy-agent receives a total of 17,378,245 weekly downloads. As such, proxy-agent popularity was classified as popular.
We found that proxy-agent demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.