What are browser profiles?
Browser profiles define the network profile labels that wreq-js sends to the native layer. Profiles can influence behavior such as:
- TLS handshake preferences
- HTTP protocol behavior
- Default request headers
- Platform-specific header values
Final wire behavior is determined by the native engine and may vary by profile and runtime.
Available browsers
wreq-js profile families include:
- Chrome
- Firefox
- Safari
- Edge
- Opera
- OkHttp
Listing profiles
Using a profile
Specify the browser option in your fetch call:
Family aliases
Instead of a concrete profile you can pass a family alias, which resolves to the newest
profile in that family:
Available aliases: chrome, firefox, safari, edge, opera, okhttp,
firefox_private, firefox_android, safari_ios, safari_ipad.
Families are matched exactly, so safari resolves to the newest desktop Safari and never
to an iOS or iPad profile. Those have their own aliases.
An alias resolves to the newest profile shipped with the version of wreq-js you have
installed, so upgrading the library changes the fingerprint an alias produces. That is the
point of using one, but it does mean a wreq-js upgrade can change how a target responds
to you without any change in your own code.Pin a concrete profile when you need a fingerprint that never moves, and use
resolveProfile() to record which one an alias picked.
The default browser is the chrome alias, so requests that do not set browser track
the newest Chrome profile rather than a pinned version that goes stale over time.
Operating systems
Different operating systems have different header values and behaviors. Use the os option to emulate a specific platform:
Example: Windows Chrome
Example: iOS Safari
Profile updates
Profile labels are sourced from the native layer and can evolve with upstream updates.
Use a recent version of wreq-js if you want the latest profile set.
By default, browser emulation headers are automatically added. To use only your custom headers: