Mass Messaging

Send Mass Message

Changed on

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.

post/api/{account}/mass-messaging

Request

  • Base URL
    https://app.onlyfansapi.com
  • URL
    https://app.onlyfansapi.com/api/{account}/mass-messaging
  • Auth
    HTTP bearer

Request body

userListsstring[]

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

excludedListsstring[]

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

userIdsstring[]

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

subscribedWithinLastDaysinteger

Only send to fans who subscribed within the last N calendar days (1-30, including today). Can be combined with userLists and userIds. Cannot be combined with scheduledDate or saveForLater.

textstring required

The message text content

lockedTextboolean

Whether the text should be shown or hidden

pricenumber

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

giphyIdstring

The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing endpoints (/giphy/trending, /giphy/search).

rfTagstring

Array of OnlyFans Creator User IDs to tag in your mass message

rfPartnerstring

Array of OnlyFans Release Form Partners IDs to tag in your mass message

rfGueststring

Array of OnlyFans Release Form Guest IDs to tag in your mass message

scheduledDatestring

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

saveForLaterboolean

Add your message to the "Saved for later" queue.

blockBannedWords'strict_ban' | 'risky' | 'replace_soften'

Screen text for OnlyFans banned words and block the send if any are found (returns a 422 listing the offending words). strict_ban blocks all tiers, risky blocks Risky + Replace/soften, replace_soften blocks Replace/soften only. Omit to disable screening.

Example request

{
  "userLists": [
    "fans",
    "recent",
    "following",
    "rebill_off",
    "tagged",
    1234567890
  ],
  "excludedLists": [
    "fans",
    "recent",
    "following",
    "rebill_off",
    "tagged",
    1234567890
  ],
  "userIds": [
    1234567890
  ],
  "text": "Hello!",
  "lockedText": true,
  "price": 6.97,
  "mediaFiles": [
    "ofapi_media_abc123",
    1234567890
  ],
  "previews": [
    "ofapi_media_abc123",
    1234567890
  ],
  "giphyId": "WAGC3LeqJvXglm5H7a",
  "scheduledDate": "2025-01-01T00:00:00.000Z",
  "saveForLater": true,
  "blockBannedWords": "strict_ban"
}

Response

Example response

{
  "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
    }
  }
}

Changes

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      the request property type was generalized from integer to number

    • breaking

      the / request property type changed from string to file[]|string

    • breaking

      the / request property type changed from string to file[]|string[]|int

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property