> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List directed campaign products (alpha)

> Read provider product and pricing-option IDs for an explicit directed media buy

<Warning>
  Alpha. This operation requires both the `directed-campaigns` mirror gate and
  the narrower `directed-campaign-writes` gate. It is read-only, but it is
  available only for a mapped, subscribed account on a write-verified provider.
</Warning>

Returns the connected provider account's AdCP products and pricing options
without creating a discovery session or applying a buyer brief. Use its
`product_id` and `pricing_option_id` values in the explicit packages sent to a
directed `create_campaign` request. Never invent either identifier.

**Named operation:** `list_directed_campaign_products`

| Field          | Location | Type           | Required | Description                                                |
| -------------- | -------- | -------------- | -------- | ---------------------------------------------------------- |
| `connectionId` | path     | integer        | Yes      | Active official-adapter connection ID                      |
| `accountId`    | path     | integer        | Yes      | Buyable provider-account row selected from the connection  |
| `advertiserId` | query    | numeric string | Yes      | Advertiser already mapped to this account and subscription |

```bash theme={null}
curl \
  "https://api.interchange.io/api/v2/buyer/storefront-connections/42/accounts/81/directed-campaigns/products?advertiserId=12345" \
  -H "Authorization: Bearer $SCOPE3_API_KEY"
```

## Response

The response preserves each provider product. At minimum, every returned row
has `product_id`, and every pricing choice has `pricing_option_id`; provider
format, targeting, and pricing fields pass through when supplied.

```json theme={null}
{
  "products": [
    {
      "product_id": "tiktok_video_views",
      "name": "TikTok Video Views",
      "pricing_options": [
        {
          "pricing_option_id": "tiktok_video_views_cpm",
          "pricing_model": "cpm"
        }
      ]
    }
  ]
}
```

TikTok treats an empty/omitted brief as an account-catalog read: it returns its
complete static product set and skips brief interpretation, historical
performance scoring, recommendation ranking, proposals, and top-five
truncation. Other providers must pass the same no-brief conformance check before
write enrollment.

## Errors and recovery

| Error                                 | Recovery                                                                                                     |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `FEATURE_NOT_ENABLED`                 | The customer lacks mirror or write-alpha access. Do not call the adapter directly.                           |
| `CAPABILITY_NOT_SUPPORTED`            | This provider has not passed directed-write conformance.                                                     |
| Mapping/subscription validation error | Re-list the connection accounts and mappings, map the intended advertiser, and subscribe it before retrying. |

See [Directed campaigns (alpha)](/v2/buyer/campaigns/directed-campaigns) and
[Create campaign](/v2/buyer/campaigns/tasks/create-campaign).
