pixellint

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

Hosts
postback.iqm.com
Paths
/open
Vendor docs
github.com/segmentio/action-destinations/blob/d07282a306790c0457c403cc7eb1d006b6a4189f/packages/destination-actions/src/destinations/iqm/index.ts

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.empty
vendor.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.missing
vendor.iqm-segment-open.http.content_type.empty
vendor.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.missing
vendor.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