puppyproxy is a Node.js library for managing, scraping, and using proxies with fetch and WebSocket support. Current stable version is 1.1.9, released in 2025. It provides built-in proxy scraping from free sources with configurable pool management, automatic rotation, and retry logic. Key differentiators include combined HTTP/HTTPS/SOCKS4/SOCKS5 support, integrated WebSocket proxy handler, and easy configuration with optional IPvanish provider support. The library ships TypeScript types and is ESM-only. Active development with monthly releases.
npm install puppyproxyNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Initializes PuppyProxy with proxy scraping enabled, forces a collection run, then fetches IP address through a proxy.
Pass a single config object to the constructor as shown in the documentation.
Use import statements. If CommonJS is required, use dynamic import() or downgrade to v0.x.
Set scraper.method to 'http' instead of 'ws'.
Set maxProxiesToCheck to a reasonable number like 500 for testing. Increase timeoutMax if needed.
Use pp.request.fetch() which has built-in retry logic, or implement your own error handling.
Use import PuppyProxy from 'puppyproxy' instead of require.
Run npm install puppyproxy in your project directory.
Add "type": "module" to your package.json or rename file to .mjs.
Ensure scraper.timeBetweenScrapes is a number (e.g., 45).