Skip to content
AdCrunch
Esc
↑↓navigate↵open⌘Jpreview

List the events of a Meta Pixel

Available on: Meta

Live read. Asks Meta now for the events that one Meta Pixel received in the last days days, with one row for each event name: its count in the window, and lastSeenAt, the start of the last hour with an event of this name.

Read it before you create an ad set that optimizes for an event. An ad set that optimizes for an event that never fires gets no delivery. The counts are the ones that Meta reports for the Pixel. Meta keeps 7 days of events in hourly results, and the top 100 event names of each hour.

The Pixel must be a Pixel of the ad account of the advertiser: a row of GET /observe/{advertiserId}/pixels. Another Pixel answers 404, with error of not_found, and AdCrunch reads none of its events.

An advertiser that your organization does not own answers 404, with error of not_found. An advertiser that does not exist, and one that is not a Meta ad account, answer the same.

AdCrunch stores nothing from this read. Each request counts against the rate limits of Meta.

The answer has no page: it holds every event name of the window.

GET/observe/{advertiserId}/pixels/{pixelId}/events
Authorization
AuthorizationBearer token · headerrequired

Send Authorization: Bearer <credential>.

Use an API key (acr_…), from the AdCrunch console under Settings → API keys.

The credential names the organization, and no operation takes an organization parameter.

See https://docs.adcrunch.dev/api/authentication.

Path parameters
advertiserIdstringrequired
matches ^(acc_)[\s\S]{0,}$
pixelIdstringrequired
matches ^\d+$
Query parameters
daysinteger
min 1 · max 7 · default: 7
Responses
200

The events of the Pixel in the window.

dataobject[]required

One row for each event name that the Pixel received in the window, the greatest count first. An empty array means that the Pixel received no event in the window.

Show properties
Array of object
countintegerrequired

The number of events of this name in the window.

min -9007199254740991 · max 9007199254740991
eventstringrequired

The event name, as the Pixel sends it: PageView, StartTrial. The standard event StartTrial is the customEventType START_TRIAL of an ad set.

lastSeenAtstringrequired

The start of the last hour with an event of this name, as Meta writes it (ISO 8601).

400

The request does not match the schema of this operation: a field is missing or has the wrong type, or the body is not valid JSON. error is invalid_request, and issues names each field. Nothing was changed.

issuesobject[]required

One entry for each field that does not match.

Show properties
Array of object
instringrequired

The part of the request that holds the field.

Allowed:bodycookieheadersparamsquery
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

pathstringrequired

A JSON Pointer into that part of the request, such as /filename. An empty string is the whole part.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

Allowed:invalid_request
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

401

No API key, or one that does not resolve. See the security scheme. error is unauthorized.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

Allowed:unauthorized
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

402

The organization has no active subscription. An owner subscribes at paywallUrl. error is organization_unentitled.

paywallUrlstring<uri>required

The page where an owner of the organization subscribes. Show it to the person.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

Allowed:organization_unentitled
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

403

The caller does not hold observe:read. error is forbidden.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

Allowed:forbidden
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

404

Your organization does not own the advertiser in the path, it does not exist, or it is not a Meta ad account. The answer does not tell them apart. error is not_found. AdCrunch asks Meta nothing. The same answer comes for a Pixel that is not a Pixel of the ad account. Then AdCrunch reads none of its events.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

Allowed:not_found
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

409

This advertiser has no usable connection to Meta. A person must reconnect it.

providerstringrequired

The ad platform this failure came from: meta.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

Allowed:provider_not_connected
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

502

The provider refused the request, or could not answer it. This failure is often transient. Send the request again.

platformErroranyrequired

The provider’s own error object, unchanged. For Meta it carries code, error_subcode, type, error_user_title and error_user_msg — branch on the subcode for anything AdCrunch does not model. It never holds the request AdCrunch sent.

providerstringrequired

The ad platform this failure came from: meta.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

Allowed:provider_error
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

Request
curl -X GET 'https://api.pr-1108.adcrunch.dev/observe/string/pixels/string/events' \
  -H 'Authorization: Bearer YOUR_TOKEN'
Response
{
  "data": [
    {
      "count": 4210,
      "event": "PageView",
      "lastSeenAt": "2026-09-24T08:00:00+0000"
    },
    {
      "count": 37,
      "event": "StartTrial",
      "lastSeenAt": "2026-09-24T07:00:00+0000"
    },
    {
      "count": 5,
      "event": "Purchase",
      "lastSeenAt": "2026-09-23T16:00:00+0000"
    }
  ]
}