Send Mass Message
Send a mass message to lists and/or users. You may use both the `userLists` and `userIds` parameters to send the same message to both lists and individual users.
You can retrieve your token by visiting the OnlyFansAPI Console and clicking API Keys -> Create API Key.
In: header
Path Parameters
The Account ID
Array of user list IDs that the mass message will be sent to.
Array of user IDs that the mass message will be sent to.
The message text content
Whether the text should be shown or hidden
Price for paid content (0 or between 3-200). In case this is not zero, mediaFiles is required
Array of media file upload prefixed_ids, or OF media IDs (required if price is not 0). Will be hidden if price
is provided.
Array of media file upload prefixed_ids, or OF media IDs (required if price is not 0). Will be shown if price
is provided. All previews
values must also exist in the mediaFiles
array.
Schedule the chat message in the future (UTC timezone).
Add your message to the "Saved for later" queue.
Response Body
curl -X POST "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging" \
-H "Content-Type: application/json" \
-d '{
"text": "Hello!"
}'
const body = JSON.stringify({
"text": "Hello!"
})
fetch("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging", {
body
})
package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging"
body := strings.NewReader(`{
"text": "Hello!"
}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
import requests
url = "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging"
body = {
"text": "Hello!"
}
response = requests.request("POST", url, json = body, headers = {
"Content-Type": "application/json"
})
print(response.text)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.net.http.HttpRequest.BodyPublishers;
var body = BodyPublishers.ofString("""{
"text": "Hello!"
}""");
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging"))
.header("Content-Type", "application/json")
.POST(body)
.build();
try {
HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
System.out.println("Status code: " + response.statusCode());
System.out.println("Response body: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}
using System;
using System.Net.Http;
using System.Text;
var body = new StringContent("""
{
"text": "Hello!"
}
""", Encoding.UTF8, "application/json");
var client = new HttpClient();
var response = await client.PostAsync("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging", body);
var responseBody = await response.Content.ReadAsStringAsync();
{
"data": {
"id": 123,
"date": "2025-01-01T01:01:01+00:00",
"isReady": true,
"isDone": false,
"total": -1,
"pending": 0,
"canUnsend": true,
"unsendSeconds": 1000000,
"hasError": false,
"isCanceled": false,
"isCouplePeopleMedia": false
},
"_meta": {
"_credits": {
"used": 1,
"balance": 967,
"note": "Always"
},
"_cache": {
"is_cached": false,
"note": "Cache disabled for this endpoint"
},
"_rate_limits": {
"limit_minute": 1000,
"limit_day": 50000,
"remaining_minute": 998,
"remaining_day": 49992
}
}
}