---
title: "List conversion destinations"
method: GET
path: "/v1/accounts/{accountId}/conversion-destinations"
tags: ["Conversions"]
---

# List conversion destinations

`GET /v1/accounts/{accountId}/conversion-destinations`

Returns the list of pixels (Meta), conversion actions (Google),
conversion rules (LinkedIn), or pixels (OpenAI Ads) accessible to the
connected ads account. Use the returned `id` as `destinationId` when
posting to `POST /v1/ads/conversions`.

For Google and LinkedIn, each destination's `type` reflects the
conversion type (PURCHASE, LEAD, SIGN_UP, etc.), and the event type is
locked to the destination. For Meta and OpenAI Ads, `type` is absent:
pixels accept any event name per request.

For LinkedIn, destinations are returned across every sponsored ad
account the connected token can access; the `adAccountId` field on
each destination identifies the parent ad account and is required for
subsequent CRUD calls (update, delete, associations, metrics).

## Path parameters

- `accountId` string, required

## Response `200`

Destinations listed

- object
  - `platform` 'metaads' | 'googleads' | 'linkedinads' | 'tiktokads' | 'openaiads'
  - `destinations` object[]
    - `id` string — Destination identifier. Meta: pixel ID. Google: conversion action resource name. LinkedIn: numeric conversion rule ID. OpenAI Ads: pixel wire id.
    - `name` string
    - `type` string — Present when the platform locks event type to the destination (Google conversion actions, LinkedIn conversion rules).
    - `status` 'active' | 'inactive'
    - `adAccountId` string — Set by adapters whose destinations are scoped to a specific ad account (LinkedIn). Pass back on subsequent CRUD calls.
    - `conversionEvents` object[] — OpenAI Ads only: the conversion event settings wired to this pixel. Pass one's `id`, `eventType` or `name` as `promotedObject.customEventType` on a `goal: conversions` create (POST /v1/ads/create or POST /v1/ads/campaigns) to optimize for it. Without it, the account's most recently created `optimizable` event is used; when none is, the create returns 400.
      - `id` string
      - `name` string
      - `eventType` string, nullable — OpenAI event type, e.g. order_created, lead_created, or custom.
      - `customEventName` string, nullable
      - `archived` boolean
      - `optimizable` boolean — Active and standard (not custom). Only these can be a conversions campaign's optimization event.

## Other responses

- `400` — Account's platform is not supported by the Conversions API.
- `401` — Unauthorized
- `403` — Ads access required (Ads add-on on legacy plans, included on usage-based plans), OR (for LinkedIn) the connected account lacks the `rw_conversions` scope and must be reconnected.
- `404` — The account or requested resource was not found or is not accessible. An account ID may have been disconnected and removed. Read GET /v1/accounts for current account IDs.
- `409` — The account exists but is inactive or needs reconnection. Reconnect it, then read GET /v1/accounts for its current account ID before retrying. Code: ads_connection_required.
- `429` — LinkedIn rate limit hit. Retry with backoff.

## Changes

- **2026-09-26** `e0122970214f` — 1 info
  - added the optional property `destinations/items/conversionEvents` to the response with the `200` status
- **2026-09-25** `2c04683ce694` — 8 info
  - added the optional property `details/adAccountId` to the response with the `404` status
  - added the optional property `details/adAccountId` to the response with the `409` status
  - added the optional property `details/createdObjects` to the response with the `404` status
  - added the optional property `details/createdObjects` to the response with the `409` status
  - …4 more
- **2026-09-16** `3e6ddf2a99ea` — 2 info
  - added the optional property `details/budgetScope` to the response with the `404` status
  - added the optional property `details/budgetScope` to the response with the `409` status
- **2026-09-15** `0dba7d004d75` — 4 info
  - added the optional property `details/quotaExhausted` to the response with the `404` status
  - added the optional property `details/quotaExhausted` to the response with the `409` status
  - added the optional property `details/quotaScope` to the response with the `404` status
  - added the optional property `details/quotaScope` to the response with the `409` status
- **2026-09-10** `e70ed06e7150` — 2 info
  - added the media type `application/json` for the response with the status `404`
  - added the non-success response with the status `409`

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/accounts/:accountId/conversion-destinations/get.md)

---

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