Skip to main content

Installation

Requires Node.js 20 or later. Version 3 of the SDK is ESM-only: load it with import, require('gologin') doesn’t work.

Basic usage

Launch with GologinApi

GologinApi starts a profile and connects Puppeteer for you. launch() returns a Puppeteer browser. Pass cloud: true to run the profile in Gologin Cloud Browser instead of a local Orbita browser:
Without profileId, launch() creates a new profile first. GologinApi also has helpers such as createProfileRandomFingerprint(), addGologinProxyToProfile(), addCookiesToProfile(), and deleteProfile(). See the Quickstart for a full example.

Key parameters

Stopping profiles

Close the browser in your automation tool first, for example with browser.close(). stop() takes no options and always uploads the profile to Gologin. stopLocal({ posting: false }) finishes the session without uploading profile data. Use it on servers where you don’t want cloud sync. Cookies are still uploaded if you set uploadCookiesToServer: true.

Managing Orbita browser versions

When a profile starts, the SDK checks which Orbita version the profile’s user agent needs. If that version isn’t in ~/.gologin/browser yet, the SDK downloads it, otherwise it reuses the installed copy. To run a specific build, pass executablePath. The autoUpdateBrowser (default false) and checkBrowserUpdate options are still accepted, but in the current SDK (3.0.7) they don’t change this behavior. To download Orbita in advance, call checkAndDownloadBrowserByOpts() on a GoLogin instance. It is a method, not a separate export:
Without options, it downloads the 5 latest versions. Use it before launching profiles in parallel to avoid multiple simultaneous downloads.

Running 100+ profiles in parallel

When running many profiles concurrently on a server:
Important for servers:
  • Limit concurrent profile launches (10-20 recommended to start)
  • Pre-download Orbita versions before launching
  • On Linux: install Xvfb and set DISPLAY=:99
  • Increase file descriptor limits: ulimit -n 65536
  • Monitor RAM: each profile uses ~300-500 MB

Debugging

Set the environment variable for verbose logging:

GitHub & Changelog