We just released our native n8n integration!ยป Try now
OnlyFans API
Engagement / Messages

Direct Messages

List sent direct messages with engagement stats (sent, viewed, purchased, etc.).

GET
/api/{account}/engagement/messages/direct-messages
AuthorizationBearer <token>

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

In: header

Path Parameters

account*string

The Account ID

Query Parameters

startDate?string

The earliest message to retrieve. Keep empty to get all.

endDate?string

The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER startDate. This is also used for pagination.

limit?integer

Number of messages to return (default = 10)

query?string

Optionally, filter by message text.

offset?integer

Optional offset for manual pagination.

Response Body

application/json

curl -X GET "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/engagement/messages/direct-messages?startDate=2026-01-07+00%3A00%3A00&endDate=2026-02-06+01%3A26%3A15&limit=10&query=sciss&offset=0"
{
  "data": {
    "hasMore": true,
    "items": [
      {
        "id": 2233445566,
        "date": "2026-02-06T01:20:15+00:00",
        "responseType": "message",
        "text": "<p>SCISSORS</p>",
        "rawText": "SCISSORS",
        "giphyId": null,
        "isFree": false,
        "isMediaReady": true,
        "mediaCount": 1,
        "media": [
          {
            "id": 3344556677,
            "type": "photo",
            "convertedToVideo": false,
            "canView": true,
            "hasError": false,
            "createdAt": "2025-03-30T23:06:00+00:00",
            "isReady": true,
            "files": {
              "full": {
                "url": "https://cdn.example.com/files/placeholder/image.jpg",
                "width": 2801,
                "height": 3735,
                "size": 0,
                "sources": []
              },
              "thumb": {
                "url": "https://cdn.example.com/files/placeholder/thumb.jpg",
                "width": 300,
                "height": 300,
                "size": 0
              },
              "preview": {
                "url": "https://cdn.example.com/files/placeholder/preview.jpg",
                "width": 960,
                "height": 1281,
                "size": 0
              },
              "squarePreview": {
                "url": "https://cdn.example.com/files/placeholder/square.jpg",
                "width": 960,
                "height": 960,
                "size": 0
              }
            },
            "duration": 0,
            "hasCustomPreview": false,
            "videoSources": {
              "240": null,
              "720": null
            }
          }
        ],
        "previews": [],
        "isTip": false,
        "isReportedByMe": false,
        "viewedCount": 0,
        "sentCount": 1,
        "isCanceled": false,
        "template": "direct",
        "messageId": 4455667788990,
        "toUserId": 55667788,
        "canUnsend": true,
        "unsendSeconds": 1000000,
        "price": "29.99",
        "purchasedCount": 0,
        "canSendMessageToBuyers": false
      }
    ]
  },
  "_pagination": {
    "next_page": "https://app.onlyfansapi.com/api/acct_XXXXXXXXXX/engagement/messages/direct-messages?endDate=2026-02-06%2002%3A53%3A05&limit=10"
  },
  "_meta": {
    "_credits": {
      "used": 1,
      "balance": 999999959,
      "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": 49988
    }
  }
}