IQM Segment requests check the public sender profile.
Partial warning-only checks for the pinned Segment IQM sender on /open?pid=segment. Query pixel completeness, source HTTP operations, JSON MIME and the POST object/data envelope are checked. DELETE payloads and custom data remain open. This does not contract /api/v1/iqm, /video or other IQM integrations.
What this pack matches
Complete captures check documented credential alternatives.
Missing URL presence for pixel_id is deferred to this pack's explicit HTTP alternatives on matching captures. A submitted URL or form value keeps its blank and format checks. Bare URLs and unmatched endpoints retain their ordinary requirements.
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 |
|---|---|---|---|---|
pixel_id |
recommended | The Segment configuration declares a pixel_id setting and appends it to the query. This is sender completeness advice. Identifier grammar, blank-slot acceptance and account validity remain unestablished. Presence diagnostic severity: warning. Fix: Compare with the Pixel ID configured in the Segment IQM destination; preserve the original provisioned value. | vendor.iqm-segment-open.param.pixel_id.missing |
docs |
method |
optional | The pinned postEvent action uses POST and the deletion hook uses DELETE. Other methods differ from this sender profile; receiver acceptance is not asserted. Complete HTTP capture contract. Presence diagnostic severity: warning. | vendor.iqm-segment-open.http.method.emptyvendor.iqm-segment-open.http.method.invalid |
docs |
content_type |
recommended | Both pinned operations declare application/json. This checks source transport consistency, not a universal receiver media-type rule. Complete HTTP capture contract. Presence diagnostic severity: warning. | vendor.iqm-segment-open.http.content_type.missingvendor.iqm-segment-open.http.content_type.emptyvendor.iqm-segment-open.http.content_type.invalid |
docs |
query.pixel_id |
recommended | The source places pixel_id in the URL query. A body or form field cannot satisfy that emitted query slot. Values and duplicate arbitration stay open. Complete HTTP capture contract. Presence diagnostic severity: warning. | vendor.iqm-segment-open.http.query.pixel_id.missing |
docs |
body |
recommended | The postEvent sender serializes its mapped payload object, including {} when no optional data is mapped. DELETE payload shape is not constrained. Complete HTTP capture contract. Applies when {"kind":"value_in","param":"method","values":["POST"]}. Presence diagnostic severity: warning. Native JSON type: object. | vendor.iqm-segment-open.http.body.missingvendor.iqm-segment-open.http.body.invalid |
docs |
body.data |
optional | The postEvent action declares optional object data. Omission and {} are native alternatives. Nested keys and values remain open. Mapped null/empty values can be removed by the framework before serialization; no receiver null policy is claimed. Complete HTTP capture contract. Applies when {"kind":"value_in","param":"method","values":["POST"]}. Presence diagnostic severity: warning. Native JSON type: object. | vendor.iqm-segment-open.http.body.data.invalid |
docs |
Validate a payload
pixellint validate url "$ARTIFACT" --rulepack vendor/iqm-segment-open
Try this failing payload in the playground. An example with a validation finding.
https://postback.iqm.com/open?pid=segment
cargo install pixellint
·
npm install pixellint