A wrapper for Mixpanel's data export API. Simply instantiate the class with your API secret and key and then make calls to api methods and get json back.
var MixpanelExport = require'mixpanel-data-export';
Every method detailed on mixpanel's data export api page is available in the library. However, some of the namings have been adjusted to read more semantically, for example,
topEventProperties , and
eventPropertyValues. The full list of methods is as follows...
export(parameters)(node only, see: https://github.com/michaelcarter/mixpanel-data-export-js/issues/3)
exportStream(parameters)(node only, please see: Streaming Exports)
engage(parameters)(node only, see: https://github.com/michaelcarter/mixpanel-data-export-js/issues/6)
An example usage might be:
panel =api_key: "my_api_key"api_secret: "my_api_secret";panelretentionfrom_date: "2014-02-28"to_date: "2014-03-10"born_event: "Rendering items"thenconsole.logdata;;
Callbacks are also supported:
result = panelretentionfrom_date: "2014-02-28"to_date: "2014-03-10"born_event: "Rendering items"console.logdata;;
A full list of available API methods is detailed on mixpanel's data export api page. If you find any that are missing please let me know, or better yet put in a pull request.
For any other requests (e.g. undocumented API endpoints), you can make raw requests to the API using
get. The library will still handle all of param ordering and md5 signature stuff that the API requires, so you'll just need to supply a request type & parameters:
requestType expects an array forming a path to the endpoint. Taking the "top events" endpoint as an example - it's available at
http://mixpanel.com/api/2.0/events/top/, so to request it you'd call
panel.get(['events', 'top'], parameters).
Due to the large size of an export response, it's often appropriate to stream the data instead of waiting for it all:
// Create a stream objectvar exportStream = panelexportStreamfrom_date: "2015-03-01"to_date: "2015-03-02";// Listen on stream dataexportStreamon'data'// do something with it;// Listen for a stream errorexportStreamon'error'// handle error;// Listen for the end of the streamexportStreamon'end'// move on to do other stuff;// Pause the streamexportStreampause// Resume the streamexportStreamresume
Please note this option is not available in node environments, it's not supported in browser.