---
title: meta_list_pixels
description: List the Meta Pixels installed on a Meta advertiser.
---

Ask which Pixel an ad set that optimizes for conversions can use. The agent reads all the Pixels of the advertiser, so that it does not guess one.

> Which Pixel should a conversion campaign on Northwind use?

The agent calls `meta_list_pixels`. A long list comes one part at a time. The agent reads each part. You see each Pixel with the time of its last event. The agent proposes the Pixel with the most recent event. [Change what runs on Meta](/mcp/tools/change-what-runs-on-meta) shows where this step comes in the job.

## Reference

**Available on:** [![Meta](/providers/meta.svg)](https://docs.adcrunch.dev/connect/providers)

List the Meta Pixels installed on a Meta ad account. A conversion-optimizing ad set must name one, so call this before creating such an ad set. Returns `{ id, name, lastFiredTime }` per Pixel — prefer one that has fired recently, since a pixel that has never fired is usually not installed. An answer can hold no Pixel and still carry `nextCursor`. When no answer holds a Pixel, up to the answer with no `nextCursor`, the account has no Pixel. The answer holds at most `limit` rows (default 100, maximum 500). When it carries `nextCursor`, more rows exist: call this tool again with the same arguments and `cursor` set to that value. When it carries no `nextCursor`, you have every row.

### Input

| Argument | Type | Required | Description |
| --- | --- | --- | --- |
| `advertiserId` | string | yes | Advertiser account ID (`acc_<id>`). Must belong to the active organization — find one with `list_advertisers`. |
| `cursor` | string, at least 1 character | no | The `nextCursor` of the previous page. Omit it to get the first page. Send it with no change, and with the same filters as the request that answered it: a cursor from a different query gets a 400 `invalid_cursor`. Do not build or change a cursor. |
| `limit` | integer, 1 to 500 | no | The greatest number of rows on the page, from 1 to 500. The default is 100. A greater value gets a 400, with `error` of `invalid_request`. Default: `100`. |

### Output

A successful call returns this object in `structuredContent`.

| Field | Type | Always present | Description |
| --- | --- | --- | --- |
| `nextCursor` | string | no | Send this value as `cursor` to get the next page. It is absent on the last page. |
| `pixels` | array of object | yes | The Meta Pixels of the advertiser, in the order of Meta. The list can be empty when `nextCursor` is present. Then more Pixels can exist. When no answer holds a Pixel, up to the answer with no `nextCursor`, the advertiser has no Pixel. |
| `pixels[].id` | string | yes | The Meta id of the Pixel. Give it as `pixelId` to `meta_create_adset`. |
| `pixels[].lastFiredTime` | string or null | yes | The time of the last event that the Pixel received, as Meta writes it (ISO 8601). It is null for a Pixel that never received an event. |
| `pixels[].name` | string | yes | The name of the Pixel in Meta. |

### Failure codes

A failed call has `isError` set, and `structuredContent.error` holds one of these codes. [Errors](/mcp/errors) describes the shape of a failed call.

- `not_found`
- `provider_not_connected`
- `provider_error`
- `invalid_cursor`
- `forbidden`
- `invalid_request`
- `internal_error`

### Scope

The token must hold `observe:read`. [Auth & scopes](/mcp/auth) lists each scope.

### Annotations

A client reads these hints. A hint that the tool does not declare has the default value of the MCP specification.

- **Read-only.** The tool changes nothing.
- **Open world.** The tool reaches a system outside AdCrunch, such as an ad platform.

### Example

The arguments:

```json
{
  "advertiserId": "acc_1485443900032333",
  "limit": 2
}
```

The result, in `structuredContent`:

```json
{
  "nextCursor": "eyJwIjp7ImFmdGVyIjoiUVZGSVVuQjRZMkYwWDJoUWJuTmZPV1JmWkEifSwicSI6IjE4bW0ydjdwNzllIn0",
  "pixels": [
    {
      "id": "812345678901234",
      "lastFiredTime": "2026-09-24T08:15:02+0000",
      "name": "Northwind Web Pixel"
    },
    {
      "id": "698765432109876",
      "lastFiredTime": null,
      "name": "Old test pixel"
    }
  ]
}
```
