Free account
CIPA § 631 Risk

Is PostHog legal in California?

Product Analytics & Session Replay · Updated 2026

PostHog auto-captures clicks and inputs and can record full session replays alongside product analytics. Whether a particular implementation is lawful depends on its configuration, the information transmitted, disclosures, consent, and other facts. A request observed before a recorded consent choice is a technical signal to investigate, not a legal conclusion.

Is this tracker on your site? Find out free in 30 seconds.

Real browser scan, no signup to run it. You see a summary of the findings; the full report with every tracker unlocks with your email.

Why PostHog can trigger CIPA claims

California's Invasion of Privacy Act (CIPA), Penal Code § 631, addresses specified forms of interception and related conduct. Plaintiffs have asserted that some website session-replay, chat, and pixel implementations fall within the statute when they capture interactions without valid consent. Courts assess the statute's application to the particular parties, data flow, timing, and other facts. PostHog's autocapture and session replay record clicks, inputs, and full sessions — actionable under CIPA when enabled before consent.

CIPA § 637.2 authorizes statutory damages of up to $5,000 for a qualifying violation. Plaintiffs may argue that multiple sessions support multiple counts; RegSentry does not determine whether a violation occurred or predict recoverable damages.

Real-world enforcement

The California Attorney General reached a $1.2M CCPA settlement with Sephora over allegations involving sale disclosures and opt-out (Global Privacy Control) signals. That was a CCPA enforcement action, not a session-replay or CIPA case. Separately, private CIPA complaints involving session-replay and chat tools have named businesses in several industries. Those matters arise under different laws and facts and should not be treated as proof that a particular technical finding is unlawful.

How to reduce consent-timing risk involving PostHog

  1. Initialize PostHog with opt_out_capturing_by_default: true, then call posthog.opt_in_capturing() from your CMP consent callback.
  2. Disable session recording until consent (disable_session_recording: true) and enable it only after opt-in.
  3. Mask inputs in session replay (maskAllInputs: true).
  4. Re-scan with 'Verify fix' to confirm no events post to *.posthog.com pre-consent.

Consent-gating snippet

posthog.init('YOUR_KEY', {
  api_host: 'https://us.i.posthog.com',
  opt_out_capturing_by_default: true,   // no capture until opt-in
  disable_session_recording: true,
  session_recording: { maskAllInputs: true },
});
// After the visitor accepts:
cmp.onConsent('analytics', () => { posthog.opt_in_capturing(); posthog.startSessionRecording(); });

PostHog's official privacy/consent documentation →

Check your own site

RegSentry runs a browser against authorized public pages and records when supported PostHog and other third-party requests are observed relative to the test's consent state. Where supported, test-generated form interactions can help show the technical data flow. The scan does not decide whether a provider intercepted a communication or whether applicable law was violated.

Is this tracker on your site? Find out free in 30 seconds.

Real browser scan, no signup to run it. You see a summary of the findings; the full report with every tracker unlocks with your email.

← See all tracker compliance guides