Docs
Data Structure
Property Reference

Property Reference

Property Types

Properties are attributes that help you define the specifics of an Event, a User, or a Group. Mixpanel has many Properties defined in its Data Model.

Property TypeDescription
Event PropertiesEvent Properties describes the events that are tracked within your product.
Super PropertiesSuper Properties are a logical term for global Event Properties that, after registration, are saved into the end user's device, and appended to every event from that device until persistence is cleared. This logical term is mostly applicable to our client-side libraries.
User Profile PropertiesUser Profile Properties describe your users (they typically store current demographical information). User profiles are joined to events based on Distinct ID.
Group Profile PropertiesGroup Profile Properties describe group level information (similar to User Profiles Properties at user level). With Mixpanel’s Group Analytics, multiple users can be grouped and behavioural data analysed at a customised group level (such as company, account). Group profiles are joined to events on your chosen Group Key.
Lookup TablesLookup Tables allow you to dynamically extend additional properties mapped to an existing Event or User Property. For example, if you create a lookup table for "Songs" (that contains additional properties like hash_tags, top_10, all_time_favorite) and map it to an event property song_id; you can use these additional properties when doing filtering or breakdowns for events that has song_id as an event property.
Default PropertiesDefault Properties (for Events and User Profiles) are collected and populated with values automatically in Mixpanel. This can happen upon data ingestion or when using certain Mixpanel client-side SDKs. Typically, they have a dollar sign ($) or “mp_” as prefix to distinguish them from normal properties.
Reserved PropertiesMixpanel reserves certain property names (for Events and User Profiles) for special use cases, and these may or may not be automatically populated with values. The purpose of such Reserved Properties are for processing (ie event time stamping) or for specific system features (eg: cohort exports). Examples: time, $email, $phone, $name, $created.

Default Properties

Mixpanel's Data Ingestion APIs (opens in a new tab) and Client-Side SDKs automatically collect certain properties on every event or user profile. Do also note that some Customer Data Platforms (CDPs) that integrate with Mixpanel may also map their own properties to Mixpanel default properties. This document describes what those properties mean.

Ingestion APIs

To disable capturing of geolocation properties (i.e. City, Region, Country) refer to the respective SDKs or API documentation. For a quick reference, refer to examples on disabling geolocation on client-side SDKs and server-side best practice on tracking geolocation.

Event Properties

Raw NameDisplay NameDescription
$cityCityThe city of the event sender parsed from the IP property or the Latitude and Longitude properties.
$regionRegionThe region (state or province) of the event sender parsed from the IP property or the Latitude and Longitude properties.
mp_country_codeCountryThe country of the event sender parsed from the IP property or the Latitude and Longitude properties. The value is stored as a 2-letter country code in the raw data and parsed into the country name in the UI.
$mp_api_endpointAPI EndpointMixpanel property to record the API endpoint the data was sent to:
api.mixpanel.com - default ingestion
api-eu.mixpanel.com - EU data ingestion
api-js.mixpanel.com - Javascript SDK
$importImportInternal Mixpanel property set to true to indicate that events were sent through /import API (opens in a new tab).
$mp_api_timestamp_msAPI TimestampUTC timestamp in milliseconds when the event was received by our API.
mp_processing_time_msTime Processed (UTC)UTC timestamp in milliseconds when the event was processed by Mixpanel servers.

User Properties

Do note that Mixpanel's default user properties are only updated when you send or update at least one property yourself (via $set (opens in a new tab) or $set_once (opens in a new tab) operations). Please, refer to this article to understand how to send or update profile properties.

Raw NameDisplay NameDescription
$cityCityThe city of the user parsed from the IP property or the Latitude and Longitude properties.
$regionRegionThe region (state or province) of the user parsed from the IP property or the Latitude and Longitude properties.
$country_codeCountry CodeThe country of the user parsed from the IP property or the Latitude and Longitude properties. The value is stored as a 2-letter country code in the raw data and parsed into the country name in the UI.
$geo_sourceGeo SourceSet to "reverse_geocoding" if profile geolocation properties (Country Code, Region, and City) were determined through Latitude and Longitude.
$timezoneTimezoneTimezone of the user parsed from the IP property or the Latitude and Longitude properties.
$last_seenUpdated atThe last time a user profile property was set or updated (this should not be set manually). Passing $ignore_time as true, typically for server-side updates, will skip updating the $last_seen property. See example here.

Client-side SDKs

Note that the following SDKs wrap around our other SDKs; and as such, would also inherit the appropriate default properties from these wrapped SDKs indicated in the tables below:

  • React Native wraps around Android and Swift SDK; mp_lib will be set to react-native with $lib_version set as React Native's library version.
  • Flutter wraps around Javscript, Android, and Swift SDK; mp_lib will be set to flutter with $lib_version set as the Flutter's library version.

Event Properties

Raw NameDisplay NameDescription
Scroll right to see more columns -->
JavascriptAndroidiOS Objective-C / SwiftUnity
$device_idDevice IDAutogenerated ID that is local to the device. Calling reset() regenerates this value. More details here.
$user_idUser IDThe identified ID of the user. Calling identify() sets this. More details here.
$insert_idInsert IDA unique identifier for the event, used to deduplicate events that are accidentally sent multiple times. More details here (opens in a new tab).
mp_libMixpanel LibraryThe Mixpanel library that sent the event.webandroidiphone / swiftunity
$lib_versionLibrary VersionMixpanel library version.
mp_sent_by_lib_versionSent By Library VersionMixpanel library version used to send data (not necessarily the same as the version which enqueued the data).
$osOperating SystemOS of the event sender.
$os_versionOS VersionThe current version of operating system on the device.
$browserBrowserName of the browser.
$browser_versionBrowser VersionVersion of the browser.
$app_build_numberApp Build NumberGeneral build of the app.
$app_version_stringApp VersionCurrent app version.
$deviceDeviceName of the event sender’s device, if they’re on mobile web.
$screen_heightScreen HeightThe height of the device screen in pixels / points (iOS).
$screen_widthScreen WidthThe width of the device screen in pixels / points (iOS).
$screen_dpiScreen DPIPixel density of the device screen.
$current_urlCurrent URLThe URL of the page on which the event was tracked.
$initial_referrerInitial ReferrerReferring URL when the user first arrived on your site. Defaults to "$direct" if the user is not referred.
$initial_referring_domainInitial Referring DomainReferring domain at first arrival. Defaults to "$direct" if the user is not referred.
$referrerReferrerReferring URL including your own domain. Might not be present if document.referrer does not return a value. As opposed to $initial_referrer and $initial_referring_domain, this property will be omitted if the user lands directly or the referring website adds the rel="noreferrer" parameter.
$referring_domainReferring DomainReferring domain including your own domain. Might not be present if document.referrer does not return a value. As opposed to $initial_referrer and $initial_referring_domain, this property will be omitted if the user lands directly or the referring website adds the rel="noreferrer" parameter.
$search_engineSearch EngineThe search engine that the customer used when they arrived at your domain.
mp_keywordSearch KeywordSearch keywords detected on the referrer from a search engine to your domain. This property is only collected when search keywords are included in a URL.
utm_source, utm_medium, etc.UTM ParametersUTM tags derived from the URL a customer clicked to arrive at your domain. Each UTM will be collected under its own property. More details here.
$manufacturerManufacturerDevice manufacturer.
$brandBrandDevice brand.
$modelModelThe model of the device.
$watch_modelWatch ModelThe model of the iOS watch.
$carrierCarrierWireless carrier of the device owner.
$radioRadioCurrent cellular network communication standard (opens in a new tab)(opens in a new tab) (3G, 4G, LTE, etc).
$wifiWifiSet to true if the user’s device has an active, available Wifi connection, false if not.
$bluetooth_enabledBluetoothSet to true if Bluetooth is enabled, false if not.
$bluetooth_versionBluetooth VersionSet to "none", "ble", or "classic".
$has_nfcHas NFCSet to true if Near Field Communication is being used, false if not.
$has_telephoneHas TelephoneSet to true if this device has telephone functionality, false if not.
$google_play_servicesGoogle Play ServicesVerifies that Google Play services is installed and enabled on this device, and that the version installed on this device is no older than the one required by this client.
$durationDurationA property that is appended to an event to capture the elapsed time (in seconds) between a time_event and a track call. See time_event (opens in a new tab) in Javascript SDK for example.

User Properties

Do note that Mixpanel's default user properties are only updated when you send or update at least one property yourself (via $set (opens in a new tab) or $set_once (opens in a new tab) operations). Please, refer to this article to understand how to send or update profile properties.

Raw NameDisplay NameDescription
Scroll right to see more columns -->
JavascriptAndroidiOS Objective-C / SwiftUnity
$lib_versionLibrary VersionLast used Mixpanel library version (also applies to React Native and Flutter wrapper SDKs).
$android_lib_versionAndroid Lib VersionLast used Mixpanel Android / Unity library version.
$ios_lib_versioniOS Lib VersionLast used Mixpanel iOS / Unity library version.
$swift_lib_versionSwift Lib VersionLast used Mixpanel Swift library version.
$osOperating SystemLast OS of the event sender.
$android_osAndroid OSSet when Android operating system was used.
$android_os_versionAndroid OS VersionLast version of Android on the device.
$ios_versioniOS VersionLast version of iOS on the device.
$browserBrowserName of the browser.
$browser_versionBrowser VersionVersion of the browser.
$android_app_versionAndroid App VersionCurrent Android app version (versionName (opens in a new tab)).
$android_app_version_codeAndroid App Version CodeCurrent Android app version code (versionCode (opens in a new tab)).
$ios_app_releaseiOS App ReleaseThe release or version number of the iOS app (CFBundleShortVersionString (opens in a new tab)).
$ios_app_versioniOS App VersionThe version of the build that identifies an iteration of the iOS app (CFBundleVersion (opens in a new tab)).
$initial_referrerInitial ReferrerReferring URL when the user first arrived on your site. Defaults to "$direct" if the user is not referred.
$initial_referring_domainInitial Referring DomainReferring domain at first arrival. Defaults to "$direct" if the user is not referred.
initial_utm_source, initial_utm_medium, etc.Initial UTM ParametersUTM tags seen for the first time from the URL a customer clicked to arrive at your domain. Each UTM will be collected under its own property. More details here.
$android_manufacturerAndroid ManufacturerAndroid device manufacturer.
$android_brandAndroid BrandAndroid device brand.
$android_modelAndroid ModelThe model of the Anroid device.
$ios_device_modeliOS Device ModelThe model of the iOS device.

Supported Data Types

Mixpanel supports five data types for properties: String, Numeric, Boolean, Date and List. By choosing the most suitable data type for your properties, you'd be able to apply a set of operators that are most relevant to your properties in Mixpanel reports, and this will give you richer insights about your data.

String

  • Alphanumeric value e.g. Plan Type = "Free", Artist Name = "Bruno Mars"
  • String properties have a character limit of 255 bytes.
  • Mixpanel will treat any property value that doesn’t match any other data type as a String.

Numeric

  • Numeric (integer or decimal) value e.g. Cost = 15.00, Quantity = 5
  • You can apply operators such as sum, median and percentile on numeric properties.

Boolean

  • Mixpanel treats properties as boolean if the value is either the JSON constant true or false e.g. Favorited = true, Bookmarked = false.
  • On Mixpanel, you can typecast any non-boolean property to boolean,
  • "false", 0, null, undefined, and empty string will be typecasted to boolean false
  • "true" and any set value that is not 0 or empty string will be typecasted to boolean true

Date

  • An ISO formatted date YYYY-MM-DDTHH:MM:SS in UTC e.g. Last Purchase = "2022-10-30T13:30:25", Last Login = "2022-10-29". Note that all timestamps need to be sent in UTC timezone in an ISO format.
  • Mixpanel treats unix timestamps as Numeric property, however, you can typecast it to Date data type.

List

  • A list of values as a JSON array e.g Favourite Genres = ["Folk","Alternative"] or Favourite Numbers = [1,5,10.0]
  • Limits of a List property: Event Property = 8KB, User Profile Property = 256KB
  • Each item in a list would be futher limited by their data type's limits; example: a list of strings would be limited by 255 bytes per string. Also refer to List of Objects covered below.
  • Mixpanel lists are not ordered (i.e. position of values in a list are not significant in Mixpanel reports) and are useful for grouping or analysing similar values across events. Read more details on List Property Support in reports.

Object and List of Objects Data Types

Mixpanel also supports object and list of objects data types in a limited capacity. These are typically for very specific use cases such as in e-commerce (eg Cart Items, Search Filters). It is highly encouraged that you use the five primary data types as they are fully supported in the Mixpanel UI.

Object

  • Arbitrarily-nested groups of JSON key-value pairs e.g. Experiments = {"Exp Onboarding":"Quick","Exp Checkout":"Without Coupon"}
  • Limits of a Object property: Event Property = 8KB, User Profile Property = 256KB, max 255 keys per nested object with a max nesting depth of 3
  • Mainly supported in core reports (i.e. Insights, Funnels, Flows, Retention, Users / Cohorts, Events) as filters and breakdowns. Property Names (ie keys) within an object are not supported in Lexicon.

List of Objects

  • A JSON array of 1 level JSON objects with each object having similar sets of key-value pairs e.g. Cart = [{"Brand":"Puma","Category":"Jacket","Price":30}, {"Brand":"Adidas","Category":"Hats","Price":15}]
  • Limits of a List of Objects: Event Property = 8KB, User Profile Property = 256KB, max 255 keys and no nesting
  • By default, only the first 5 objects within the list will be parsed in Mixpanel UI, more details here.
  • Mainly supported in core reports (i.e. Insights, Funnels, Flows, Retention, Users / Cohorts, Events) as filters and breakdowns. Property Names (ie keys) within an object are not supported in Lexicon.

Was this page useful?