Your Playwright, Puppeteer or Python script signs in once. Gologin Cloud Browser keeps the login in a profile with the same device and the same residential IP, so every later run starts signed in and the site sees a returning user, not a new device to verify.
Free to start, no card. Residential IPs included.
Cookies, device fingerprint and residential IP come back together on every run, so the portal sees the same returning user on run 40 as on run 1, not a new device asking to verify.
The script signs in once, a person types the verification code in the live session, and the profile is saved.
Same device, same address, same account. No login screen, so the script goes straight to the work.
Nothing has drifted. One account on one consistent device the whole time, so the portal has nothing new to check.
Want the mechanics? Read how to connect a profile, then create your first one.
A script that logs in needs two things between runs: a login that lasts and a browser that keeps running. Here is who handles each.
| What you get | Your own server | Browserbase | Browserless | |
|---|---|---|---|---|
| Still signed in on the next run | Yes | You build it | Yes | Up to 7 days |
| Same residential IP on the next run | Yes | No | Not published | Not published |
| Longest session, first paid plan | No limit | No limit | 6 hours | 15 minutes |
| Chrome to install and keep updated | None | Yours | None | None |
| A person can step in from a link | Yes | No | Yes | Yes |
| Residential traffic | $1/GB | Separate provider | $12/GB | $12/GB |
| First paid plan | $4.50 a month | Server cost | $20 a month | $25 a month, yearly |
Collecting data rather than acting on it? See Dynamic scraping.
Marketplaces, ad platforms and portals check every sign-in. Gologin brings back the same device, IP and login on every run.
Update prices, stock and listings in your Amazon, eBay or Etsy seller account, the same steps your team does by hand.
Place repeat orders or book slots on supplier, travel and booking sites that only offer a web page.
Download the reports from ad accounts and analytics tools that limit or charge for their API.
Copy orders, invoices or records from your system into a supplier or government portal, field by field.
Fill and submit the same multi-step form for each row of a sheet, and check the result after every step.
Move records between an old web tool and your CRM when one side has no API.
Connect your script in one line. The first run signs in; every run after checks that the profile is still signed in and goes straight to work. The code below ran twice on a public practice site: signed in on the first run, already signed in on the second.
Sign up with Google and copy your key from the dashboard. Free, no card.
One click in the dashboard, or one API call. The profile keeps the device, the IP and the login.
Run the script with your token and profile id. The first run signs in and prints "Signed in"; the second opens signed in and prints "Already signed in". More in the getting started guide.
npm install playwright-coreGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id node login.mjswss://cloudbrowser.gologin.com/connect?token=…&profile=…import { chromium } from "playwright-core";
const token = process.env.GOLOGIN_TOKEN;
const profileId = process.env.GOLOGIN_PROFILE_ID;
const endpoint = `wss://cloudbrowser.gologin.com/connect?token=${token}&profile=${profileId}`;
const browser = await chromium.connectOverCDP(endpoint);
const page = await browser.contexts()[0].newPage();
await page.goto("http://quotes.toscrape.com/");
const signedIn = await page.locator("a[href='/logout']").isVisible();
if (!signedIn) {
await page.goto("http://quotes.toscrape.com/login");
await page.fill("#username", "demo");
await page.fill("#password", "demo");
await page.click("input[type=submit]");
await page.waitForSelector("a[href='/logout']");
}
const first = await page.locator(".quote .text").first().textContent();
console.log(signedIn ? "Already signed in" : "Signed in", "|", first);
await page.close();
await browser.close();npm install puppeteer-coreGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id node login.mjswss://cloudbrowser.gologin.com/connect?token=…&profile=…import puppeteer from "puppeteer-core";
const token = process.env.GOLOGIN_TOKEN;
const profileId = process.env.GOLOGIN_PROFILE_ID;
const endpoint = `https://cloudbrowser.gologin.com/connect?token=${token}&profile=${profileId}`;
const browser = await puppeteer.connect({ browserWSEndpoint: endpoint });
const page = await browser.newPage();
await page.goto("http://quotes.toscrape.com/");
const signedIn = (await page.$("a[href='/logout']")) !== null;
if (!signedIn) {
await page.goto("http://quotes.toscrape.com/login");
await page.type("#username", "demo");
await page.type("#password", "demo");
await Promise.all([page.waitForNavigation(), page.click("input[type=submit]")]);
await page.waitForSelector("a[href='/logout']");
}
const first = await page.$eval(".quote .text", (el) => el.textContent);
console.log(signedIn ? "Already signed in" : "Signed in", "|", first);
await page.close();
await browser.disconnect();pip install playwrightGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id python login.pywss://cloudbrowser.gologin.com/connect?token=…&profile=…import os
from playwright.sync_api import sync_playwright
token = os.environ["GOLOGIN_TOKEN"]
profile_id = os.environ["GOLOGIN_PROFILE_ID"]
endpoint = f"wss://cloudbrowser.gologin.com/connect?token={token}&profile={profile_id}"
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(endpoint)
page = browser.contexts[0].new_page()
page.goto("http://quotes.toscrape.com/")
signed_in = page.locator("a[href='/logout']").is_visible()
if not signed_in:
page.goto("http://quotes.toscrape.com/login")
page.fill("#username", "demo")
page.fill("#password", "demo")
page.click("input[type=submit]")
page.wait_for_selector("a[href='/logout']")
first = page.locator(".quote .text").first.text_content()
print("Already signed in" if signed_in else "Signed in", "|", first)
page.close()
browser.close()Every plan runs the same browser, with residential IPs included. Plans differ in browser hours and parallel sessions.
$0
No card needed
$4.50/ month
For individual developers
$8/ month
For growing teams
$14/ month
For critical operations
Need more at once? Add parallel sessions to any plan for $2 a month each, as many as you need. Proxy traffic beyond your allowance is $1/GB.
From 4 parallel sessions, with a dedicated account manager, a premium SLA and tailored onboarding.
One account, one proxy network, one ecosystem. Pick the product the job needs.
Web automation, also called browser automation, is software doing the clicks and typing a person would do on a website: signing in, filling forms, reading pages, moving data between tools. Developers write it with libraries such as Playwright, Puppeteer or Selenium, and it runs in a browser on a schedule.
To automate browser tasks in code, Playwright is the common choice today, with Puppeteer for Chrome-only work. The library decides how you write the steps; the browser it drives decides whether the login survives. Gologin Cloud Browser runs Playwright and Puppeteer scripts with one line changed.
Keep the login in a profile, not in a file. Playwright's storage state saves cookies, but a site that sees them arrive from a new IP or device often asks you to verify again. A Gologin profile brings the cookies back with the same device and residential IP, so the next run opens signed in.
The run waits on the code page. Open the session's Live View link, type the code, and the script carries on in the same signed-in profile. See Cloud Browser UI.
Yes, from the scheduler you already use: cron, GitHub Actions or a job queue starts the script, and the script connects to the same profile every time. There is no limit on how long a session runs; a session left idle for 20 minutes closes on its own, so nothing is left running.
Yes. The browser runs in Gologin's cloud with no window on your machine, which is what headless means for your script. To watch a run, open its Live View link.
No. The browser runs in Gologin's cloud and your script only connects to it: no Chrome to install, update or restart, and no memory to size on your server.
Yes. Python Playwright connects with connect_over_cdp, and the Python tab above has the full script. Install it with pip install playwright; no local browser download is needed.
Connect your Playwright, Puppeteer or Python script in one line, and give each account one profile: the same device, the same IP and the same login on every run.
Free to start, no card. Residential IPs included.