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:
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.
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.
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.
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.
It's important to note the following points before starting to code:
Last updated: 5 October 2026