| CARVIEW |
Select Language
HTTP/1.1 200 OK
Connection: keep-alive
Server: nginx/1.24.0 (Ubuntu)
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=300
Content-Encoding: gzip
Via: 1.1 varnish, 1.1 varnish
Accept-Ranges: bytes
Age: 0
Date: Sat, 17 Jan 2026 11:53:42 GMT
X-Served-By: cache-dfw-kdfw8210131-DFW, cache-bom-vanm7210089-BOM
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0
X-Timer: S1768650823.690584,VS0,VE303
Vary: Accept, Accept-Encoding
transfer-encoding: chunked
mixpanel-client: Mixpanel client
mixpanel-client: Mixpanel client
Modules
[Index] [Quick Jump]
Downloads
- mixpanel-client-0.3.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0.0, 0.1.1, 0.2.0, 0.2.1, 0.3.0 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | aeson, base (>=4.7 && <5), base64-bytestring, bytestring, http-client, http-client-tls, servant (>=0.14.1), servant-client, string-conv, text, time [details] |
| License | Apache-2.0 |
| Copyright | 2018 Domen Kožar |
| Author | Domen Kožar |
| Maintainer | domen@hercules-ci.com |
| Uploaded | by domenkozar at 2020-12-14T22:08:29Z |
| Home page | https://github.com/hercules-ci/mixpanel-client#readme |
| Bug tracker | https://github.com/hercules-ci/mixpanel-client/issues |
| Source repo | head: git clone https://github.com/hercules-ci/mixpanel-client |
| Distributions | |
| Reverse Dependencies | 1 direct, 0 indirect [details] |
| Downloads | 2323 total (19 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2020-12-14 [all 1 reports] |
Readme for mixpanel-client-0.3.0
[back to package description]MixPanel client for Haskell
Implements major features of MixPanel HTTP API:
- track
- alias
- engage
- import
- export
Getting started
import Data.Aeson ( (.=) )
import Data.Time.Clock ( getCurrentTime )
import GHC.Exts ( fromList )
import MixPanel ( Operation(Set), engage, track, alias
, AuthToken(..), mkEnv
-- reexports
, newManager, tlsManagerSettings)
main :: IO ()
main = do
-- setup
manager <- newManager tlsManagerSettings
let env = mkEnv (AuthToken "foobar") manager
-- track a simple event
Right () <- track env "Played Video" mempty
-- track an event with extra properties
Right () <- track env "Played Video Unique per user"
$ fromList [ "distinct_id" .= ("generated-id" :: String)
, "customProperty" .= True ]
-- alias the user
Right () <- alias env "generated-id" "user@example.com"
-- profile engagement
now <- getCurrentTime
Right () <- engage env "user@example.com"
$ Set (fromList [ "$created" .= now])
putStrLn "All good!"
Design questions
a) Why does it use Object/Array intemediate values from Data.Aeson?
TODO
- batch requests
- expose extra url query paramerers
- engage special properties more type safe?
- filter out null values in requests to mixpanel
- api support for tracking revenue