$ignore to drop unwanted traffic. Anytime our ingestion API detects the $ignore property on an event, it drops that event from ingestion.
Identify AI Agent and Bot Traffic
Mixpanel’s ingestion APIs classify the user agent of each event and set the following default event properties:$mp_actor_type(Actor Type):agentfor requests from an LLM acting on behalf of a human user (e.g. ChatGPT or Claude Code),botfor generic automated traffic such as crawlers and search indexers, andnonewhen neither applies.$mp_actor_name(Actor Name): the classified identity behind anagentorbotactor type, such asGPTBot,ClaudeBot, orMistralAI-User. Only present when the actor type isagentorbot.$mp_raw_user_agent(Raw User Agent): the raw user agent associated with the request.
agent or bot. Events tracked before classification was available have no Actor Type and appear as (not set), so excluding agent and bot (rather than filtering on none) keeps them in your reports.
If you don’t send the end user’s user agent as $mp_raw_user_agent or $mp_user_agent, classification uses the user agent of the request that reached Mixpanel. With server-side tracking, that is your server’s HTTP library, so classification can be inaccurate. If you track server-side, forward your end user’s raw user agent as $mp_raw_user_agent or $mp_user_agent. See Tracking Browser, Device, and OS.
Exclude Bot Traffic From Javascript SDK
By default, the following bots are filtered out by the Mixpanel JavaScript library:- Yahoo! Slurp
- bingbot/2.0
- Googlebot/2.1
- Baiduspider/2.0
- YandexBot/3.0
- Find the user agent information of the individual accessing the site.
- Look for the word “bot” anywhere in the user agent information.
- If you find “bot,” set the
$ignoreproperty totrue.
$ignore must have a string or at least be set to true, or else the event will fire. For example, if I have '$ignore': '', the event will still fire since it’s an empty string. '$ignore': false will also fire the event.
Remove Bot Traffic Historically
Events in Mixpanel are immutable, which means they cannot be removed. However, they can be filtered out. If there are some events that have been sent in with bots and you can identify those events based on some property value (eg: the device type or location), we recommend creating a custom event that applies that filter. You can also hide the original event. That way, when you use the custom event, all bot traffic will automatically be filtered out.Block Internal or IP-Based Traffic
The same$ignore approach used above for bot traffic can also be applied to filter out internal traffic. (ex: events generated by your own team during testing, QA, or traffic originating from specific IP addresses you own).
Filtering by IP Address
If you want to exclude traffic from known IP addresses (such as your office network or a VPN), you can resolve the user’s IP and conditionally set$ignore. Since the browser doesn’t expose the client IP directly, you’ll need a lightweight server-side endpoint or third-party service to retrieve it:
Javascript
Filtering by Internal Email Domain
If your team members are identified in Mixpanel, you can also suppress events based on an internal email domain or user property:Javascript
Server-Side Filtering
If you are sending events from a server-side method, you can apply the same logic before the event is sent. Attach$ignore: true as an event property whenever the request originates from an internal IP range or an internal service account:
Python
$ignore must be set to true (or a non-empty string) to suppress the event. An empty string or false will not prevent the event from being recorded. If internal traffic has already been recorded, you can retroactively filter it out using a custom event as described in Remove Bot Traffic Historically.