> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

## Resource: Introduction

## Article: Introduction

## Article Link: https://dev.wix.com/docs/api-reference/business-management/notifications/audiences/audience-v1/introduction.md

## Article Content:

# About the Audience Service API

The Audience Service API lets you resolve audiences, groups of participants defined by a set of criteria, into the individual participants that make them up. For example, you can resolve "contacts with the `VIP` label" or "collaborators with the `Content Writer` role" into the specific people they represent.

With the Audience Service API, you can:

- Discover which audience providers are currently available to you.
- Resolve one or more audiences into their individual participants.
- Estimate the number of participants in an audience before resolving them.

## Audience providers

This API doesn't hardcode the audiences it can resolve. Instead, other Wix apps register audience providers, and this API acts as a facade that discovers the available providers and delegates to the right one. Retrieve the currently available providers by calling [List Audience Providers](https://dev.wix.com/docs/api-reference/business-management/notifications/audiences/audience-v1/list-audience-providers.md).

Each provider declares an `inputSchema`, a JSON schema describing the parameters it needs to resolve an audience. For example, a labels-based contacts provider might require a `labelIds` array. You build an audience by pairing a provider's `id` with the input parameters its schema requires.

You aren't limited to provider-based audiences. You can also pass an explicit list of participants directly, for example when you already know exactly which Wix users or contacts to include.

Every provider also declares one or more scopes:

- `SPECIFIC_SITE`: The provider's participants only make sense in the context of one particular site, such as that site's contacts. Call the API in that site's context.
- `NON_SPECIFIC_SITE`: The provider's participants are relevant at the account level, independent of any single site, such as an account's Wix users. You can call the API without a specific site context.

A provider can declare both scopes if it's able to resolve participants in either context. Scope only affects which providers appear when you call List Audience Providers with a given `scope` filter. It's not enforced when you call List Participants or Count Participants: it's up to the provider itself to return the right participants for the context it's called in.

## Estimating audience size before resolving participants

Some providers also support counting. This is especially useful when you're not resolving participants immediately, for example when a client is creating a task or an automation that will notify an audience at a later time. In that case, you can call Count Participants upfront to get an estimated size, and only call List Participants when the automation actually runs and you need to notify the resolved participants. This also helps when acting on an audience has a cost, such as sending a paid notification, and you want to estimate that cost before committing to it.

Not every provider supports counting. Check a provider's `implementedMethods.countParticipants` field, returned from List Audience Providers, to see whether it supports an exact count. When a provider doesn't support counting, the count for that provider is `1` instead of an exact number. If a provider supports counting but fails to return a count, the request fails.

## Getting full participant data

By default, participants are returned with only their identifying information, such as a Wix user ID or a contact ID. To also retrieve the full connected entity, for example a contact's name and email or a Wix user's profile details, request enriched data. Enriched contact data comes from the [Contacts API](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts/contact-v4/introduction.md).

## Before you begin

It's important to note the following points before starting to code:

- Audience providers are registered by other Wix apps. You can't create a provider through this API; you can only discover and use the providers that are already available.
- To retrieve providers and participants scoped to a specific site, call the API in that site's context.

## Use cases

- [Resolve an audience into participants](https://dev.wix.com/docs/api-reference/business-management/notifications/audiences/audience-v1/sample-flows.md#resolve-an-audience-into-participants)
- [Estimate audience size before resolving participants](https://dev.wix.com/docs/api-reference/business-management/notifications/audiences/audience-v1/sample-flows.md#estimate-audience-size-before-resolving-participants)

## Terminology

- **Participant:** An identity that's part of an audience. A participant is a Wix user, a contact, or an anonymous person identified only by an email address, a phone number, or both.
- **Audience:** A group of participants, defined by an audience provider and a set of input parameters specific to that provider.
- **Audience provider:** An app component that knows how to resolve one specific kind of audience into a list of participants.

@sdk_package_setup