> ## 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 event sources

> List the event sources registered on an advertiser

`GET /api/v2/buyer/advertisers/{advertiserId}/event-sources`

Returns the event sources registered on an advertiser. Each source is an event data pipeline (pixel, SDK, warehouse sync, CRM feed, MMP feed) that `log-event` references by `event_source_id`. Register or update sources with [Sync event sources](/v2/buyer/event-sources/tasks/sync-event-sources).

## Request

<CodeGroup>
  ```bash curl theme={null}
  curl https://api.interchange.io/api/v2/buyer/advertisers/12345/event-sources?take=50 \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```
</CodeGroup>

## Parameters

| Field          | Type    | Required | Notes                                    |
| -------------- | ------- | -------- | ---------------------------------------- |
| `advertiserId` | string  | Yes      | Path. Owning advertiser                  |
| `take`         | integer | No       | Query. Page size, max 250 (default 50)   |
| `skip`         | integer | No       | Query. Offset for pagination (default 0) |

## Response

```json theme={null}
{
  "eventSources": [
    {
      "eventSourceId": "website_pixel",
      "name": "Website Pixel",
      "eventTypes": ["purchase", "lead", "add_to_cart"],
      "allowedDomains": ["shop.example.com"],
      "integrationPlatform": "Website pixel + server CAPI",
      "mapping": {
        "eventIdField": "event_id / browser eventID",
        "eventTypeField": "event_type",
        "eventTimeField": "event_time",
        "userMatchFields": ["sc3clid", "hashed_email"],
        "valueField": "custom_data.value",
        "currencyField": "custom_data.currency",
        "orderIdField": "custom_data.order_id",
        "contentIdsField": "custom_data.content_ids",
        "consentField": "CMP consent string",
        "dedupeStrategy": "Use the same event_id in browser and server events.",
        "notes": "Capture click IDs on landing and replay them on conversion."
      },
      "testEventCode": "TEST-WEBSITE",
      "health": {
        "status": "receiving",
        "lastEventAt": "2026-01-20T14:42:00.000Z",
        "lastEventReceivedAt": "2026-01-20T14:42:02.000Z",
        "lastEventType": "purchase",
        "lastError": null,
        "lastErrorAt": null
      },
      "createdAt": "2026-01-15T10:30:00.000Z",
      "updatedAt": "2026-01-20T14:45:00.000Z"
    }
  ],
  "total": 5
}
```

`eventTypes` is `null` when the source accepts all types. `mapping`, `integrationPlatform`, and `testEventCode` are Scope3 extensions populated by [Sync event sources](/v2/buyer/event-sources/tasks/sync-event-sources). `health.status` is one of `not_seen`, `receiving`, or `needs_attention` and is updated from accepted or rejected `log-event` calls. `total` is the count matching the query, ignoring pagination.

## Errors

* `404 NOT_FOUND` — `advertiserId` does not exist or is not visible to the authenticated account.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Event source tasks" href="/v2/buyer/event-sources/tasks" icon="list-check">
    All event source operations
  </Card>

  <Card title="Log Events guide" href="/v2/guides/log-events" icon="circle-dot">
    How event sources and log-event fit together
  </Card>

  <Card title="Sync event sources" href="/v2/buyer/event-sources/tasks/sync-event-sources" icon="arrows-rotate">
    Register or update source configs
  </Card>

  <Card title="Conversion API" href="/v2/integrations/conversion-api" icon="bolt">
    Identity-hashing rules and event payloads
  </Card>
</CardGroup>
