ClientProfile type defines a complete browser fingerprint profile, including TLS handshake configuration and HTTP/2 settings. Profiles allow your HTTP client to mimic real browsers at the TLS and protocol level.
Overview
A ClientProfile combines:- TLS fingerprint: Client Hello configuration (cipher suites, extensions, curves)
- HTTP/2 settings: Frame settings, priorities, connection flow
- HTTP/3 settings: QUIC and HTTP/3 configuration (for supported profiles)
Type definition
Fields
clientHelloId
TLS Client Hello configuration including cipher suites, supported groups, extensions, and their order.settings
HTTP/2 SETTINGS frame parameters mapping setting IDs to values.settingsOrder
Order in which HTTP/2 SETTINGS are sent in the SETTINGS frame.pseudoHeaderOrder
Order of HTTP/2 pseudo-headers (:method, :authority, :scheme, :path).
connectionFlow
HTTP/2 connection-level flow control window size.headerPriority
Default priority for request streams.priorities
Stream priority tree configuration (Firefox profiles).streamID
Initial stream ID.allowHTTP
Whether to allow HTTP/1.1 connections.http3Settings
HTTP/3 QUIC settings frame parameters.http3SettingsOrder
Order of HTTP/3 settings.http3PriorityParam
HTTP/3 priority parameters.http3PseudoHeaderOrder
Order of HTTP/3 pseudo-headers.http3SendGreaseFrames
Whether to send GREASE frames for HTTP/3.Usage
Profiles are selected by name using theWithClientProfile option:
MappedTLSClients map:
Default profile
If no profile is specified, the library usesprofiles.Chrome_133 as the default.
Available profiles
See Available profiles for a complete list of all browser profiles.Creating custom profiles
You can create custom profiles using theNewClientProfile constructor: