Orbe Docs Tiếng Việt Get started

Running accounts at scale

Orbe gives each account its own real-looking machine, its own IP and human input. Running many at once is mostly about respecting those boundaries — not about pushing more actions through faster. This guide is how to do it safely with what ships today.

The honest frame: the proxy handles the IP, the browser handles the machine fingerprint — how you nurture the accounts is still your part. Nothing here promises an account will survive; it lowers the avoidable risks.

One profile, one machine

Each profile is a separate browser with its own fingerprint, cookies and proxy. When you automate, you open one session per profile — see the SDK reference. Two consequences shape how many you run at once:

Each browser is real, so each costs RAM

An open profile is a full Chromium instance. The ceiling on "how many at once" is your machine's memory, not a number Orbe sets. Run in batches your RAM can hold, and open the next batch as the last one closes.

Behaviour is per-profile

Each profile drives with its own seeded "person" — typing rhythm, mouse paths, pauses. You do not configure this; it is stable per profile and different across profiles, so a batch does not move in lockstep.

Orbe doesn't limit the number of profiles. How many you open at once is limited by your machine.

Let discipline pace you

Every session runs through Orbe's discipline layer (always on — see Safe by default). At scale, the right mindset is to work with it, not around it:

  • Name the platform. Pass the platform hint (or let it be inferred from the URL) so the right checkpoint phrases and usual-hours warning apply. Different platforms tolerate different rhythms.
  • Mind usual hours. Orbe never stops a run because of the time, but while pacing is on it warns once per session when a profile works outside its usual hours in the proxy's timezone — accounts active at unusual hours are more likely to be reviewed. Spread a large batch across the day instead of firing everything at one hour.
  • Let a block stop you. A checkpoint or a proxy problem raises instead of silently continuing. That is the feature — a stopped run is cheaper than a locked account.
Discipline paces a single profile against its own limits. Pacing across many profiles — how many you touch per minute in total — is still your loop's job. Do not open hundreds in a tight loop; stagger starts.

Structure your run

The Python SDK has no built-in scheduler — you write the loop, which keeps you in full control. A complete, runnable version is on this site as examples/fleet_multi_profile.py (it runs a batch with concurrent.futures, each profile keeping its own behaviour). The shape that holds up: iterate your profiles, open one session at a time (or a small batch), do the work, catch blocks, and move on.

import orbe, time

PROFILES = ["acct-01", "acct-02", "acct-03"]   # your ids

for pid in PROFILES:
    try:
        with orbe.Trinh(pid, platform="example") as t:
            t.goto("https://example.com/home")
            if not t.wait_for("Home", timeout=20):
                t.screenshot(f"{pid}-not-loaded.png")
                continue
            # ... your per-account work, spaced with t.wait(...) ...
    except orbe.Blocked as e:
        log(f"{pid} blocked: {e}")   # stop this one, keep the run going
    time.sleep(stagger_seconds())    # don't start the next one instantly
# `log` and `stagger_seconds` are your own helpers; see examples/fleet_multi_profile.py
# for a complete, runnable version.
  • One session per profile, inside with so it always closes.
  • Confirm the page loaded with wait_for before acting; screenshot and skip if it did not.
  • Catch blocks per profile so one stopped account does not end the whole run.
  • Stagger starts — a short, varied gap between profiles beats a synchronized burst.

Prefer to drive from an AI assistant? The MCP server holds several profiles at once and the same discipline applies to every tool.

When a profile is blocked

Blocks are signals, not errors to retry through. Handle each by its condition (full list in Handling a block):

ConditionWhat it means at scaleDo
Checkpoint / captchaThe platform is challenging this account.Stop it. Review by hand. Never automate through it, and do not throw more accounts at the same action.
Proxy problemA dead or wrong-country IP, or incomplete proxy settings.Fix the proxy before opening — a run on the wrong IP can undo weeks of nurturing.
Send blocks somewhere you will see them (your log, an alert). A batch of ten checkpoints in an hour is telling you something about the accounts or the proxies — the point of stopping is to let you read it.

Proxies at scale

  • One IP per profile. Sharing an IP across accounts links them — the thing separate machines are meant to prevent.
  • Residential or mobile (4G) proxies are recommended for account work; datacenter IPs are easier to flag.
  • WebRTC is forced through the proxy, so a page cannot read the real IP behind it — one less leak to manage per profile.
  • Match the country to the account. Discipline checks the proxy is alive and, where it can, that the region is right before opening.

Do & don't

Do

  • Let each profile keep its own behaviour and fingerprint — don't try to make them uniform.
  • Space actions with wait; read the page between steps.
  • Warm new accounts slowly before heavier activity.
  • Log blocks and screenshots so you can spot patterns early.

Don't

  • Run the exact same script, at the exact same second, across every profile.
  • Turn off pacing to push more through — machine-speed activity is exactly what platforms flag.
  • Automate past a checkpoint or try to solve a captcha.
  • Attach Playwright / Puppeteer / Selenium to an Orbe profile — it adds the CDP trace Orbe removes.