pixellint

vendor/mixpanel-import · vendor documented

Mixpanel import needs time, distinct_id, and $insert_id

Not /track. /import is a batch of events with no properties.token. time is required Unix seconds or milliseconds. $insert_id is required so a retry is not counted twice. strict=1 is recommended so failed events are named in the response.

$insert_id is required on import

Track recommends it. Import rejects the event without it. Mixpanel uses it to drop duplicates.

Rule: vendor.mixpanel-import.body.properties.$insert_id.empty

What this pack matches

Hosts
mixpanel.com
Paths
…/import…
Vendor docs
docs.mixpanel.com/reference/import-events

Rules

Codes are stable. A finding in CI, MCP, or the playground lands on the same id.

Field Required What it checks Rule ids Source
strict recommended Mixpanel documents `strict=1` so the batch is validated and failed events are named in the response. Fix: Send `strict=1` on `/import`. vendor.mixpanel-import.param.strict.missing
vendor.mixpanel-import.param.strict.empty
vendor.mixpanel-import.param.strict.invalid
docs
event required Mixpanel documents the event name as required on every imported event. Fix: Name the event, such as `Signup`. vendor.mixpanel-import.body.event.missing
vendor.mixpanel-import.body.event.empty
docs
properties required Mixpanel documents the properties object as required. `time`, `distinct_id`, and `$insert_id` ride inside it. Fix: Add a `properties` object carrying `time`, `distinct_id`, and `$insert_id`. vendor.mixpanel-import.body.properties.missing docs
properties.time required Mixpanel documents `time` as required Unix seconds or milliseconds since epoch. Fix: Send seconds or milliseconds since epoch, as an integer. vendor.mixpanel-import.body.properties.time.missing
vendor.mixpanel-import.body.properties.time.empty
vendor.mixpanel-import.body.properties.time.invalid
docs
properties.distinct_id required Mixpanel documents `distinct_id` as required. An empty string is allowed for events that are not tied to a user. Fix: Send the same `distinct_id` you use elsewhere for this user, or an empty string when there is no user. vendor.mixpanel-import.body.properties.distinct_id.missing docs
properties.$insert_id required Mixpanel documents `$insert_id` as required so `/import` can be retried without double-counting. Fix: Send a unique id per event, at most 36 alphanumeric or hyphen characters. vendor.mixpanel-import.body.properties.$insert_id.missing
vendor.mixpanel-import.body.properties.$insert_id.empty
docs

Validate a payload

pixellint validate json @payload.json --rulepack vendor/mixpanel-import

Try this failing payload in the playground. Mixpanel import missing $insert_id.

[{"event":"Signup","properties":{"time":1618716477000,"distinct_id":"user-1","$insert_id":""}}]

cargo install pixellint · npm install pixellint