---
title: "Audience Purchasers"
method: GET
path: "/v2/campaigns/{id}/audiences/{audience_id}/purchasers"
tags: ["Campaigns V2"]
---

# Audience Purchasers

`GET /v2/campaigns/{id}/audiences/{audience_id}/purchasers`

## Request

- Base URL: `https://api.superwall.com`
- URL: `https://api.superwall.com/v2/campaigns/{id}/audiences/{audience_id}/purchasers`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `accounts_superwall_token`
  - HTTP bearer

Returns purchasers (transaction_complete events) for this audience's experiment in the last 24 hours (newest first), with `total` set to the purchase count for the window. Requires campaigns:read scope.

## Path parameters

- `id` string, required
- `audience_id` string, required

## Query parameters

- `limit` string

## Response `200`

Audience users / purchasers list

- object: Audience users / purchasers list
  - `object` 'list', required: Object type, always `list`
  - `data` object[], required: Rows, newest first
    - `id` string, nullable, required: Latest event id for the user
    - `app_user_id` string, required: App user identifier
    - `application_user_id` number, nullable, required
    - `application_user_alias_id` string, nullable, required
    - `vendor_id` string, nullable, required
    - `aliases` string[], nullable, required
    - `ip_address` string, nullable, required
    - `name` string, nullable, required: Event name
    - `timestamp` string, nullable, required
    - `inserted_at` string, nullable, required
    - `device_install_timestamp` string, nullable, required
    - `platform` string, nullable, required
    - `app_version` string, nullable, required
    - `device_os_version` string, nullable, required
    - `source` string, nullable, required
    - `device` string, nullable, required
    - `device_model` string, nullable, required
    - `device_locale` string, nullable, required
    - `device_language_code` string, nullable, required
    - `device_currency_code` string, nullable, required
    - `device_currency_symbol` string, nullable, required
    - `sdk_version` string, nullable, required
    - `radio_type` string, nullable, required
    - `device_interface_style` string, nullable, required
    - `bundle_id` string, nullable, required
    - `low_power_mode` string, nullable, required
    - `placement` string, nullable, required: Placement (trigger/presented-by event name) that matched the user
    - `product_id` string, nullable, required
    - `variant_id` number, nullable, required: Assigned variant id
    - `experiment_id` number, nullable, required
    - `matches` number, nullable, required: Number of matches in the window (users table only; null for purchasers)
    - `properties` unknown, required
  - `total` number, required: Total unique users / purchasers in the window (not limited by `limit`)

## Other responses

- `400`: The request did not match the expected schema | The request was invalid or malformed
- `401`: No API key was provided in the request | The API key does not have a valid format | The API key is invalid or has been revoked | An error occurred while validating the API key | The session cookie is invalid or expired
- `403`: The API key does not have permission to perform this action
- `404`: The requested resource was not found
- `429`: Too many requests have been made in a short period
- `500`: An unexpected error occurred on the server

## Changes

- **2026-10-29** `778a11cd2c15`: 5 warning, 2 info
  - added the new `credentials_missing` enum value to the `anyOf[subschema #2]/code` response property for the response status `400`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `403`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `404`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `429`
  - …3 more
- **2026-09-09** `217c96dc9a29`: 18 breaking, 123 info
  - the `code` response's property type changed from `string` to no type for status `403`
  - the `code` response's property type changed from `string` to no type for status `404`
  - the `code` response's property type changed from `string` to no type for status `429`
  - the `code` response's property type changed from `string` to no type for status `500`
  - …137 more
  - …this revision’s changelog is incomplete

[Operation history](https://skmtc.dev/superwall/apis/superwall-api-v2/changes/v2/campaigns/:id/audiences/:audience_id/purchasers/get.md)

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) - [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/superwall/apis/superwall-api-v2/revisions/523b4734dfab?raw)
