---
title: "List ChatGPT Ads pixels"
method: POST
path: "/api/v1/tools/chatgpt_list_pixels/execute"
tags: ["ChatGPT Ads"]
---

# List ChatGPT Ads pixels

`POST /api/v1/tools/chatgpt_list_pixels/execute`

## Request

- Base URL: `https://adako.ai`
- URL: `https://adako.ai/api/v1/tools/chatgpt_list_pixels/execute`
- Auth: HTTP bearer

Lists the measurement pixels on the advertiser account, when each last received an event, and whether a Conversions API key exists for it. The key itself is never read or shown — only whether one is there.
Use when: the user asks about conversion tracking, or before launching anything with a conversions objective, because that objective needs a conversion event to optimise towards.
Do not use it to read results — conversions that were recorded show up in chatgpt_get_performance. Do not tell the user tracking "works" because a pixel exists: a pixel that has never fired is not tracking anything, which is what the last-event column is for.
Returns one row per pixel. Pixel management has to be enabled on the ad account; when it is not, the platform answers 404 and the tool says so explicitly instead of failing — that answer is final, so relay it and move on rather than retrying.
The platform publishes how to create a pixel but not how to list them, so treat an empty result as "nothing visible to the API", not as proof that nothing exists.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object
    - `ad_account_id` string: ChatGPT Ads advertiser account id. One advertiser key belongs to one account, so this is only needed when the user has connected more than one key. Omit it to use the primary account.
    - `limit` integer: Maximum rows to return (default 100).
    - `raw_data` boolean: Return compact JSON only (no markdown). Use when you will compute on the result.

## Response `200`

The tool ran. A write returns proposal_id and approve_url while the change waits for approval.

- SuccessEnvelope
  - `success` unknown, required
  - `tool` string, required
  - `data` object, required: Machine-readable result.
  - `markdown` string, required: The same result written for a person or a model.
  - `quota` Quota: Task usage for the current billing period.
    - `plan` string
    - `used` integer
    - `limit` integer
    - `period_end` string
    - `upgrade_url` string
  - `proposal_id` string: Present for writes. Nothing changes on the ad platform until it is approved.
  - `approve_url` string: Where a person approves the proposal.
  - `request_id` string, required

## Other responses

- `400`: Invalid arguments, or the ad account could not be resolved.
- `401`: Missing, invalid, revoked or expired API key.
- `402`: Monthly task quota used up, or the plan does not include this tool.
- `403`: The connected ad account lacks the access level this tool needs.
- `404`: Unknown tool name.
- `409`: Not connected, reconnect needed, confirmation required, a proposal already pending or no longer pending, an identical create that failed earlier today (proposal_failed_before), a create that duplicates an approved one (duplicate_create), the ad-account limit of the plan reached (account_limit), or an Idempotency-Key reused with different arguments.
- `429`: Rate limited by Adako or by the ad platform. See Retry-After.
- `500`: Unexpected error inside Adako.
- `502`: The ad platform returned an error.

---

[API](https://skmtc.dev/adako/apis/adako-rest-api.md) · [All operations](https://skmtc.dev/adako/apis/adako-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adako/apis/adako-rest-api/revisions/59ee60d48a56?raw)
