Properties: Supported Data Types

Mixpanel supports six data types for properties: string, numeric, boolean, date, list and object.

The images represent how each data type will appear in the properties drop-down in Mixpanel reports so that you can distinguish the type of property you select:


2016-06-16_00_17_47.976485-property_string.png  String

Mixpanel will treat any value sent that doesn’t match any other data type as a string. In reports, Properties sent as strings will allow Events to be broken out by each unique value.


mixpanel.track('Account Created', {'Account Type': 'Paid'});

String properties have a field size character limit of 255 bytes. 

2016-06-16_00_17_36.782606-property_number.png  Numeric

Mixpanel treats any value that is a number (whether integer or decimal) as a numeric Property. Reports can display numeric Properties as histograms.


mixpanel.track('Application Loaded', {'Load Time (seconds)': 1.231});

2016-06-16_00_16_36.845674-property_bou.png  Boolean

Mixpanel treats Properties as booleans if the value is either the JSON constant true or false.


mixpanel.track('Played Video', {'Ad Included': true});

When filtering for a boolean property that is true or false, Mixpanel only accepts values that are either the boolean true or the boolean false. All other values (undefined, null, etc.) will fall into neither true nor false. 
However, if you were to typecast any non-boolean property to boolean, false filtering actually behaves differently. Any boolean false values, the string "false", the number 0, null, undefined, and an empty string will all appear as false. True values will contain the boolean true, the string "true", and any set value that is not a 0 or an empty string.
If you are looking to see this typecasted boolean behavior for a true boolean property, use the following logic "boolean property is not true".  This logic is currently supported in Messages, Explore, and Cohorts.

2016-06-16_00_16_58.989435-property_date.png  Date

To guarantee appropriate typecasting across all Mixpanel reports, use the date format YYYY-MM-DDTHH:MM:SS. Make sure you’re sending dates in this format by using the .toISOString method in JavaScript if possible, which will also ensure dates are sent to Mixpanel in UTC.

If you send a unix timestamp as a date, Mixpanel will treat it as an integer; however, in the Mixpanel UI, you can force it to be treated as a date (see Typecasting section below).

Note: A property value that is formatted as a date will be passed as a date type.


mixpanel.track('Account Created', {'Date First Seen': '2016-06-01T12:34:56'});

2016-06-16_00_17_25.552599-property_list.png  List

Send a list of values as a JSON array. In Insights, when filtering by a particular item, list properties allow you to see all events where that item was included in the list.


  'Order Successful',
  {'Products': ['Jacket', 'Helmet', 'Gloves']}

List properties are subject to limits solely based on serialized size. For events, the total list size cannot exceed 8 KB for events. For profiles, the total list size cannot exceed 256 KB. Additionally, each item in the list cannot exceed 255 bytes.

Visit our guide on List Property Support to learn how list properties behave in a report's query.


Mixpanel allows you to force Properties into another data format by clicking on the Property Name and selecting a different type:


Typecasting is helpful when one of your properties is a number but is sent to Mixpanel as a string and you want to see histogram data for that property. Or if one of your properties is a unix timestamp and got sent as a number, and you want it to be treated as a date Property instead.

Data Type Operators

Every data type has a different set of operators to choose from when you filter by properties.

This image summarizes the operators for each data type.


String Type Operators

"equals", "does not equal", "contains", "does not contain", "is set", "is not set"

For a string property, you can use the “is set” operator to determine if the property exists for the event or user profile.

If you’re looking for all users who have a specific value of a property (such as “Account Type” contains “Premium”), then you would use the “contains” or “equals” operators.

Note that “contains” is usually a better operator to use than “equals”, especially for properties with several values.

Number Type Operators

"in between", "less than", "equal to", "greater than"

Boolean Type Operators

"is True", "is False"

List Type Operators

"contains"/"not contains"

In Closed Beta:

Iterators ("Any"/"All") combined with the full range of string operators.

Date Type Operators


Operates on

"in the last"/"not in the last"

"before the last"

"in the next"

Intervals in time increments of "hours", "days", "weeks", "months"

"on"/"not on"



Exact dates
"between"/"not between" Date ranges


Did this answer your question?



Article is closed for comments.