Overview
Mass messaging allows you to send a single message to many users efficiently. Instead of sending individual messages, you can target entire audience segments defined by:- Smart Lists: Pre-built audience segments (subscribers, followers, expired subscribers, etc.)
- Custom Lists: User-created lists for custom audience targeting
The Two-Step Flow
Step 1: Discover Available Lists- Fetch smart lists to see pre-built audience segments
- Fetch custom lists to see user-created segments
- Optionally fetch members to preview recipients
- Select lists to include (required)
- Optionally select lists to exclude
- Send with text, media, or pay-to-view content
Authentication Required
Mass messaging requires OAuth with these scopes:write:chat- Permission to send messagesread:fan- Permission to read fan/subscriber data
Prerequisites
- OAuth authentication with required scopes (see note above)
- Basic familiarity with REST APIs
- Understanding of your Fanvue audience structure
Step 1: Discovering Your Lists
Before sending a mass message, you need to know which lists are available. There are two types:Smart Lists (Pre-built Audiences)
Smart lists are automatically maintained audience segments based on user behavior and relationships.Fetch All Smart Lists
uuid is one of the fixed identifiers below. The key is named uuid for backward
compatibility, but the value is a fixed identifier string, never a real UUID.
Available Smart List identifiers:
These are a fixed, predefined set of lowercase string identifiers — not UUIDs, despite the
uuid key above and the legacy smartListUuids field name used when sending a mass message:
subscribers- Users with an active subscriptionauto_renewing- Subscribers whose subscription will auto-renewnon_renewing- Subscribers who have turned off auto-renewfollowers- Users following you without an active subscriptionfree_trial_subscribers- Subscribers currently on a free trialexpired_subscribers- Users whose subscription has expiredspent_more_than_50- Users who have spent more than $50muted- Users you have mutedcreators- Creators you have a chat with
Smart list identifiers are lowercase with underscores and come from the fixed set listed above.
They are not UUIDs — do not build a UUID validator for smart list identifiers. Only
customListUuids accepts real UUIDs.Preview Smart List Members (Optional)
Custom Lists (User-created Audiences)
Custom lists are manually created segments for specific targeting.Fetch All Custom Lists
Preview Custom List Members (Optional)
TypeScript Example: Fetching Lists
Step 2: Sending Mass Messages
Once you know your available lists, you can send a mass message to one or more lists.Basic Mass Message Request
Request Schema
smartListIds is the current field name. It replaced smartListUuids, which was
misleading because the values were never UUIDs. smartListUuids is retained as a deprecated
alias and is still accepted on includedLists and excludedLists, so existing integrations
keep working — but new code should send smartListIds. If both are present, smartListIds
wins. Responses echo both fields for backward compatibility; smartListUuids will be removed
in a future API version.- Must provide either
textormediaUuids(or both) - At least one list must be included
- If
priceis set,mediaUuidsmust be provided - Price must be in cents (e.g., 999 = $9.99) with a minimum of 200 (i.e., $2.00)
- Smart list identifiers are lowercase (e.g.,
"subscribers", not"SUBSCRIBERS")
Practical Examples
Example 1: Send to All Subscribers
Example 2: Send to Multiple Lists
Target both active and expired subscribers:Example 3: Send to Custom List with Exclusions
Send to VIP list but exclude users who already received a similar message:Example 4: Send Pay-to-View Message with Media
Send a message with media that requires payment to unlock:Price is specified in cents. In this example,
999 represents 2.00).Example 5: Combine Smart and Custom Lists
Complete TypeScript Implementation
Here’s a full example combining list discovery and mass messaging:Best Practices
1. Start Small
When testing, start with a small custom list or use the preview feature to understand your audience:2. Handle Rate Limits
The mass messages endpoint has rate limits. Handle them gracefully:3. Validate Before Sending
4. Track Send History
Store mass message results for analytics:Troubleshooting
”At least one list must be provided”
Ensure you’re providing at least one list inincludedLists:
“Smart list not found”
Smart list identifiers must be lowercase:403 Forbidden Error
Verify you have the required OAuth scopes:write:chatread:fan
Empty recipientCount
IfrecipientCount is 0, the lists might be empty or exclusions removed all recipients:
Additional Resources
- OAuth Authentication - Set up OAuth with required scopes
- API Reference: Send Mass Message - Full endpoint documentation
- API Reference: Chat Lists - List endpoints reference
- Rate Limits - Understanding API rate limits