mixpanel-export-people
A Node.js package that can export data from Mixpanel
Why another "Mixpanel Export" module?
I know there are many different modules that provide the same or even more functionality but the difference is simple - they don't let you export EVERYTHING. Ever tried to export your 20k users into a file using these scripts? Doesn't work - because Mixpanel caps responses at 1000 (page size) so it will only export the first 1000 items from your actual data. No script was able to export all data, so i wrote it myself.
Installation
Install using npm install mixpanel-export-people --save
Usage
Get your API KEY
and API SECRET
from your Mixpanel profile and pass them to the constructor;
//initialize a new mp instance with your mixpanel key and secretvar mp = "mixpanel-export-people""API KEY" "API SECRET"; //returns the mixpanel users as json objectsvar users = mppeople; for var i = 0; i < userslength; i++ var user = usersi; //get the city var city = user"$properties""$city";
To see more examples click examples.
API Methods
JSON
- people.ToJson(): returns the users as json objects
var users = mppeople; //get the cityvar city = users0"$properties""$city";
- people.saveJson(path): saves the users in json format at
path
mppeople;
CSV
- people.toCsv(): returns the users as csv string
var csv = mppeople; console;
- people.saveCsv(path): saves the users in csv format at
path
mppeople;
Utilities
- people.url(): returns a valid url to the
engage
endpoint, inlcudingexpire
,api_key
and a validsig
. You can request the data in the browser etc. using this url.
var url = mppeople; console;
Notes
Instead of using the request
module this script uses the sync-request
module to retreive the data - which means a calls to toJson()
, saveJson()
, toCsv()
, saveCsv()
will be blocking calls. This is because Mixpanel does not provide a method to request different pages in parallel.