We just released our native n8n integration!» Try now
OnlyFans API
Chat Messages

Send Message

Send a new message to a chat.

POST
/api/{account}/chats/{chat_id}/messages
AuthorizationBearer <token>

Get your API Key from OnlyFansAPI Console - https://app.onlyfansapi.com/api-keys

In: header

Path Parameters

accountstring

The Account ID

chat_idstring

The ID of the chat (usually a fan's OnlyFans User ID)

textstring

The message text content

replyToMessageId?integer

Mark this message as a reply to another (can be either your own, or the recipient's)

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.

rfTag?string

Array OnlyFans creator user IDs to tag in your message

Response Body

curl -X POST "https://app.onlyfansapi.com/api/string/chats/string/messages" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello!"
  }'
{
  "data": {
    "responseType": "message",
    "text": "<p>Message text</p>",
    "giphyId": null,
    "lockedText": true,
    "isFree": true,
    "price": 0,
    "isMediaReady": true,
    "mediaCount": 0,
    "media": [],
    "previews": [],
    "isTip": false,
    "isReportedByMe": false,
    "isCouplePeopleMedia": false,
    "queueId": 123,
    "isMarkdownDisabled": true,
    "releaseForms": [],
    "fromUser": {
      "id": 339543013,
      "_view": "s"
    },
    "isFromQueue": false,
    "id": 123,
    "isOpened": false,
    "isNew": true,
    "createdAt": "2025-02-03T23:29:53+00:00",
    "changedAt": "2025-02-03T23:29:53+00:00",
    "cancelSeconds": 119,
    "isLiked": false,
    "canPurchase": false,
    "canPurchaseReason": "free",
    "canReport": false,
    "canBePinned": true,
    "isPinned": false
  },
  "_pagination": {
    "next_page": "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXX/chats/XXXXXXXXX/messages?limit=10&id=XXXXXXXXX"
  },
  "_meta": {
    "_credits": {
      "used": 1,
      "balance": 1,
      "note": "Always"
    },
    "_cache": {
      "is_cached": false,
      "note": "Cache disabled for this endpoint"
    },
    "_rate_limits": {
      "limit_minute": 1000,
      "limit_day": 50000,
      "remaining_minute": 999,
      "remaining_day": 49999
    }
  }
}
{
  "error": "VALIDATION_ERROR",
  "message": "The text field is required.",
  "description": "The request parameters failed validation.",
  "errors": {
    "text": [
      "The text field is required."
    ]
  },
  "_meta": {
    "_credits": {
      "used": 0,
      "balance": 9554,
      "note": "Always"
    },
    "_cache": {
      "is_cached": false,
      "note": "Cache disabled for this endpoint"
    },
    "_rate_limits": {
      "limit_minute": 1000,
      "limit_day": 50000,
      "remaining_minute": 999,
      "remaining_day": 49999
    }
  }
}