A lightweight, zero-dependency Node.js library for generating realistic browser user agents across different systems and browsers.
- π Zero dependencies - Lightweight and fast
- π² Random generation - Generate random or specific user agents
- π Multi-browser support - Chrome, Firefox, Safari, Edge, Samsung Internet
- π» Multi-platform - Windows, macOS, Linux, iOS, Android
- π± Mobile & Tablet support - iPhone, iPad, Android phones & tablets
- ποΈ Well-structured - Modular architecture for easy maintenance
- π¦ Easy to use - Simple API with sensible defaults
- π TypeScript support - Full type definitions included
- β‘ Up-to-date - Uses recent browser versions
- β Fully tested - Comprehensive test suite with 100% pass rate
npm install ua-randomizeror with yarn:
yarn add ua-randomizerconst ua = require('ua-randomizer');
// Generate a random desktop user agent
const randomUA = ua.generate();
console.log(randomUA);
// => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
// Generate a mobile user agent
const mobileUA = ua.generate({ deviceType: 'mobile' });
console.log(mobileUA);
// => Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X)...Try it:
npm test # Run 87 comprehensive tests
npm run example # View detailed examplesconst ua = require('ua-randomizer');
// Generate random desktop user agent (default)
const userAgent = ua.generate();
// Generate random user agent from any device type
const anyDevice = ua.generate({ deviceType: 'random' });// Desktop (default)
const desktop = ua.generate({ deviceType: 'desktop' });
// Mobile phone
const mobile = ua.generate({ deviceType: 'mobile' });
// Tablet
const tablet = ua.generate({ deviceType: 'tablet' });// Generate Chrome user agent
const chrome = ua.generate({ browser: 'chrome' });
// Generate Firefox user agent
const firefox = ua.generate({ browser: 'firefox' });
// Generate Safari user agent
const safari = ua.generate({ browser: 'safari' });
// Generate Edge user agent
const edge = ua.generate({ browser: 'edge' });// Generate user agent for Windows
const windowsUA = ua.generate({ os: 'windows' });
// Generate user agent for macOS
const macUA = ua.generate({ os: 'mac' });
// Generate user agent for Linux
const linuxUA = ua.generate({ os: 'linux' });// Chrome on Windows
const chromeWindows = ua.generate({
deviceType: 'desktop',
browser: 'chrome',
os: 'windows'
});
// Firefox on Linux
const firefoxLinux = ua.generate({
deviceType: 'desktop',
browser: 'firefox',
os: 'linux'
});
// Safari on Mac (Safari is macOS only)
const safariMac = ua.generate({
deviceType: 'desktop',
browser: 'safari'
});// iPhone
const iphone = ua.generateIPhone();
// => Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X)...
// iPad
const ipad = ua.generateIPad();
// => Mozilla/5.0 (iPad; CPU OS 17_4 like Mac OS X)...
// Android Phone
const androidPhone = ua.generateAndroidPhone();
// => Mozilla/5.0 (Linux; Android 13; Pixel 7)...
// Android Tablet
const androidTablet = ua.generateAndroidTablet();
// => Mozilla/5.0 (Linux; Android 13; SM-X900)...
// Firefox Mobile
const firefoxMobile = ua.generateFirefoxMobile();
// Samsung Internet
const samsungBrowser = ua.generateSamsungInternet();// iOS mobile
const iosPhone = ua.generate({
deviceType: 'mobile',
os: 'ios'
});
// Android mobile with specific browser
const androidChrome = ua.generate({
deviceType: 'mobile',
os: 'android',
browser: 'chrome'
});
// Android mobile with Firefox
const androidFirefox = ua.generate({
deviceType: 'mobile',
os: 'android',
browser: 'firefox'
});
// iPad
const ipadUA = ua.generate({
deviceType: 'tablet',
os: 'ios'
});
// Android tablet
const androidTabletUA = ua.generate({
deviceType: 'tablet',
os: 'android'
});// Generate 5 random user agents
const userAgents = ua.generateMultiple(5);
// Generate 3 Chrome user agents on Windows
const chromeUAs = ua.generateMultiple(3, {
browser: 'chrome',
os: 'windows'
});// Generate specific browser user agents directly
const chrome = ua.generateChrome();
const firefox = ua.generateFirefox();
const safari = ua.generateSafari();
const edge = ua.generateEdge();
// With OS specification
const chromeWindows = ua.generateChrome('windows');
const firefoxMac = ua.generateFirefox('mac');
const edgeLinux = ua.generateEdge('linux');// Get list of supported browsers
const browsers = ua.getBrowsers();
console.log(browsers); // => ['chrome', 'firefox', 'safari', 'edge']
// Get list of supported operating systems
const systems = ua.getOperatingSystems();
console.log(systems); // => ['windows', 'mac', 'linux']Generate a user agent string.
Parameters:
options(Object, optional)deviceType(string): Device type -'desktop','mobile','tablet', or'random'(default:'desktop')browser(string): Browser type -'chrome','firefox','safari','edge','samsung', or'random'(default:'random')os(string): Operating system -'windows','mac','linux','ios','android', or'random'(default:'random')
Returns: string - User agent string
Generate multiple user agent strings.
Parameters:
count(number): Number of user agents to generateoptions(Object, optional): Same asgenerate()options
Returns: string[] - Array of user agent strings
Generate a Chrome user agent.
Parameters:
os(string, optional): Operating system -'windows','mac','linux', or'random'(default:'random')
Returns: string - Chrome user agent string
Generate a Firefox user agent.
Parameters:
os(string, optional): Operating system -'windows','mac','linux', or'random'(default:'random')
Returns: string - Firefox user agent string
Generate a Safari user agent (macOS only).
Returns: string - Safari user agent string
Generate an Edge user agent.
Parameters:
os(string, optional): Operating system -'windows','mac', or'random'(default:'random')
Returns: string - Edge user agent string
Get list of supported browsers.
Returns: string[] - Array of browser names
Get list of supported operating systems.
Returns: string[] - Array of OS names
Generate an iPhone user agent (Safari).
Returns: string - iPhone user agent string
Generate an iPad user agent (Safari).
Returns: string - iPad user agent string
Generate an Android phone user agent with Chrome.
Returns: string - Android phone user agent string
Generate an Android tablet user agent with Chrome.
Returns: string - Android tablet user agent string
Generate a mobile Firefox user agent (Android).
Returns: string - Mobile Firefox user agent string
Generate a Samsung Internet user agent.
Returns: string - Samsung Internet user agent string
Generate a random mobile user agent.
Parameters:
options(Object, optional)device(string): Device type -'iphone','ios','android', or'random'(default:'random')
Returns: string - Random mobile user agent string
Generate a random tablet user agent.
Parameters:
options(Object, optional)device(string): Device type -'ipad','ios','android', or'random'(default:'random')
Returns: string - Random tablet user agent string
Get list of supported device types.
Returns: string[] - Array of device type names (['desktop', 'mobile', 'tablet'])
const axios = require('axios');
const ua = require('ua-randomizer');
async function scrape(url) {
const response = await axios.get(url, {
headers: {
'User-Agent': ua.generate()
}
});
return response.data;
}const puppeteer = require('puppeteer');
const ua = require('ua-randomizer');
async function test() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Set random user agent
await page.setUserAgent(ua.generate());
await page.goto('https://example.com');
// ... rest of your test
}const fetch = require('node-fetch');
const ua = require('ua-randomizer');
fetch('https://api.example.com/data', {
headers: {
'User-Agent': ua.generate({ browser: 'chrome', os: 'windows' })
}
})
.then(response => response.json())
.then(data => console.log(data));This package includes TypeScript definitions out of the box:
import * as ua from 'ua-randomizer';
const userAgent: string = ua.generate({
browser: 'chrome',
os: 'windows'
});Contributions are welcome! Please feel free to submit a Pull Request.
MIT Β© [Your Name]
The library generates user agents with latest versions (Updated Oct 2025):
- Chrome - Versions 127-141 β‘ (Latest!)
- Firefox - Versions 128-137
- Safari - Versions 17.2-18.2 (macOS only)
- Edge - Versions 127-141
- Chrome Mobile - Versions 127-141 β‘ (Latest!)
- Firefox Mobile - Versions 128-135
- Safari Mobile - iOS 16.6-18.2
- Samsung Internet - Versions 23-26
- Windows - Windows 10 & 11
- macOS - Versions 10.15.7 (Catalina) to 15.1 (Sequoia)
- Linux - Ubuntu, Fedora, and generic distributions
- iOS - Versions 16.6 - 18.2 (iPhone & iPad)
- Android - Versions 11-14
- Desktop - Windows, Mac, Linux computers
- iPhone - All recent models with iOS 16.6-18.2
- iPad - All recent models with iPadOS 16.6-18.2
- Android Phones - Samsung Galaxy, Google Pixel, Xiaomi, and more
- Android Tablets - Samsung Galaxy Tab, Google Pixel Tablet, and more
Zero dependencies means:
- β Tiny package size
- β Fast installation
- β No security vulnerabilities from dependencies
- β Works in any Node.js environment (v12+)
Made with β€οΈ for the Node.js community