const endpoint = new URL(browserlessWebSocketEndpoint);
endpoint.searchParams.set('token', browserlessToken);
endpoint.searchParams.set('launch', JSON.stringify({
  args: ['--proxy-server=http://proxy.example:8080'],
}));

const browser = await puppeteer.connect({
  browserWSEndpoint: endpoint.toString(),
});

Use the supplied ws/wss deployment endpoint and token. The browser host must reach the HTTP listener; that token authenticates the control connection. A candidate from the HTTP proxy list can fill the unauthenticated launch flag for permitted public browsing.

JSON.stringify serializes the launch object, then URLSearchParams encodes it for the URL. Passing pre-encodeURIComponent text into searchParams encodes its percent signs again.

This unauthenticated flag does not carry Chromium username/password credentials. Use supported challenge handling when needed.

A hosted externalProxyServer integration is not an identically named launch-object field on every self-hosted image. Match deployment, image version and selected API before diagnosing the account.

Related articles