RedditapisRedditapis

Give Each Reddit Account Its Own Stable Browser Fingerprint

Every browser-method call gets a per-account User-Agent, screen, platform and canvas signature. Pin it with your own seed so one account keeps one machine across re-logins.

Calls that run through a real browser (method=browser on login, plus the comment and mod-mail endpoints) now present a per-account machine instead of one shared identity.

Before this, every browser context we opened sent the same User-Agent, the same 1440x900 screen and the same canvas signature. Every customer of ours looked like the same computer to Reddit, which correlates accounts that have nothing to do with each other. Nobody asked for that and nobody could see it.

What you get without doing anything

The fingerprint is derived from the session on the call, so:

  • One account, one machine, forever. The same account gets the same User-Agent, screen, platform and canvas signature on every call.
  • Different accounts, different machines. Platform, viewport, deviceScaleFactor, WebGL renderer and canvas noise all vary.
  • Nothing contradicts anything. The UA, navigator.platform, the Sec-CH-UA-Platform hint and the GPU always describe the same computer. A Windows UA never reports an Apple GPU.

A fingerprint that rotates is a worse signal than a shared one, because real people do not change operating system between two comments. That is why this is stable by design rather than random per request.

Taking control of it

Send an optional fingerprint object on any browser-method call. Every field is optional, and anything you leave out stays derived.

FieldTypeWhat it does
seedstring, max 200The machine is derived from your string instead of from the session. You choose what an identity means: per account, per persona, per customer of yours.
platformwin | mac | linuxPin the operating system instead of deriving it.
viewport{ width, height, deviceScaleFactor? }Pin the screen. Width 800-3840, height 600-2160, scale 1-3.
{
  "username": "...",
  "password": "...",
  "method": "browser",
  "proxy": "http://user:pass@de-proxy:8080",
  "timezone": "Europe/Berlin",
  "locale": "de-DE",
  "fingerprint": {
    "seed": "persona-7",
    "platform": "win"
  }
}

Why you probably want seed

The default seed comes from the session cookie, and that cookie changes every time you log the account in again. For a warmup account, the day it logs back in is exactly the wrong day to appear on new hardware.

A seed of your own is stable across re-logins. If you are running accounts for real, set it to something durable, your own account id works well, and never change it for that account.

What comes back

Every browser-method response carries the resolved fingerprint, so you can log it, reproduce it, and check for yourself that one account keeps one machine rather than taking our word for it:

{
  "fingerprint": {
    "platform": "win",
    "viewport": { "width": 1920, "height": 1080 },
    "device_scale_factor": 1,
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
    "seed_ref": "9f2c14ab77e0",
    "seed_source": "caller",
    "stable": true
  }
}

seed_ref is a truncated hash. Your seed and your session are never returned, logged or stored.

Things worth knowing

Match the fingerprint to the proxy. A German proxy with platform pinned to something odd, or with no timezone and locale, is a mismatch. The geo fields and the fingerprint are the same decision seen from two angles; see Proxies.

The Chromium version is not yours to set. The User-Agent always carries the major version of the browser we actually run. Claiming a different one is a contradiction any page can catch, and it would make your account easier to spot, not harder.

An invalid fingerprint is a 400, with code: "INVALID_FINGERPRINT" and the offending field named. It is never a 500.

What this is not

This is not an anti-detect browser and it does not claim to defeat a determined fingerprinter. It removes the correlation between our customers and gives each of your accounts a stable, consistent, distinct machine.

If you are doing serious account warmup, that is a floor and not a ceiling: drive your own browser for the highest-risk actions, and use your own proxy per account either way.

Independent third-party API for developers and researchers. Not affiliated with, endorsed by, or sponsored by Reddit, Inc.

On this page