---
title: "Validate Pixel"
method: POST
path: "/events/validate_pixel"
tags: ["Events"]
---

# Validate Pixel

`POST /events/validate_pixel`

Checks whether the Whop pixel is installed for an account. Recent pixel events count as proof on their own, so an account that has sent data lately comes back installed without a `url`. Pass a `url` and events from that page settle it; conversion events are also read across the hostname because they commonly fire on a later confirmation page. If the requested page hasn't sent any events lately, it is fetched and read for the pixel and conversion events wired on it. `installed` is only true when the pixel was actually seen — in the account's events or in the page.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `account_id` string — Account to check. Defaults to the authenticated account.
  - `url` string — A page to read for the pixel, e.g. an ad destination. Omit it to check the account from its events alone.

## Response `200`

pixel validated

- PixelValidation
  - `firing_data_ok` boolean, required — False when the event lookup failed, meaning `host_events` and `last_seen_days` are incomplete.
  - `host_events` string[], required
  - `installed` boolean, required — True when the account has sent events recently, the pixel is present in the page at `url`, or `url` is hosted on Whop.
  - `last_fired_days` object, required — Event name to whole days since that event last fired, e.g. `{ "lead": 3 }`. Carries events that fired too long ago to count as installed, so you can prompt to re-check rather than report them missing.
  - `last_seen_days` number, nullable, required — Days since the pixel last sent an event, within a 30-day window. `null` when it hasn't sent one in that window — which includes a pixel installed moments ago.
  - `native_tracking` boolean, required — True when `url` is hosted on Whop, so no pixel snippet is required.
  - `page_events` string[], required
  - `reachable` boolean, nullable, required — Whether the page could be loaded. `null` when the request included no URL, and `true` when events settled the answer without a fetch.
  - `url` string, nullable, required — The URL that was checked, after normalization. `null` when the request didn't include one.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Resource not found

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/866821546d67/schema)
