pixellint

Validate a pixel or conversion API

Paste a pixel URL from Chrome Network, a postback, a VAST tracker, or a conversion API JSON body. Pixellint is a CAPI validator and CAPI tester for Meta CAPI and Facebook CAPI. It checks the artifact against web standards, the vendor's documented parameters, and the IAB consent specs. Validation runs in this tab. Artifacts you test may be stored so the rules can be improved; see privacy.

Pixel not firing · CAPI not working · CAPI tester · CAPI JSON checker · Pixel Helper vs Network

Copy the collector URL from the Network tab (filter by facebook.com/tr, googleadservices.com, or the MMP host), or paste the JSON body your backend posts. Ctrl/⌘ Enter validates.

Privacy ·

Try:

What this page does

The conversions API said 200. The purchase never landed.

A conversions API accepts malformed conversion API events and still returns CAPI 200. Pixellint reads the fields the vendor documented. Same engine as the box above. Artifacts you test may be stored; see privacy.

Same engine

CLI, CI, agents

The playground is the same validator as the crate, the npm package, and the MCP server. Put the fixtures in CI. Do not paste production HARs into tickets.

cargo install pixellint
npm install pixellint
pixellint validate url 'https://www.facebook.com/tr?ev=Purchase'
pixellint validate json @payload.json --rulepack vendor/meta-conversions-api

GitHub · crates.io · npm · MCP: cargo install pixellint-mcp

Ten reasons

Why bother

CAPI glossary

Conversions API questions

How do I validate a conversion API payload?

Paste the CAPI JSON into the playground with kind set to JSON, or run pixellint validate json. HTTP 200 from the vendor is not that check.

What is a website pixel checker?

A website pixel checker lints the collector URL from Chrome Network. Paste facebook.com/tr or another pixel into Pixellint. CAPI JSON is a different paste: kind JSON.

Why is CAPI not working?

CAPI not working is usually HTTP 200 with empty Test Events, not a dead token. Lint the JSON before you rotate the token.

Why is my Facebook pixel not firing?

Filter Chrome Network for facebook.com/tr. If that request is missing, the pixel is not firing. If /tr is present, the pixel fired and the event name or parameters may still be wrong.

Why does the Conversions API return 200 if Test Events is empty?

Vendors accept malformed events and still return 200. A 13-digit event_time, a raw email in em, or website without event_source_url can all 200.

Is Facebook Pixel Helper enough to debug a tracking pixel?

Pixel Helper cannot see conversion API POSTs. Chrome Network is the fired URL. Pixellint lints that URL against the documented contract.

From the blog

Dated news on conversion APIs, pixels, and the measurement stack. Contract pages stay in docs. All posts · RSS.

Library

Pixels not firing, conversion API validator, CAPI tester, DART Floodlight tags. All docs.

What it knows

Rulepacks

Deep validation. Each rule carries an evidence level and links to the document it came from. One page per pack.

Vendor directory

Endpoint attribution for everything else. One claim per entry: this host belongs to this vendor.