pixellint

vendor/heap-identify · vendor documented

Heap identify needs app_id, user_id, and identity

Not /api/track. Identify migrates an anonymous SDK user_id onto a known identity. user_id is digits. Heap drops a second identity on the same user_id. Track stays vendor/heap-track.

user_id is the SDK id, not the email

Heap documents user_id as the numeric string from the SDK. identity is the email or login.

Rule: vendor.heap-identify.body.user_id.invalid

What this pack matches

Hosts
heapanalytics.com, c.eu.heap-api.com
Paths
/api/v1/identify
Vendor docs
developers.heap.io/reference/identify-1

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
app_id required It is the Heap environment ID. Heap documents it as required on identify. Fix: Set app_id to the environment ID from Heap Projects. vendor.heap-identify.body.app_id.missing
vendor.heap-identify.body.app_id.empty
docs
user_id required It is the anonymous user_id from the Heap SDK. Heap documents a numeric string between 0 and 2^53-1. Fix: Send the Heap SDK user_id as digits, not the login email. vendor.heap-identify.body.user_id.missing
vendor.heap-identify.body.user_id.empty
vendor.heap-identify.body.user_id.invalid
docs
identity required It is the known identity, such as an email. Heap documents it as required and case-sensitive, limited to 255 characters. Fix: Send a unique identity. Heap drops a second identity on the same user_id. vendor.heap-identify.body.identity.missing
vendor.heap-identify.body.identity.empty
docs
timestamp optional Heap documents timestamp as ISO 8601. When omitted, Heap stamps the arrival time. Fix: Send an ISO 8601 timestamp, such as 2017-03-10T22:21:56+00:00. vendor.heap-identify.body.timestamp.empty
vendor.heap-identify.body.timestamp.invalid
docs

Validate a payload

pixellint validate json @payload.json --rulepack vendor/heap-identify

Try this failing payload in the playground. Heap identify missing identity.

{"app_id":"11","user_id":"1847839267195673"}

cargo install pixellint · npm install pixellint