$param_query .= '&' . urlencode($param) . '=' . urlencode($value); } $sig = $this->signature($params); $uri = '/' . $this->version . '/' . join('/', $methods) . '/'; $request_url = $uri . '?sig=' . $sig . $param_query; $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, $this->api_url . $request_url); curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl_handle); curl_close($curl_handle); return json_decode($data); } private function signature($params) { ksort($params); $param_string = ''; foreach ($params as $param => $value) { $param_string .= $param . '=' . $value; } return md5($param_string . $this->api_secret); } } // Example usage $api_key = '8955dfc608f1d008ed87e9cea0aa6fe2'; $api_secret = '82238657c11cbe8f8f960a4218f1d3c7'; // $mp = new Mixpanel($api_key, $api_secret); $data = $mp->request(array('export'), array("from_date" => "2013-01-01", "to_date" => "2015-09-10")); // var_dump($data);