pixellint

vendor/mixpanel-engage · vendor documented

Mixpanel engage needs $token, $distinct_id, and a profile operation

Not /track. /engage updates user profiles. $token is the project token. $distinct_id must match the id you send on events. Send $set or another documented operator. verbose=1 is recommended so the 200 body is not a silent zero.

A token and distinct_id are not an update

Mixpanel documents an operation object on every record. $set writes properties. The other operators increment, union, unset, or delete.

Rule: vendor.mixpanel-engage.body.operation_required

What this pack matches

Hosts
mixpanel.com
Paths
…/engage…
Vendor docs
docs.mixpanel.com/reference/profile-set

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
verbose recommended Mixpanel documents `verbose=1` so the 200 body says whether the update was accepted. Fix: Send `verbose=1` on `/engage` while you are implementing. vendor.mixpanel-engage.param.verbose.missing
vendor.mixpanel-engage.param.verbose.empty
vendor.mixpanel-engage.param.verbose.invalid
docs
strict optional Mixpanel documents `strict=1` so failed records are named in the response. Fix: Send `strict=1` to see per-record validation errors. vendor.mixpanel-engage.param.strict.empty
vendor.mixpanel-engage.param.strict.invalid
docs
ip optional Mixpanel documents `ip=0` on server-side calls so the profile is not geolocated to your server. Fix: Send `ip=0` from a server. vendor.mixpanel-engage.param.ip.empty
vendor.mixpanel-engage.param.ip.invalid
docs
$token required Mixpanel documents `$token` as required. It is the project token. Fix: Send the project token from Mixpanel project settings as `$token`. vendor.mixpanel-engage.body.$token.missing
vendor.mixpanel-engage.body.$token.empty
docs
$distinct_id required Mixpanel documents `$distinct_id` as required. It must be the same id you send on events. Fix: Send the same `distinct_id` you use on `/track` for this user. vendor.mixpanel-engage.body.$distinct_id.missing
vendor.mixpanel-engage.body.$distinct_id.empty
docs
$set optional Sets profile properties, creating the profile if needed. Mixpanel documents it as required for the profile-set call. docs
$set_once optional Sets profile properties only when they are not already set. docs
$add optional Increments numeric profile properties. docs
$union optional Unions list profile properties. docs
$append optional Appends to list profile properties. docs
$remove optional Removes values from list profile properties. docs
$unset optional Unsets named profile properties. docs
$delete optional Deletes the profile. docs
body.operation_required required The profile update has no operation. Mixpanel documents `$set`, `$set_once`, `$add`, `$union`, `$append`, `$remove`, `$unset`, or `$delete`. Fix: Send `$set` with the properties to write, or another documented engage operator. vendor.mixpanel-engage.body.operation_required docs

Validate a payload

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

Try this failing payload in the playground. Mixpanel engage missing a profile operation.

[{"$token":"project-token","$distinct_id":"user-13793"}]

cargo install pixellint · npm install pixellint