pixellint

Amplitude group identify needs api_key and a group

Not /identify. Group identify writes account or company properties. identification is JSON with group_type and group_value. HTTP V2 stays vendor/amplitude.

api_key is required

Amplitude documents api_key on GET query and POST form. A path-only /groupidentify is not an identify call.

Rule: vendor.amplitude-group-identify.param.api_key.missing

What this pack matches

Hosts
amplitude.com
Paths
/groupidentify
Vendor docs
amplitude.com/docs/apis/analytics/group-identify

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
api_key required It is the project API key. Amplitude documents it as required on GET query and POST form. Fix: Send `api_key` with the Amplitude project API key. vendor.amplitude-group-identify.param.api_key.missing
vendor.amplitude-group-identify.param.api_key.empty
docs
identification required It is a JSON identification object or array. Amplitude documents it as required. Each object carries group_type and group_value. Fix: Send `identification` as JSON with `group_type` and `group_value`. vendor.amplitude-group-identify.param.identification.missing
vendor.amplitude-group-identify.param.identification.empty
docs
root optional Identification is an object or array of identification objects. Decoded body source: identification. Encoding: json. Native JSON type: object or array. Minimum array items: 1. Maximum array items: 1024. vendor.amplitude-group-identify.body.root.invalid docs
root optional Each identification is an object. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: object. vendor.amplitude-group-identify.body.root.invalid docs
group_type required The vendor documents `group_type` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: string. vendor.amplitude-group-identify.body.group_type.missing
vendor.amplitude-group-identify.body.group_type.empty
vendor.amplitude-group-identify.body.group_type.invalid
docs
group_value required The vendor documents `group_value` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: string. vendor.amplitude-group-identify.body.group_value.missing
vendor.amplitude-group-identify.body.group_value.empty
vendor.amplitude-group-identify.body.group_value.invalid
docs
group_properties optional The vendor documents `group_properties` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: object. Maximum object properties: 1024. vendor.amplitude-group-identify.body.group_properties.invalid docs
group_properties.$set optional The vendor documents `group_properties.$set` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: object. vendor.amplitude-group-identify.body.group_properties.$set.invalid docs
group_properties.$setOnce optional The vendor documents `group_properties.$setOnce` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: object. vendor.amplitude-group-identify.body.group_properties.$setOnce.invalid docs
group_properties.$add optional The vendor documents `group_properties.$add` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: object. vendor.amplitude-group-identify.body.group_properties.$add.invalid docs
group_properties.$append optional The vendor documents `group_properties.$append` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: object. vendor.amplitude-group-identify.body.group_properties.$append.invalid docs
group_properties.$prepend optional The vendor documents `group_properties.$prepend` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: object. vendor.amplitude-group-identify.body.group_properties.$prepend.invalid docs
group_properties.$unset optional The vendor documents `group_properties.$unset` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: object. vendor.amplitude-group-identify.body.group_properties.$unset.invalid docs
group_properties.$add.number… optional The vendor documents `group_properties.$add.number` in the request contract. Body scope: ["[]",""]. Decoded body source: identification. Encoding: json. Native JSON type: number. vendor.amplitude-group-identify.body.group_properties.$add.number.invalid docs
method required Use a published Identify transport. Complete HTTP capture contract. Native JSON type: string. vendor.amplitude-group-identify.http.method.missing
vendor.amplitude-group-identify.http.method.empty
vendor.amplitude-group-identify.http.method.invalid
docs
content_type required POST Identify uses form fields rather than a native JSON request body. Complete HTTP capture contract. Applies when {"kind":"value_in","param":"method","values":["POST"]}. Native JSON type: string. vendor.amplitude-group-identify.http.content_type.missing
vendor.amplitude-group-identify.http.content_type.empty
vendor.amplitude-group-identify.http.content_type.invalid
docs

Validate a payload

pixellint validate url "$ARTIFACT" --rulepack vendor/amplitude-group-identify

Try this failing payload in the playground. Amplitude group identify missing api_key.

https://api2.amplitude.com/groupidentify?identification=%7B%22group_type%22%3A%22Company%22%2C%22group_value%22%3A%22acme%22%7D

cargo install pixellint · npm install pixellint