pixellint

Mixpanel groups needs $token, $group_key, $group_id, and an operation

Not /engage. /groups updates company or account profiles. $group_key is the type, such as Company. $group_id is that group. Send $set or another documented operator. verbose=1 is recommended so the 200 body is not a silent zero.

A token and group 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-groups.body.operation_required

What this pack matches

Hosts
mixpanel.com
Paths
…/groups…
Vendor docs
docs.mixpanel.com/reference/group-set-property

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 `/groups` while you are implementing. vendor.mixpanel-groups.param.verbose.missing
vendor.mixpanel-groups.param.verbose.empty
vendor.mixpanel-groups.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-groups.param.strict.empty
vendor.mixpanel-groups.param.strict.invalid
docs
ip optional Mixpanel documents `ip=0` on server-side calls so the group profile is not geolocated to your server. Fix: Send `ip=0` from a server. vendor.mixpanel-groups.param.ip.empty
vendor.mixpanel-groups.param.ip.invalid
docs
data optional The official browser SDK encodes the event or profile update in data for the legacy base64 transport. vendor.mixpanel-groups.param.data.empty docs
https_required required Mixpanel explicitly rejects non-HTTPS API requests. vendor.mixpanel-groups.https_required docs
optional The JSON body is a nonempty array of records. Native JSON type: array. Minimum array items: 1. vendor.mixpanel-groups.body..invalid docs
$token required Mixpanel documents `$token` as required. It is the project token. Body scope: []. Native JSON type: string. Fix: Send the project token from Mixpanel project settings as `$token`. vendor.mixpanel-groups.body.$token.missing
vendor.mixpanel-groups.body.$token.empty
vendor.mixpanel-groups.body.$token.invalid
docs
$group_key required Mixpanel documents `$group_key` as required. It is the group type, such as Company. Body scope: []. Native JSON type: string. Fix: Send the group key you configured in Mixpanel, such as `Company`. vendor.mixpanel-groups.body.$group_key.missing
vendor.mixpanel-groups.body.$group_key.empty
vendor.mixpanel-groups.body.$group_key.invalid
docs
$group_id required Mixpanel documents `$group_id` as required. It is the group instance, such as Acme. Body scope: []. Native JSON type: string or integer. Fix: Send the id of this group, such as `acme`. vendor.mixpanel-groups.body.$group_id.missing
vendor.mixpanel-groups.body.$group_id.empty
vendor.mixpanel-groups.body.$group_id.invalid
docs
$set optional Updates or adds group properties, creating the profile if needed. Body scope: []. Native JSON type: object. vendor.mixpanel-groups.body.$set.invalid docs
$set_once optional Sets group properties only when they are not already set. Body scope: []. Native JSON type: object. vendor.mixpanel-groups.body.$set_once.invalid docs
$add optional Increments numeric group properties. Body scope: []. Native JSON type: object. vendor.mixpanel-groups.body.$add.invalid docs
$union optional Unions list group properties. Body scope: []. Native JSON type: object. vendor.mixpanel-groups.body.$union.invalid docs
$remove optional Removes values from list group properties. Body scope: []. Native JSON type: object. vendor.mixpanel-groups.body.$remove.invalid docs
$unset optional Unsets named group properties. Body scope: []. Native JSON type: array. vendor.mixpanel-groups.body.$unset.invalid docs
$delete optional Deletes the group profile. Body scope: []. Native JSON type: string. vendor.mixpanel-groups.body.$delete.invalid docs
optional The vendor documents `` in the request contract. Body scope: []. Native JSON type: object. vendor.mixpanel-groups.body..invalid docs
$unset[] optional The vendor documents `$unset[]` in the request contract. Body scope: []. Native JSON type: string. vendor.mixpanel-groups.body.$unset[].invalid docs
increment… optional The vendor documents `increment` in the request contract. Body scope: []. Native JSON type: number. vendor.mixpanel-groups.body.increment.invalid docs
union… optional The vendor documents `union` in the request contract. Body scope: []. Native JSON type: array. vendor.mixpanel-groups.body.union.invalid docs
body.operation_required required The group update has no operation. Mixpanel documents `$set`, `$set_once`, `$add`, `$union`, `$remove`, `$unset`, or `$delete`. Body scope: []. Fix: Send `$set` with the properties to write, or another documented groups operator. vendor.mixpanel-groups.body.operation_required docs
optional The JSON body is a nonempty array of records. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: object or array. Minimum array items: 1. vendor.mixpanel-groups.body..invalid docs
$token required Mixpanel documents `$token` as required. It is the project token. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: string. Fix: Send the project token from Mixpanel project settings as `$token`. vendor.mixpanel-groups.body.$token.missing
vendor.mixpanel-groups.body.$token.empty
vendor.mixpanel-groups.body.$token.invalid
docs
$group_key required Mixpanel documents `$group_key` as required. It is the group type, such as Company. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: string. Fix: Send the group key you configured in Mixpanel, such as `Company`. vendor.mixpanel-groups.body.$group_key.missing
vendor.mixpanel-groups.body.$group_key.empty
vendor.mixpanel-groups.body.$group_key.invalid
docs
$group_id required Mixpanel documents `$group_id` as required. It is the group instance, such as Acme. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: string or integer. Fix: Send the id of this group, such as `acme`. vendor.mixpanel-groups.body.$group_id.missing
vendor.mixpanel-groups.body.$group_id.empty
vendor.mixpanel-groups.body.$group_id.invalid
docs
$set optional Updates or adds group properties, creating the profile if needed. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: object. vendor.mixpanel-groups.body.$set.invalid docs
$set_once optional Sets group properties only when they are not already set. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: object. vendor.mixpanel-groups.body.$set_once.invalid docs
$add optional Increments numeric group properties. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: object. vendor.mixpanel-groups.body.$add.invalid docs
$union optional Unions list group properties. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: object. vendor.mixpanel-groups.body.$union.invalid docs
$remove optional Removes values from list group properties. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: object. vendor.mixpanel-groups.body.$remove.invalid docs
$unset optional Unsets named group properties. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: array. vendor.mixpanel-groups.body.$unset.invalid docs
$delete optional Deletes the group profile. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: string. vendor.mixpanel-groups.body.$delete.invalid docs
optional The vendor documents `` in the request contract. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: object. vendor.mixpanel-groups.body..invalid docs
$unset[] optional The vendor documents `$unset[]` in the request contract. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: string. vendor.mixpanel-groups.body.$unset[].invalid docs
increment… optional The vendor documents `increment` in the request contract. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: number. vendor.mixpanel-groups.body.increment.invalid docs
union… optional The vendor documents `union` in the request contract. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Native JSON type: array. vendor.mixpanel-groups.body.union.invalid docs
body.operation_required required The group update has no operation. Mixpanel documents `$set`, `$set_once`, `$add`, `$union`, `$remove`, `$unset`, or `$delete`. Body scope: ["[]",""]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Fix: Send `$set` with the properties to write, or another documented groups operator. vendor.mixpanel-groups.body.operation_required docs
optional Body scope: [].$set.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$set.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$set.*. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$set.**[]. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$set_once.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$set_once.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$set_once.*. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$set_once.**[]. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$append.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$append.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$append.*. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$append.**[]. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$remove.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$remove.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$remove.*. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$remove.**[]. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$union.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$union.**. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$union.*. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: [].$union.**[]. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set.**","$set.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set.**","$set.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set.*","$set.*"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set.**[]","$set.**[]"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set_once.**","$set_once.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set_once.**","$set_once.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set_once.*","$set_once.*"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set_once.**[]","$set_once.**[]"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$append.**","$append.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$append.**","$append.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$append.*","$append.*"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$append.**[]","$append.**[]"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$remove.**","$remove.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$remove.**","$remove.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$remove.*","$remove.*"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$remove.**[]","$remove.**[]"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$union.**","$union.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$union.**","$union.**"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$union.*","$union.*"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$union.**[]","$union.**[]"]. Decoded body source: data. Encoding: base64_json. Applies when {"kind":"not","condition":{"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional The JSON body is a nonempty array of records. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: object or array. Minimum array items: 1. vendor.mixpanel-groups.body..invalid docs
$token required Mixpanel documents `$token` as required. It is the project token. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: string. Fix: Send the project token from Mixpanel project settings as `$token`. vendor.mixpanel-groups.body.$token.missing
vendor.mixpanel-groups.body.$token.empty
vendor.mixpanel-groups.body.$token.invalid
docs
$group_key required Mixpanel documents `$group_key` as required. It is the group type, such as Company. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: string. Fix: Send the group key you configured in Mixpanel, such as `Company`. vendor.mixpanel-groups.body.$group_key.missing
vendor.mixpanel-groups.body.$group_key.empty
vendor.mixpanel-groups.body.$group_key.invalid
docs
$group_id required Mixpanel documents `$group_id` as required. It is the group instance, such as Acme. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: string or integer. Fix: Send the id of this group, such as `acme`. vendor.mixpanel-groups.body.$group_id.missing
vendor.mixpanel-groups.body.$group_id.empty
vendor.mixpanel-groups.body.$group_id.invalid
docs
$set optional Updates or adds group properties, creating the profile if needed. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: object. vendor.mixpanel-groups.body.$set.invalid docs
$set_once optional Sets group properties only when they are not already set. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: object. vendor.mixpanel-groups.body.$set_once.invalid docs
$add optional Increments numeric group properties. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: object. vendor.mixpanel-groups.body.$add.invalid docs
$union optional Unions list group properties. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: object. vendor.mixpanel-groups.body.$union.invalid docs
$remove optional Removes values from list group properties. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: object. vendor.mixpanel-groups.body.$remove.invalid docs
$unset optional Unsets named group properties. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: array. vendor.mixpanel-groups.body.$unset.invalid docs
$delete optional Deletes the group profile. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: string. vendor.mixpanel-groups.body.$delete.invalid docs
optional The vendor documents `` in the request contract. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: object. vendor.mixpanel-groups.body..invalid docs
$unset[] optional The vendor documents `$unset[]` in the request contract. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: string. vendor.mixpanel-groups.body.$unset[].invalid docs
increment… optional The vendor documents `increment` in the request contract. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: number. vendor.mixpanel-groups.body.increment.invalid docs
union… optional The vendor documents `union` in the request contract. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Native JSON type: array. vendor.mixpanel-groups.body.union.invalid docs
body.operation_required required The group update has no operation. Mixpanel documents `$set`, `$set_once`, `$add`, `$union`, `$remove`, `$unset`, or `$delete`. Body scope: ["[]",""]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Fix: Send `$set` with the properties to write, or another documented groups operator. vendor.mixpanel-groups.body.operation_required docs
optional Body scope: ["[].$set.**","$set.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set.**","$set.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set.*","$set.*"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set.**[]","$set.**[]"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set_once.**","$set_once.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set_once.**","$set_once.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set_once.*","$set_once.*"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$set_once.**[]","$set_once.**[]"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$append.**","$append.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$append.**","$append.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$append.*","$append.*"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$append.**[]","$append.**[]"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$remove.**","$remove.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$remove.**","$remove.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$remove.*","$remove.*"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$remove.**[]","$remove.**[]"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$union.**","$union.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum object properties: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$union.**","$union.**"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum decoded UTF-8 bytes: 255. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$union.*","$union.*"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 3. vendor.mixpanel-groups.body..invalid docs
optional Body scope: ["[].$union.**[]","$union.**[]"]. Decoded body source: data. Encoding: json. Applies when {"kind":"value_pattern","param":"data","pattern":"^\\s*[\\[{]"}. Applies when {"kind":"json_type","param":"","json_type":"object"}. Presence diagnostic severity: error. Value diagnostic severity: warning. Native JSON type: string or number or boolean or object or array or null. Maximum container depth: 1. vendor.mixpanel-groups.body..invalid docs
method required The official SDK uses POST or GET fallback for this operation. Complete HTTP capture contract. Native JSON type: string. vendor.mixpanel-groups.http.method.missing
vendor.mixpanel-groups.http.method.empty
vendor.mixpanel-groups.http.method.invalid
docs
content_type optional Published native JSON, XHR form and sendBeacon text representations are retained. Complete HTTP capture contract. Applies when {"kind":"value_in","param":"method","values":["POST"]}. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: string. vendor.mixpanel-groups.http.content_type.empty
vendor.mixpanel-groups.http.content_type.invalid
docs
headers.content-encoding optional HTTP content encoding, when supplied. This endpoint documents its own gzip policy. Complete HTTP capture contract. Native JSON type: string. vendor.mixpanel-groups.http.headers.content-encoding.empty
vendor.mixpanel-groups.http.headers.content-encoding.invalid
docs
http.gzip_unsupported required This profile endpoint explicitly does not support gzip. Complete HTTP capture contract. vendor.mixpanel-groups.http.gzip_unsupported docs

Validate a payload

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

Try this failing payload in the playground. Mixpanel groups missing a group operation.

[{"$token":"project-token","$group_key":"Company","$group_id":"acme"}]

cargo install pixellint · npm install pixellint