curl --request POST \
--url https://api.fanvue.com/v1/creators/{creatorUserUuid}/chats/mass-messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>' \
--data '
{
"includedLists": {
"smartListIds": [],
"customListUuids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}
'import requests
url = "https://api.fanvue.com/v1/creators/{creatorUserUuid}/chats/mass-messages"
payload = { "includedLists": {
"smartListIds": [],
"customListUuids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
} }
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
includedLists: {smartListIds: [], customListUuids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']}
})
};
fetch('https://api.fanvue.com/v1/creators/{creatorUserUuid}/chats/mass-messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"uuid": "f1e2d3c4-b5a6-9788-c0d1-e2f3a4b5c6d7",
"publishedAt": "2024-01-15T00:00:00.000Z",
"recipientCount": 1250
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}Send a mass message as creator
Send a message to multiple users based on selected lists as a creator.
If scheduledAt (or alias scheduled_at) is provided, the message is queued for scheduled delivery instead of being sent immediately.
curl --request POST \
--url https://api.fanvue.com/v1/creators/{creatorUserUuid}/chats/mass-messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>' \
--data '
{
"includedLists": {
"smartListIds": [],
"customListUuids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}
'import requests
url = "https://api.fanvue.com/v1/creators/{creatorUserUuid}/chats/mass-messages"
payload = { "includedLists": {
"smartListIds": [],
"customListUuids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
} }
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
includedLists: {smartListIds: [], customListUuids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']}
})
};
fetch('https://api.fanvue.com/v1/creators/{creatorUserUuid}/chats/mass-messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"uuid": "f1e2d3c4-b5a6-9788-c0d1-e2f3a4b5c6d7",
"publishedAt": "2024-01-15T00:00:00.000Z",
"recipientCount": 1250
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}write:chat— Create new chats and send messages. This scope is required for any chat-related actions that modify data.read:creator— Access creator profiles, content, and creator-specific information.read:fan— Access fan-related data and information within the platform.
Authorizations
OAuth 2.0 access token, presented as a JWT bearer token in the Authorization header. Obtain a token via the authorization-code flow; the scopes granted to the token determine which operations it may call.
Headers
API version to use for the request
"2025-06-26"
Opaque key that makes a send safe to retry. A mass send can take longer than the request timeout, and the campaign is already committed by then, so retrying without a key can deliver the broadcast twice. Reuse the same key on a retry: the original result is replayed once the first attempt finished, and a retry while it is still running is rejected with 409 rather than starting a second send. A key reused for a different message is rejected with 409 too, so pick a new one per send. Keys are scoped to your app and the sending creator, and are remembered for 24 hours.
255Path Parameters
Body
Show child attributes
Show child attributes
1 - 5000UUID of a single media item shown for free as a preview of a pay-to-view mass message. Requires a price and attached media.
x >= 300Show child attributes
Show child attributes
Optional scheduled date/time in ISO 8601 format. Alias scheduled_at is also accepted.
Response
Mass message sent successfully
UUID of the created mass message
When the message was sent, or null when it is scheduled for later
Recipients resolved from the given lists at the time of this request. A scheduled message re-resolves its recipients at send time, so this is a preview and GET /chats/mass-messages reports 0 until it sends.
Was this page helpful?