> ## Documentation Index
> Fetch the complete documentation index at: https://docs.onlyfansapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send Mass Message (/api-reference/fansly/mass-messaging/send-mass-message)

Send a broadcast to the recipients defined by a broadcast `groupId`. Provide `text`, one or more media IDs in `mediaFiles`, or both. Pass a future `scheduledFor` (Unix timestamp in milliseconds) to schedule it instead of sending immediately — scheduled broadcasts can later be edited or cancelled. The `groupId` (which encodes the recipient filters) is configured on the Fansly dashboard; you can reuse a `groupId` returned by the List Scheduled Mass Messages endpoint.

Attached media can be gated with any combination of the `requirePurchase`, `requireSubscription`, and `requireFollow` options (they stack — e.g. a media can require both a subscription and a purchase). The gating applies to all attached media: a single file, or the whole bundle when several are attached. When none of the gating options are sent, media keeps the default (subscription-gated) visibility.

Any attached media can be given a free preview — a separate media shown unlocked while the paid media is locked — via `previews`, a map of `mediaFiles` handle to preview handle.

## OpenAPI

````yaml https://app.onlyfansapi.com/scribe-fansly-docs/openapi.yaml post /api/fansly/{fanslyAccount}/mass-messaging
openapi: 3.0.3
info:
  title: Fansly API Documentation
  description: ""
  version: 1.0.0
servers:
  - url: https://app.onlyfansapi.com
security:
  - default: []
tags:
  - name: Account
    description: Endpoints for your linked Fansly accounts
  - name: Chat Messages
    description: Endpoints for Fansly chats (messaging groups)
  - name: Chats
    description: Endpoints for Fansly chats (messaging groups)
  - name: Connect Fansly Account
    description: ""
  - name: Earnings
    description: Endpoints for Fansly Earnings — wallets, balances, transactions,
      payouts, and statements.
  - name: Followers
    description: Endpoints for Fansly followers.
  - name: Following
    description: Endpoints for the accounts a Fansly Account is following.
  - name: Lists
    description: Endpoints for Fansly subscriber/fan lists (e.g. "VIP", "Spenders").
  - name: Mass Messaging
    description: Endpoints for Fansly mass messages (broadcasts) — send one message
      to many recipients at once, and manage scheduled broadcasts.
  - name: Media
    description: Upload media for use in Fansly posts and messages
  - name: Posts
    description: Endpoints for Fansly wall posts.
  - name: Profile Statistics
    description: Endpoints for Fansly Profile Statistics (viewer engagement insights).
  - name: Subscribers
    description: Endpoints for Fansly subscribers and subscription tiers.
  - name: Subscription Discounts
    description: Endpoints for Fansly subscription discounts (shown as "Gift Links"
      in the Fansly Dashboard).
  - name: Top Supporters
    description: Endpoints for the Fansly "Top Supporters" view — see who spends the
      most and what they spend on.
  - name: Tracking Links
    description: Endpoints for Fansly tracking links — per-source attribution links
      (e.g. "Twitter bio", "FYP", "Search").
  - name: Users
    description: APIs for fetching Fansly users
  - name: Walls
    description: Endpoints for Fansly walls — the tabbed feeds on a creator profile
      that posts are published to.
paths:
  /api/fansly/{fanslyAccount}/mass-messaging:
    parameters:
      - in: path
        name: fanslyAccount
        description: The Fansly Account ID
        example: fansly_acct_XXXXXXXXXXXXXXX
        required: true
        schema:
          type: string
    post:
      summary: Send Mass Message
      operationId: sendMassMessage
      description: >-
        Send a broadcast to the recipients defined by a broadcast `groupId`.
        Provide `text`, one or more media IDs in `mediaFiles`, or both. Pass a
        future `scheduledFor` (Unix timestamp in milliseconds) to schedule it
        instead of sending immediately — scheduled broadcasts can later be
        edited or cancelled. The `groupId` (which encodes the recipient filters)
        is configured on the Fansly dashboard; you can reuse a `groupId`
        returned by the List Scheduled Mass Messages endpoint.


        Attached media can be gated with any combination of the
        `requirePurchase`, `requireSubscription`, and `requireFollow` options
        (they stack — e.g. a media can require both a subscription and a
        purchase). The gating applies to all attached media: a single file, or
        the whole bundle when several are attached. When none of the gating
        options are sent, media keeps the default (subscription-gated)
        visibility.


        Any attached media can be given a free preview — a separate media shown
        unlocked while the paid media is locked — via `previews`, a map of
        `mediaFiles` handle to preview handle.
      parameters: []
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                type: object
                example:
                  data: broadcast sent
                  _meta:
                    _credits:
                      used: 1
                      balance: 10055789
                      note: Always
                    _cache:
                      is_cached: false
                      note: Cache disabled for this endpoint
                    _rate_limits:
                      limit_minute: 5000
                      limit_day: null
                      remaining_minute: 4999
                      remaining_day: null
                      notice: We have decided to remove our daily rate limits. Please remove any
                        references to these in your integrations.
                properties:
                  data:
                    type: string
                    example: broadcast sent
                  _meta:
                    type: object
                    properties:
                      _credits:
                        type: object
                        properties:
                          used:
                            type: integer
                            example: 1
                          balance:
                            type: integer
                            example: 10055789
                          note:
                            type: string
                            example: Always
                      _cache:
                        type: object
                        properties:
                          is_cached:
                            type: boolean
                            example: false
                          note:
                            type: string
                            example: Cache disabled for this endpoint
                      _rate_limits:
                        type: object
                        properties:
                          limit_minute:
                            type: integer
                            example: 5000
                          limit_day:
                            type: string
                            example: null
                            nullable: true
                          remaining_minute:
                            type: integer
                            example: 4999
                          remaining_day:
                            type: string
                            example: null
                            nullable: true
                          notice:
                            type: string
                            example: We have decided to remove our daily rate limits. Please remove any
                              references to these in your integrations.
      tags:
        - Mass Messaging
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                groupId:
                  type: string
                  description: The broadcast group ID defining the recipients. Reuse a `groupId`
                    from the List Scheduled Mass Messages endpoint.
                  example: "200000000000000020"
                text:
                  type: string
                  description: The message text content. Required unless `mediaFiles` is provided.
                  example: Hey everyone, new content is live!
                mediaFiles:
                  type: array
                  description: Media to attach, as `fansly_media_` upload IDs returned by the
                    Upload Media endpoint. A single item is sent as one
                    attachment; multiple are grouped into a bundle.
                  example:
                    - fansly_media_01JR1234
                  items:
                    type: string
                requirePurchase:
                  type: boolean
                  description: Require the fan to purchase (unlock) the attached media. Requires
                    `price`. Combinable with `requireSubscription` /
                    `requireFollow`.
                  example: false
                price:
                  type: integer
                  description: Unlock price for `requirePurchase`, in Fansly's smallest unit —
                    1000 = $1.00 (e.g. 10000 = $10.00). Required when
                    `requirePurchase` is true.
                  example: 10000
                requireSubscription:
                  type: boolean
                  description: Require the fan to be subscribed to view the attached media.
                    Combinable with `requirePurchase` / `requireFollow`.
                  example: false
                subscriptionTierId:
                  type: string
                  description: Restrict `requireSubscription` to a single subscription tier. Tier
                    IDs come from the List Subscription Tiers endpoint. Omit for
                    any tier.
                  example: "843584256474116096"
                requireFollow:
                  type: boolean
                  description: Require the fan to follow the account to view the attached media.
                    Combinable with `requirePurchase` / `requireSubscription`.
                  example: false
                previews:
                  type: object
                  description: Free previews for attached media, as a map of a `mediaFiles` handle
                    to a `fansly_media_` preview upload. Each preview is shown
                    unlocked while its (gated) media is locked. Only include
                    media that should have a preview.
                  example:
                    fansly_media_01JR1234: fansly_media_01JR5678
                  properties: {}
                scheduledFor:
                  type: integer
                  description: Unix timestamp in milliseconds to schedule the broadcast for the
                    future. Keep empty (or 0) to send immediately.
                  example: 1785110911809
              required:
                - groupId
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: Get your API Key from OnlyFansAPI Console -
        https://app.onlyfansapi.com/api-keys
````