Getting Started
The Mixpanel Python library is designed to be used for scripting, or in circumstances when a user isn’t directly interacting with your application on the web or a mobile device. The Full API Reference, Library Source Code, and an Example Script is documented in our GitHub repo.Installing the Library
You can get the library using pip.Library Configuration
The Mixpanel instance can be customized with different configurations using a customconsumer. Learn more about the consumer and the available parameters here.
Example Usage
Sending Events
Usetrack() to send an event by providing the distinct_id, event name, and any event properties. This will trigger a request to the /track API endpoint to ingest the event into your project.
The /track endpoint will only validate events with timestamps within the last 5 days of the request. Events with timestamps older than 5 days will not be ingested. See below on best practices for historical imports.
$city, $region, mp_country_code), you will need to set the location property values in the event. Learn more about best practices for geolocation.
Importing Historical Events
Thetrack() function is designed for real-time tracking in a server-side environment and will trigger request to the /track API endpoint, which will validate for events with a time stamp that is within the last 5 days of the request. Events older than 5 days will not be ingested.
Use the import_data() function to import events that occurred more than 5 days in the past. The import_data() function is based on the /import API endpoint.
Example Usage
Managing User Identity
Since the Python SDK is a server-side library, IDs are not generated by the SDK. Instead, you will need to generate and manage the distinct_id yourself and include it in your events and profile data. Learn more about server-side identity management.Storing User Profiles
Create user profiles by setting profile properties to describe them. Example profile properties include “name”, “email”, “company”, and any other demographic details about the user. The Python SDK provides a few functions for setting profile properties, which will trigger requests to the /engage API endpoint. To track any geolocation data ($city, $region, $country_code) for profile updates, you will need to set the location property values. Learn more about best practices for geolocation.
Setting Profile Properties
Set profile properties on a user profile by calling thepeople_set() method.
If a profile property already exists, it will be overwritten with the latest value provided in the method. If a profile property does not exist, it will be added to the profile.
Example Usage
Other Types of Profile Updates
There are a few other methods for setting profile properties. See a complete reference of the available methods here. A few commonly used people methods are highlighted below:- people_set_once()
- people_append()
- people_union()
- people_increment()
The
people_set_once() method set profile properties only if they do not exist yet. If it is setting a profile property that already exists, it will be ignored.Use this method if you want to set profile properties without the risk of overwriting existing data.Example UsageGroup Analytics
Read more about Group Analytics before proceeding. You will need to have the group key defined in your project settings first.
group_key and group_id.
group_keyis the event property that connects event data to a group. (e.g.company)group_idis the identifier for a specific group. (e.g.mixpanel,company_a,company_b, etc.)
Sending Group Identifiers With Events
All events must have the group key as an event property in order to be attributed to a group. Without the group key, an event cannot be attributed to a group. To send group identifiers with your events, set thegroup_key as an event property with the group_id as the value.
Example Usage
group_key value as a list of multiple group_id values.
Example Usage
Adding Group Identifiers to User Profiles
To connect group information to a user profile, include thegroup_key and group_id as a user profile property using the people_set() call.
Example Usage
Setting Group Profile Properties
Create a group profile by setting group properties, similar to a user profile. For example, you may want to describe a company group with properties such as “ARR”, “employee_count”, and “subscription”. To set group profile properties, use thegroup_set() function, which will trigger a request to the /groups API endpoint.
Example Usage
Python
Other Group Profile Methods
See all of the methods under the Group class here. A few commonly used group methods are highlighted below:- group_set_once()
- group_unset()
- group_union()
- group_remove()
The
group_set_once() method set group profile properties only if they do not exist yet. If it is setting a profile property that already exists, it will be ignored.Use this method if you want to set group profile properties without the risk of overwriting existing data.Example UsagePrivacy-Friendly Tracking
You have control over the data you send to Mixpanel. The Python SDK have a few configurations to help you protect user data. Since this is a server-side tracking library where you have control of the servers, your server is responsible for determining whether to send data about a particular user or not.EU Data Residency
Route data to Mixpanel’s EU servers by using a customConsumer with an api_host set to the EU domain.
Example Usage
India Data Residency
Route data to Mixpanel’s India servers by using a customConsumer with an api_host set to the India domain.
Example Usage
Geolocation
The Python SDK sets the request IP address to0 for events and profiles, meaning by default you are not tracking geolocation properties, unless explicitly included in the event or profile update.