Skip to main content
GET /api/v2/storefront/esa/{esaId}/recent-buyers Lists the buyers a GAM-backed embedded sales agent has recently seen and shows whether each resolved through the default advertiser or a specific mapping. Use it to find buyers booking against the catch-all that should have their own advertiser mapping.

Request

curl "https://api.interchange.io/api/v2/storefront/esa/123/recent-buyers?days=30&limit=100" \
  -H "Authorization: Bearer $SCOPE3_API_KEY"

Parameters

FieldTypeRequiredNotes
esaIdintegerYesPath. Embedded sales-agent connection id
daysintegerNoQuery. Lookback window in days, max 365
limitintegerNoQuery. Max buyers to return, max 1000

Response

{
  "buyers": [
    {
      "operatorDomain": "buyer.example",
      "brandHouse": "Acme Holdings",
      "brandId": "acme-beverages",
      "requestCount": 47,
      "resolvedVia": "mapping",
      "resolvedGamAdvertiserId": "4567890123",
      "lastSeenAt": "2026-06-06T18:42:00.000Z"
    },
    {
      "operatorDomain": "newbuyer.example",
      "brandHouse": null,
      "brandId": null,
      "requestCount": 3,
      "resolvedVia": "default",
      "resolvedGamAdvertiserId": "9988776655",
      "lastSeenAt": "2026-06-07T09:10:00.000Z"
    }
  ]
}
resolvedVia tells you how the buyer routed: mapping if a per-buyer override matched, default if it fell through to the catch-all advertiser. resolvedGamAdvertiserId is the advertiser the buyer actually booked against. requestCount is the total number of requests seen from this buyer in the lookback window. brandHouse and brandId may be null.

Errors

  • 400 VALIDATION_ERROResaId is not a positive integer, or the ESA is not Google Ad Manager-backed.
See Errors for the full error contract.

Buyer routing tasks

All buyer-routing operations

Create buyer mapping

Map a buyer off the default

List buyer mappings

See existing overrides

Set default advertiser

The fallback for unmatched buyers