> ## 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 adapter advertisers

> Read the advertiser roster live from the ad server for adapters that support it

`GET /api/v2/storefront/esa/{esaId}/advertisers`

Reads the advertiser roster live from the ad server behind an embedded sales agent. Returns the whole roster in one response.

Available for **AdsWizz** sources. Google Ad Manager sources are rejected — a GAM network carries far too many advertisers to read live, so its picker reads the synced cache via [`GET /esa/{esaId}/gam/advertisers`](/v2/storefront/buyer-routing/tasks/list-gam-advertisers) instead. FreeWheel and SpringServe expose no advertiser roster at all.

There is no cursor and no filtering. An adapter only reaches this endpoint when its roster is small enough to return whole; if a roster ever outgrows that, it moves to a synced cache with its own paginated endpoint rather than growing parameters here.

## Request

<CodeGroup>
  ```bash curl theme={null}
  curl "https://api.interchange.io/api/v2/storefront/esa/123/advertisers" \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```
</CodeGroup>

## Parameters

| Field   | Type    | Required | Notes                                    |
| ------- | ------- | -------- | ---------------------------------------- |
| `esaId` | integer | Yes      | Path. Embedded sales-agent connection id |

## Response

```json theme={null}
{
  "adapterType": "adswizz",
  "advertisers": [
    {
      "id": "552",
      "name": "Coca-Cola South Africa"
    }
  ]
}
```

`advertisers[].id` is the ad-server advertiser id. `name` may be `null` when the ad server does not return one. `adapterType` echoes which adapter answered, so you do not need to re-read the connection to label the result.

## Errors

* `400 VALIDATION_ERROR` — `esaId` is not a positive integer, the source is deactivated, or the ad server has no live advertiser roster read (including Google Ad Manager — use the GAM endpoint instead).
* `404 NOT_FOUND` — no embedded sales agent with this `esaId` on your account.
* `503 SERVICE_UNAVAILABLE` — the ad server is temporarily unreachable.

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

## Related

<CardGroup cols={2}>
  <Card title="Buyer routing tasks" href="/v2/storefront/buyer-routing/tasks" icon="list-check">
    All buyer-routing operations
  </Card>

  <Card title="Buyer routing overview" href="/v2/storefront/buyer-routing/overview" icon="route">
    How buyers resolve to advertisers
  </Card>

  <Card title="List GAM advertisers" href="/v2/storefront/buyer-routing/tasks/list-gam-advertisers" icon="list">
    The cached roster read for Google Ad Manager sources
  </Card>

  <Card title="Set default advertiser" href="/v2/storefront/buyer-routing/tasks/set-default-advertiser" icon="star">
    Pick the catch-all advertiser
  </Card>
</CardGroup>
