Mixpanel-compatible ingestion

Keep your Mixpanel SDK. Change the host.

ZipLogger accepts Mixpanel-shaped payloads, so an app already instrumented with Mixpanel can send its events to ZipLogger by changing the endpoint and swapping the project token for a ZipLogger ingest key. Event names, properties and identity calls keep working as written.

Get an ingest key See the analytics

What is actually supported

Three translation routes over ZipLogger's normal ingest pipeline. They get no shortcuts: the same key resolution, the same per-plan quota, the same PII redaction and the same tenant isolation as every other event.

Mixpanel callZipLogger routeBehaviour
track /ingest/v1/mp/track Live events. Name and properties map straight through.
import /ingest/v1/mp/import Historical backfill. Your timestamps are honoured within the ingest backdating window.
engage / $set /ingest/v1/mp/engage Accepted and recorded as an event, so the properties stay queryable. See the limits below.
🔑

Unmodified SDKs work

The key can arrive as an X-Api-Key header or, for an untouched Mixpanel SDK, as the payload's own token property.

📦

Legacy transport too

Mixpanel's server SDKs post base64 JSON in a data form or query field. That shape is parsed, not just the modern JSON body.

🧭

One pipeline

Mixpanel-shaped events land in the same store as native ones, and show up in the same explorer, funnels and dashboards.

How to switch

  1. Create a workspace and an ingest key under Settings → API keys.
  2. Point your Mixpanel SDK's API host at https://app.ziplogger.ai.
  3. Replace the project token with your ZipLogger ingest key.
  4. Deploy, then watch events arrive in the Events explorer.

Run both in parallel for a week if you want a clean comparison: nothing stops you sending to Mixpanel and ZipLogger at once while you evaluate.

# Most Mixpanel SDKs expose an api_host setting.
mixpanel.init("zk_your_ziplogger_key", {
  api_host: "https://app.ziplogger.ai/ingest/v1/mp",
})

# Everything below is unchanged.
mixpanel.identify(userId)
mixpanel.track("checkout_started", { total: 49 })

Which tool is right for you

These are different products that overlap on events. The honest split:

Choose ZipLogger when

  • You want events, logs, traces and exceptions in one system and one bill
  • The question is “what were users doing when this error fired?”: ZipLogger correlates events to errors by trace id and session, then to the commit that introduced the error
  • You would rather not add a second vendor SDK to your app or your pages
  • You want conversion and error rate on the same dashboard
  • Flat monthly pricing suits you better than per-event tiers

Stay with Mixpanel when

  • Retention cohorts are central to how you work, and ZipLogger has no cohort-retention report
  • You need a mutable profile store you can overwrite in place, rather than profiles derived from the event stream
  • Your team lives in a dedicated product-analytics suite and uses its depth
  • Non-engineering teams need self-serve analysis tooling as their day job

Plenty of teams run both: Mixpanel for the product org, ZipLogger for the engineers who have to work out why the funnel broke on Tuesday.