Skip to main content
The TLS Client library includes 80+ pre-configured browser profiles. Each profile mimics a specific browser version with accurate TLS and HTTP/2 fingerprints.

Chrome profiles

Chrome profiles include both standard and PSK (Pre-Shared Key) variants. PSK variants support session resumption.
Profile NameMap KeyVersionNotes
Chrome_103chrome_103103
Chrome_104chrome_104104
Chrome_105chrome_105105
Chrome_106chrome_106106
Chrome_107chrome_107107
Chrome_108chrome_108108
Chrome_109chrome_109109
Chrome_110chrome_110110
Chrome_111chrome_111111
Chrome_112chrome_112112
Chrome_116_PSKchrome_116_PSK116PSK variant
Chrome_116_PSK_PQchrome_116_PSK_PQ116PSK with post-quantum
Chrome_117chrome_117117
Chrome_120chrome_120120
Chrome_124chrome_124124
Chrome_130_PSKchrome_130_PSK130PSK variant
Chrome_131chrome_131131
Chrome_131_PSKchrome_131_PSK131PSK variant
Chrome_133chrome_133133Default profile
Chrome_133_PSKchrome_133_PSK133PSK variant
Chrome_144chrome_144144With HTTP/3
Chrome_144_PSKchrome_144_PSK144PSK with HTTP/3
Chrome_146chrome_146146Latest
Chrome_146_PSKchrome_146_PSK146PSK variant

Firefox profiles

Firefox profiles include standard and PSK variants for recent versions.
Profile NameMap KeyVersionNotes
Firefox_102firefox_102102
Firefox_104firefox_104104
Firefox_105firefox_105105
Firefox_106firefox_106106
Firefox_108firefox_108108
Firefox_110firefox_110110
Firefox_117firefox_117117
Firefox_120firefox_120120
Firefox_123firefox_123123
Firefox_132firefox_132132
Firefox_133firefox_133133
Firefox_135firefox_135135
Firefox_146_PSKfirefox_146_PSK146PSK variant
Firefox_147firefox_147147Latest
Firefox_147_PSKfirefox_147_PSK147PSK variant

Safari profiles

Desktop Safari

Profile NameMap KeyVersionPlatform
Safari_15_6_1safari_15_6_115.6.1macOS
Safari_16_0safari_16_016.0macOS

iPad Safari

Profile NameMap KeyVersionPlatform
Safari_Ipad_15_6safari_ipad_15_615.6iPadOS

iOS Safari

Profile NameMap KeyVersionPlatform
Safari_IOS_15_5safari_ios_15_515.5iOS
Safari_IOS_15_6safari_ios_15_615.6iOS
Safari_IOS_16_0safari_ios_16_016.0iOS
Safari_IOS_17_0safari_ios_17_017.0iOS
Safari_IOS_18_0safari_ios_18_018.0iOS
Safari_IOS_18_5safari_ios_18_518.5iOS
Safari_IOS_26_0safari_ios_26_026.0iOS

Opera profiles

Profile NameMap KeyVersion
Opera_89opera_8989
Opera_90opera_9090
Opera_91opera_9191

Mobile app profiles

These profiles mimic popular mobile applications.

Zalando

Profile NameMap KeyPlatform
ZalandoAndroidMobilezalando_android_mobileAndroid
ZalandoIosMobilezalando_ios_mobileiOS

Nike

Profile NameMap KeyPlatform
NikeAndroidMobilenike_android_mobileAndroid
NikeIosMobilenike_ios_mobileiOS

MMS (iOS)

Profile NameMap KeyVariant
MMSIosmms_ios, mms_ios_1Variant 1
MMSIos2mms_ios_2Variant 2
MMSIos3mms_ios_3Variant 3

Mesh

Profile NameMap KeyPlatform/Variant
MeshIosmesh_ios, mesh_ios_1iOS variant 1
MeshIos2mesh_ios_2iOS variant 2
MeshAndroidmesh_android, mesh_android_1Android variant 1
MeshAndroid2mesh_android_2Android variant 2

Confirmed VPN

Profile NameMap KeyPlatform
ConfirmedIosconfirmed_iosiOS
ConfirmedAndroidconfirmed_androidAndroid

OkHttp4 profiles

Profiles for the OkHttp4 library on different Android versions.
Profile NameMap KeyAndroid Version
Okhttp4Android7okhttp4_android_7Android 7
Okhttp4Android8okhttp4_android_8Android 8
Okhttp4Android9okhttp4_android_9Android 9
Okhttp4Android10okhttp4_android_10Android 10
Okhttp4Android11okhttp4_android_11Android 11
Okhttp4Android12okhttp4_android_12Android 12
Okhttp4Android13okhttp4_android_13Android 13

Custom profiles

CloudflareCustom

Profile NameMap KeyDescription
CloudflareCustomcloudscraperOptimized for Cloudflare

Usage examples

Using a profile by constant

import "github.com/bogdanfinn/tls-client/profiles"

client, err := tlsclient.NewHttpClient(
    tlsclient.NewNoopLogger(),
    tlsclient.WithClientProfile(profiles.Chrome_146),
)

Using a profile by map key

profile := profiles.MappedTLSClients["firefox_147"]
client, err := tlsclient.NewHttpClient(
    tlsclient.NewNoopLogger(),
    tlsclient.WithClientProfile(profile),
)

Listing all available profiles

for key, profile := range profiles.MappedTLSClients {
    fmt.Printf("%s: %s\n", key, profile.GetClientHelloStr())
}

Choosing a profile

For general web scraping

Use the latest Chrome or Firefox profile:
  • Chrome_146 or Chrome_146_PSK
  • Firefox_147 or Firefox_147_PSK

For mobile targets

Use Safari iOS profiles:
  • Safari_IOS_18_5 for recent iOS
  • Safari_IOS_26_0 for latest

For Cloudflare protection

Use:
  • CloudflareCustom (specialized profile)
  • Latest Chrome PSK variant for general cases

For session resumption

Use PSK (Pre-Shared Key) variants:
  • Chrome_146_PSK
  • Firefox_147_PSK
  • Chrome_131_PSK

Profile compatibility

Most profiles support:
  • ✅ HTTP/1.1
  • ✅ HTTP/2
HTTP/3 support (select profiles):
  • Chrome_144, Chrome_144_PSK
  • Chrome_133, Chrome_133_PSK
  • Firefox_147, Firefox_147_PSK
  • Firefox_146_PSK
Profiles are continuously updated. Check the profiles source code for the latest additions.

Build docs developers (and LLMs) love