OnlyFans API
Mass messaging

Update Mass Message

Update a mass message.

PUT
/api/{account}/mass-messaging/{id}
AuthorizationBearer <token>

You can retrieve your token by visiting the OnlyFansAPI Console and clicking API Keys -> Create API Key.

In: header

Path Parameters

accountstring

The Account ID

idstring

The ID of the mass messaging.

queue_idstring

The ID of the message queue item. Can be retrieved from the above store and list endpoints.

userLists?array<string>

Array of user list IDs that the mass message will be sent to.

userIds?array<string>

Array of user IDs that the mass message will be sent to.

textstring

The message text content

lockedText?boolean

Whether the text should be shown or hidden

price?integer

Price for paid content (0 or between 3-200). In case this is not zero, mediaFiles is required

mediaFiles?array<string>

Array of media file upload prefixed_ids, or OF media IDs (required if price is not 0). Will be hidden if price is provided.

previews?array<string>

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.

scheduledDate?string

Schedule the chat message in the future (UTC timezone).

Response Body

curl -X PUT "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging/tempora" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello!"
  }'
const body = JSON.stringify({
  "text": "Hello!"
})

fetch("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging/tempora", {
  body
})
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
  "strings"
)

func main() {
  url := "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging/tempora"
  body := strings.NewReader(`{
    "text": "Hello!"
  }`)
  req, _ := http.NewRequest("PUT", 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/tempora"
body = {
  "text": "Hello!"
}
response = requests.request("PUT", 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/tempora"))
  .header("Content-Type", "application/json")
  .PUT(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.PutAsync("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/mass-messaging/tempora", body);
var responseBody = await response.Content.ReadAsStringAsync();
{
  "data": {
    "id": 123,
    "date": "2025-01-01T01:01:01+01:01",
    "isReady": true,
    "isDone": false,
    "total": -1,
    "pending": 0,
    "canUnsend": true,
    "unsendSeconds": 1000000,
    "hasError": false,
    "isCanceled": false,
    "isCouplePeopleMedia": false
  },
  "_meta": {
    "_credits": {
      "used": 1,
      "balance": 999999919,
      "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": 49942
    }
  }
}