Tech Stack Guides

How to Tell If a Website Uses Mixpanel

Mixpanel is a product-analytics platform for event tracking. Learn to detect it via the cdn.mxpnl.com script, the global mixpanel object, api.mixpanel.com/track beacons and mp_ cookies.

StackOptic Research Team27 May 20267 min read
Detecting Mixpanel product analytics through its CDN script and tracking API

Mixpanel is one of the most widely deployed product-analytics platforms, used by SaaS and app teams to track in-product events, funnels and retention. If you want to know whether a site uses it, the fastest check is to look for a script loaded from cdn.mxpnl.com or to type mixpanel into the browser console — both confirm the library in seconds. Below are all the dependable signals, the mechanics behind them, and what a Mixpanel install tells you about the company.

What is Mixpanel?

Mixpanel is an event-based analytics tool designed to answer product questions: which features people use, where they drop out of a funnel, and how cohorts retain over time. Unlike a marketing tag that fires a single page view, Mixpanel is wired into specific interactions — mixpanel.track('Signed Up'), mixpanel.track('Upgraded Plan'), mixpanel.track('Invited Teammate') — so it is most common on web applications, dashboards and the marketing sites that sit in front of SaaS products.

Because it is a developer-implemented analytics layer rather than a copy-paste marketing pixel, the presence of Mixpanel tends to indicate a more technical, product-led organisation with a deliberate measurement practice. It competes most directly with Amplitude and Heap, and is frequently deployed alongside a marketing analytics tool like Google Analytics rather than instead of one — the two answer different questions.

How Mixpanel loads and sends data

A Mixpanel install begins with a bootstrap snippet that creates a mixpanel stub immediately (so calls made before the library finishes loading are queued), then asynchronously fetches the real library from cdn.mxpnl.com. The snippet calls mixpanel.init('<project-token>') with a 32-character hex token that identifies the project.

Once loaded, every mixpanel.track(...) call sends an event to Mixpanel's ingestion API — historically api.mixpanel.com/track, increasingly api-js.mixpanel.com — as a request carrying a data= parameter that contains base64-encoded JSON describing the event and its properties. Identity is stored in a cookie named mp_<project-token>_mixpanel and mirrored in localStorage under mp_-prefixed keys, holding the distinct_id and a queue of unsent events. Knowing this, the detection signals follow naturally.

How to tell if a website uses Mixpanel

1. View the page source. Search the HTML for mixpanel or mxpnl. The standard snippet is a minified bootstrap that injects the library from cdn.mxpnl.com. You will usually see the project token passed to mixpanel.init(...).

2. Check the Network tab. Reload with developer tools open and filter for mxpnl or mixpanel. Two kinds of request appear: the library download from cdn.mxpnl.com/libs/mixpanel-2-latest.min.js, and the tracking beacons to api.mixpanel.com/track (or api-js.mixpanel.com). The tracking requests carry the base64 data= payload.

3. Use the console. Type mixpanel and press Enter. A Mixpanel-enabled page returns an object with methods like track, identify, people, register and get_distinct_id. You can even run mixpanel.get_distinct_id() to see the visitor identifier, which is conclusive.

4. Inspect cookies and storage. Look for a cookie named mp_<project-token>_mixpanel and localStorage keys beginning mp_. These persist the distinct_id and a queue of unsent events, so they are a reliable fallback if you miss the network beacon.

What the Mixpanel signals look like

In the Network tab a tracked event looks like:

POST https://api-js.mixpanel.com/track/?verbose=1&ip=1
  data: (base64) {"event":"Page View","properties":{"token":"a1b2...","distinct_id":"190f...","time":...}}

And in storage you will find:

Cookie:  mp_a1b2c3d4e5f6_mixpanel = {"distinct_id":"190f...","$device_id":"..."}

The combination of the cdn.mxpnl.com library, the mixpanel global and the api.mixpanel.com/track beacon is unambiguous.

Mixpanel versus similar tools — avoiding false positives

Mixpanel is often loaded through a tag manager or a customer-data platform such as Segment, in which case the cdn.mxpnl.com request may appear only after those scripts execute — so check the live page, not just the static source. Some teams also proxy Mixpanel through their own domain to dodge ad blockers, which hides the mxpnl hostname; in that case the mixpanel global object and the mp_ storage keys remain your best evidence. Most importantly, do not confuse Mixpanel with the other event-based product-analytics tools: Mixpanel uses cdn.mxpnl.com and a mixpanel global, Amplitude uses cdn.amplitude.com and an amplitude global, and Heap uses cdn.heapanalytics.com and a heap global. The job they do is similar, but the fingerprints are distinct.

Why it is worth knowing a site uses Mixpanel

For competitive and sales research, Mixpanel is a strong signal that you are looking at a genuine software product with a team that instruments user behaviour — exactly the profile that buys developer tools, data infrastructure, experimentation platforms and analytics consulting. If your product targets product managers or growth teams, a Mixpanel install is a green flag. For product and growth teams, spotting a competitor's analytics stack hints at how sophisticated their measurement is and which behaviours they care about. For investors and analysts doing diligence, the analytics layer is part of understanding how a company makes data-driven decisions. And during a re-platforming or acquisition review, identifying the analytics layer is essential to mapping the data architecture and planning continuity, because event taxonomies are hard to migrate.

How reliable is each Mixpanel signal?

Rank the signals before you draw conclusions. The POST to api.mixpanel.com/track (or api-js.mixpanel.com) is definitive — it is an event actually being recorded, so nothing else explains it. The mp_<token>_mixpanel cookie and the mp_-prefixed localStorage are close behind, because that naming is specific to Mixpanel and persists across the session. The mixpanel global object is strong, especially if mixpanel.get_distinct_id() returns a value, though confirm it is the real SDK and not a leftover stub. The weakest standalone signal is a static cdn.mxpnl.com script reference, since a library can load without mixpanel.init() ever being called with a live token. Treat the network beacon or the cookie as conclusive; treat the script tag alone as a lead to verify.

What a Mixpanel install reveals about a company

A Mixpanel deployment tells you more than "they have analytics". Because Mixpanel is implemented by engineers wiring up specific events, its presence reliably marks a genuine software product with a measurement culture — not a brochure site. The richness of the event stream is itself a signal: a site that fires a handful of well-named events (Signed Up, Activated, Upgraded) on key flows is run by a team with a defined activation and conversion model, the hallmark of a product-led growth motion. That profile — product managers and growth leads as buyers — is exactly who purchases experimentation tools, data warehouses, onboarding software and analytics consulting.

The project token visible in mixpanel.init() is also useful: a single token across the marketing site and app suggests a unified analytics environment, whereas separate tokens hint at distinct teams or properties. And because Mixpanel is frequently fed by a CDP such as Segment, finding it should prompt you to check for window.analytics — if both are present, you are looking at a mature data pipeline where Mixpanel is one of several destinations, which materially raises the account's sophistication and budget profile.

A quick Mixpanel detection checklist

  • Filter the Network tab for mxpnl or mixpanel; a POST to api.mixpanel.com/track is conclusive.
  • Search the source for cdn.mxpnl.com and the mixpanel.init('<token>') call.
  • Type mixpanel in the console; run mixpanel.get_distinct_id() to confirm.
  • Check cookies for mp_<token>_mixpanel and localStorage for mp_ keys.
  • Check whether Segment (window.analytics) is also present and feeding Mixpanel.
  • Don't rely on the script tag alone — confirm with the beacon or the cookie.

Mixpanel in a modern measurement stack

Mixpanel almost never operates alone, and understanding the company it keeps sharpens your read of a site. Most product companies run a marketing analytics tool (typically Google Analytics 4) for acquisition and channel reporting and a product analytics tool like Mixpanel for in-app behaviour — the two answer different questions and coexist deliberately. So finding Mixpanel does not mean GA4 is absent; check for both, because their combination tells you the team separates marketing measurement from product measurement, a sign of analytical maturity.

Increasingly, Mixpanel is also fed from a warehouse-first setup, where events land in a data warehouse (Snowflake, BigQuery) and are streamed into Mixpanel via a CDP or reverse-ETL tool rather than from the browser. In those cases the browser-side mixpanel calls may be lighter or absent, and the strongest signal becomes server-side — harder to see from the page alone. When you do see a rich client-side Mixpanel implementation, it usually means the product team owns instrumentation directly and iterates quickly.

For an auditor, the things worth recording are: the project token, whether Segment or another CDP is present, whether GA4 coexists, and how many distinct events you can observe firing during a normal session. Those four facts let you reconstruct a fairly complete picture of how the company measures growth — intelligence that is valuable whether you are selling to them, competing with them, or planning to integrate with them.

Detecting Mixpanel at scale

To check a single page, the console trick takes seconds. To audit a whole list of domains — say, to build a list of SaaS companies that have invested in product analytics — automate it. StackOptic detects Mixpanel and thousands of other tools from a real browser, catching tag-manager-injected and CDP-loaded installs that static scanners miss. See also our overview of how to find out what analytics a website uses and the Mixpanel profile for deeper background.

Frequently asked questions

What domain does Mixpanel load from?

Mixpanel's JavaScript library is served from cdn.mxpnl.com, typically as mixpanel-2-latest.min.js. Seeing a script tag or network request to cdn.mxpnl.com is the quickest way to confirm Mixpanel is present on a page.

How can I confirm Mixpanel in the browser console?

Open developer tools, go to the Console tab and type mixpanel then press Enter. If the site uses it you will get back an object exposing methods such as track, identify, people and get_distinct_id. That global object is created by the Mixpanel snippet and is a reliable confirmation.

Where does Mixpanel send its data?

Tracked events are posted to api.mixpanel.com/track (and increasingly api-js.mixpanel.com), while profile updates go to /engage. In the Network tab you will see these requests carrying a 'data' parameter containing base64-encoded JSON, fired as the user interacts with the page.

What cookies and storage does Mixpanel use?

Mixpanel stores its identity in a cookie named mp_<project-token>_mixpanel and frequently mirrors state in localStorage keys prefixed mp_. These hold the distinct_id and a small queue of pending events, so checking storage is a good secondary signal when the network request is missed.

What does it mean if a site uses Mixpanel?

Mixpanel is a product-analytics platform built for event and funnel analysis inside applications, not a marketing pixel. Finding it usually indicates a SaaS product, web app or product-led company that measures feature usage and retention, which is useful context for sales and competitive research.

Analyse any website with StackOptic

Get the full technology stack, performance, security and SEO report in seconds — free.

Analyse a website

Related articles