🌪️ Windscribe Proxy SDK
A powerful and unofficial Node.js SDK for Windscribe proxy services featuring custom SNI support, bulk testing capabilities, comprehensive session management, and advanced monitoring.

✨ Features
- 🔐 Smart Authentication - Automatic session management with 2FA support
- 🌐 Custom SNI Support - Enhanced privacy with configurable SNI masking
- 🚀 Bulk Proxy Testing - Test multiple proxies concurrently with detailed metrics
- 📊 Real-time Analytics - Traffic usage, latency monitoring, and success rates
- 💾 State Persistence - Automatic session saving and loading
- 🔍 Smart DNS Resolution - Multiple resolver support with intelligent fallback
- 🛡️ TLS Security - Advanced TLS configurations with custom certificate handling
- 🎯 OOP Interface - Modern class-based API with event-driven architecture
- 🔄 Auto-Reconnect - Automatic connection recovery and health monitoring
- ⚖️ Load Balancing - Smart request distribution across multiple servers
- 📈 Advanced Monitoring - Real-time connection monitoring and analytics
🚀 Quick Start
npm install windscribe-proxy-sdk
Basic Usage (Functional API)
const { session, serverCredentials, testProxy } = require('windscribe-proxy-sdk');
await session('username', 'password');
await serverCredentials();
const result = await testProxy('us-east-001.totallyacdn.com');
console.log(`✅ Connected! IP: ${result.ip}, Latency: ${result.latency}ms`);
Advanced Usage (OOP API)
const { WindscribeSDK } = require('windscribe-proxy-sdk');
const sdk = new WindscribeSDK({
autoReconnect: true,
enableLogging: true,
healthCheckInterval: 30000
});
sdk.on('proxy_connected', (server) => {
console.log(`Connected to: ${server.hostname}`);
});
sdk.on('health_check', (result) => {
console.log(`Health: ${result.status}, Latency: ${result.latency}ms`);
});
await sdk.session('username', 'password');
const bestServers = await sdk.findBestServers({
country: 'US',
maxLatency: 500,
testCount: 10
});
📚 Core API
Authentication
await session('username', 'password');
await session('username', 'password', '123456');
await serverCredentials();
Proxy Testing
const result = await testProxy('proxy.windscribe.com');
const result = await testCustomProxy({
hostname: 'proxy.windscribe.com',
port: 443,
customSni: 'www.google.com',
targetUrl: 'https://httpbin.org/ip'
});
const results = await bulkTestProxies(proxies, {
concurrency: 5,
timeout: 10000,
customSni: 'www.google.com'
});
Advanced Features (OOP API)
const bestServers = await sdk.findBestServers({
country: 'US',
maxLatency: 300,
testCount: 5
});
const monitoring = await sdk.monitorConnection(
'us-central-001.windscribe.com',
443,
60000
);
const response = await sdk.loadBalanceRequests([
'us-east-001.windscribe.com',
'us-west-001.windscribe.com'
], 'https://httpbin.org/ip');
const stats = sdk.getStatistics();
console.log(`Success Rate: ${stats.successRate}%`);
💡 Examples
Check out the examples/
directory for complete usage examples:
1. Login - Initial authentication and session creation
node examples/login.js
2. Test All Proxies - Complete proxy testing using saved session
node examples/testproxy.js
3. Custom Request - Advanced proxy request with custom SNI
node examples/customreq.js
node examples/monitoring.js
5. Load Balancing - Smart request distribution
node examples/loadbalance.js
Quick Setup Steps:
node examples/login.js
node examples/customreq.js
node examples/testproxy.js
node examples/monitoring.js
🔧 Advanced Configuration
Custom SNI Options
customSni: 'www.google.com'
customSni: 'cloudflare.com'
customSni: 'www.microsoft.com'
WindscribeSDK Class Options
const sdk = new WindscribeSDK({
autoReconnect: true,
enableLogging: true,
healthCheckInterval: 30000,
maxRetries: 3,
timeout: 10000,
cacheTimeout: 600000
});
Bulk Testing Configuration
const results = await bulkTestProxies(proxies, {
concurrency: 3,
timeout: 10000,
customSni: 'www.google.com',
retries: 2
});
📖 API Reference
Functional API
session(user, pass, 2fa?) | Authenticate with Windscribe | Promise<Object> |
serverCredentials() | Get proxy credentials | Promise<Object> |
serverList() | Fetch available servers | Promise<Array> |
testProxy(hostname, port?) | Test single proxy | Promise<Object> |
testCustomProxy(options) | Advanced proxy testing | Promise<Object> |
bulkTestProxies(proxies, opts?) | Test multiple proxies | Promise<Object> |
saveState(filename) | Save session state | Boolean |
loadState(filename) | Load session state | Boolean |
getState() | Get current state | Object |
WindscribeSDK Class Methods
session(user, pass, 2fa?) | Authenticate and create session | Promise<Object> |
findBestServers(options) | Find optimal servers by criteria | Promise<Array> |
monitorConnection(host, port, duration) | Monitor connection in real-time | Promise<Object> |
loadBalanceRequests(servers, url) | Distribute requests across servers | Promise<Object> |
testServerLatency(hostname, rounds) | Multi-round latency testing | Promise<Object> |
getAccountInfo() | Get account information | Object |
getStatistics() | Get detailed statistics | Object |
clearCache() | Clear server cache | void |
Events (WindscribeSDK)
session_created | Session successfully created | {username, traffic, servers} |
proxy_connected | Proxy connection established | {hostname, ip, latency} |
proxy_failed | Proxy connection failed | {hostname, error} |
health_check | Health check completed | {status, latency, timestamp} |
monitoring_result | Monitoring data available | {server, results} |
bulk_test_completed | Bulk testing finished | {total, successful, failed} |
🛠️ Requirements
- Node.js 14.0.0 or higher
- Valid Windscribe account
- Internet connection
⚖️ License
Apache 2.0 License - see LICENSE file for details.
🚨 Disclaimer
This is an unofficial SDK created for educational purposes. Please respect Windscribe's Terms of Service and use responsibly.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Built with ❤️ for the privacy community