node-tls-clientLatest version on npm

ClientIdentifier

Every built-in browser and app profile.

import { Session, ClientIdentifier } from "node-tls-client";

const session = new Session({ clientIdentifier: ClientIdentifier.firefox_148 });

ClientIdentifier is a string enum of the profiles built into the native library. Each one sets the whole TLS and HTTP/2 fingerprint of that browser or app version. It does not set headers such as User-Agent; send those yourself. See Browser profiles.

  • Default: chrome_150, used when a session has neither clientIdentifier nor ja3string.
  • _psk / _PSK variants add the TLS pre_shared_key extension, so repeat connections resume the TLS session the way a returning browser does.
  • HTTP/3: only chrome_144, chrome_144_psk, firefox_147, firefox_147_psk and firefox_148 carry real HTTP/3 settings (native 1.16.0). See HTTP/3.
  • Unknown names fall back to the native library's default profile (chrome_150) without an error. chrome_154, chrome_154_psk and safari_27_2 need native 1.18.1 or newer: initTLS() downloads that, but a previously cached library it falls back to (with a warning) may be older.

In code, use the enum key (ClientIdentifier.chrome_131_psk). In plain JavaScript you can also pass the value string ("chrome_131_PSK"); for some profiles the two differ in case.

Chrome

Enum keyValue sent to native
chrome_103chrome_103
chrome_104chrome_104
chrome_105chrome_105
chrome_106chrome_106
chrome_107chrome_107
chrome_108chrome_108
chrome_109chrome_109
chrome_110chrome_110
chrome_111chrome_111
chrome_112chrome_112
chrome_116_PSKchrome_116_PSK
chrome_116_PSK_PQchrome_116_PSK_PQ
chrome_117chrome_117
chrome_120chrome_120
chrome_124chrome_124
chrome_131chrome_131
chrome_131_pskchrome_131_PSK
chrome_130_pskchrome_130_PSK
chrome_133chrome_133
chrome_133_pskchrome_133_PSK
chrome_144chrome_144
chrome_144_pskchrome_144_PSK
chrome_146chrome_146
chrome_146_pskchrome_146_PSK
chrome_150chrome_150
chrome_150_pskchrome_150_PSK
chrome_152chrome_152
chrome_152_pskchrome_152_PSK
chrome_154chrome_154
chrome_154_pskchrome_154_PSK

Brave

Enum keyValue sent to native
brave_146brave_146
brave_146_pskbrave_146_PSK

Safari

Enum keyValue sent to native
safari_15_6_1safari_15_6_1
safari_16_0safari_16_0
safari_27_2safari_27_2
safari_ipad_15_6safari_ipad_15_6
safari_ios_15_5safari_ios_15_5
safari_ios_15_6safari_ios_15_6
safari_ios_16_0safari_ios_16_0
safari_ios_17_0safari_ios_17_0
safari_ios_18_0safari_ios_18_0
safari_ios_18_5safari_ios_18_5
safari_ios_26_0safari_ios_26_0

Firefox

Enum keyValue sent to native
firefox_102firefox_102
firefox_104firefox_104
firefox_105firefox_105
firefox_106firefox_106
firefox_108firefox_108
firefox_110firefox_110
firefox_117firefox_117
firefox_120firefox_120
firefox_123firefox_123
firefox_132firefox_132
firefox_133firefox_133
firefox_135firefox_135
firefox_146_pskfirefox_146_PSK
firefox_147firefox_147
firefox_147_pskfirefox_147_PSK
firefox_148firefox_148

Opera

Enum keyValue sent to native
opera_89opera_89
opera_90opera_90
opera_91opera_91

Zalando apps

Enum keyValue sent to native
zalando_android_mobilezalando_android_mobile
zalando_ios_mobilezalando_ios_mobile

Nike apps

Enum keyValue sent to native
nike_ios_mobilenike_ios_mobile
nike_android_mobilenike_android_mobile

Other

Enum keyValue sent to native
cloudscrapercloudscraper

MMS iOS

Enum keyValue sent to native
mms_iosmms_ios
mms_ios_1mms_ios_1
mms_ios_2mms_ios_2
mms_ios_3mms_ios_3

Mesh apps

Enum keyValue sent to native
mesh_iosmesh_ios
mesh_ios_1mesh_ios_1
mesh_ios_2mesh_ios_2
mesh_androidmesh_android
mesh_android_1mesh_android_1
mesh_android_2mesh_android_2

Confirmed apps

Enum keyValue sent to native
confirmed_iosconfirmed_ios
confirmed_androidconfirmed_android

OkHttp (Android)

Enum keyValue sent to native
okhttp4_android_7okhttp4_android_7
okhttp4_android_8okhttp4_android_8
okhttp4_android_9okhttp4_android_9
okhttp4_android_10okhttp4_android_10
okhttp4_android_11okhttp4_android_11
okhttp4_android_12okhttp4_android_12
okhttp4_android_13okhttp4_android_13

On this page