List Chat Messages
Changed onGet messages from a specific chat. Use filter=pinned or List Pinned Chat Messages to retrieve only pinned messages. Follow _pagination.next_page until it is null; a short page can still have more results. For messages sent by the connected account, seenByFan is true if the fan has seen the message and false otherwise. It is null for messages sent by the fan or when read status is unavailable.
Request
- Base URLhttps://app.onlyfansapi.com
- URLhttps://app.onlyfansapi.com/api/{account}/chats/{chat_id}/messages
- AuthHTTP bearer
Query parameters
The number of messages to return (default = 10, max = 100)
Filter by certain messages. Currently, only pins are filterable.
Use for pagination when order=desc (newest to oldest). Pass the last message ID from the previous page to retrieve older messages, excluding that cursor message.
Use for pagination when order=asc (oldest to newest). Include this message ID as the first message in the results. WARNING! The response list of messages will also be inverted (oldest messages will be first, opposite to default where order=desc).
Sort order for messages (desc or asc)
Whether to skip user details (all or none).
Response
Success
Example response
{
"data": [
{
"responseType": "message",
"text": "<p>yes lets do it</p>",
"giphyId": null,
"lockedText": false,
"isFree": true,
"price": 0,
"isMediaReady": true,
"mediaCount": 0,
"media": [],
"previews": [],
"isTip": false,
"isReportedByMe": false,
"isCouplePeopleMedia": false,
"queueId": 12345678901,
"isMarkdownDisabled": true,
"releaseForms": [],
"fromUser": {
"id": 987654321,
"_view": "s"
},
"isFromQueue": false,
"id": 1234567890123,
"isOpened": false,
"isNew": true,
"createdAt": "2025-09-02T21:02:18+00:00",
"changedAt": "2025-09-02T21:02:18+00:00",
"cancelSeconds": 86396,
"isLiked": false,
"canPurchase": false,
"canPurchaseReason": "free",
"canReport": false,
"canBePinned": true,
"isPinned": false,
"isSentByMe": true,
"seenByFan": false
},
{
"responseType": "message",
"text": "<p>Are you ready for video call now ? </p>",
"giphyId": null,
"lockedText": false,
"isFree": true,
"price": 0,
"isMediaReady": true,
"mediaCount": 1,
"media": [
{
"id": 9876543210,
"type": "video",
"convertedToVideo": false,
"canView": true,
"hasError": false,
"createdAt": null,
"isReady": true,
"files": {
"full": {
"url": null,
"width": 480,
"height": 848,
"size": 0,
"sources": []
},
"thumb": {
"url": "https://cdn2.onlyfans.com/files/ANONYMIZED_PATH/300x300_ANONYMIZED_FILENAME.jpg?Tag=2&u=987654321&Policy=ANONYMIZED_POLICY&Signature=ANONYMIZED_SIGNATURE&Key-Pair-Id=ANONYMIZED_KEY_PAIR_ID",
"width": 300,
"height": 300,
"size": 0
},
"preview": {
"url": "https://cdn2.onlyfans.com/files/ANONYMIZED_PATH/480x848_ANONYMIZED_FILENAME.jpg?Tag=2&u=987654321&Policy=ANONYMIZED_POLICY&Signature=ANONYMIZED_SIGNATURE&Key-Pair-Id=ANONYMIZED_KEY_PAIR_ID",
"width": 480,
"height": 848,
"size": 0
},
"squarePreview": {
"url": "https://cdn2.onlyfans.com/files/ANONYMIZED_PATH/960x960_ANONYMIZED_FILENAME.jpg?Tag=2&u=987654321&Policy=ANONYMIZED_POLICY&Signature=ANONYMIZED_SIGNATURE&Key-Pair-Id=ANONYMIZED_KEY_PAIR_ID",
"width": 960,
"height": 960,
"size": 0
},
"drm": {
"manifest": {
"hls": "https://cdn3.onlyfans.com/hls/files/ANONYMIZED_PATH/ANONYMIZED_FILENAME.m3u8",
"dash": "https://cdn3.onlyfans.com/dash/files/ANONYMIZED_PATH/ANONYMIZED_FILENAME.mpd"
},
"signature": {
"hls": {
"CloudFront-Policy": "ANONYMIZED_CLOUDFRONT_POLICY",
"CloudFront-Signature": "ANONYMIZED_CLOUDFRONT_SIGNATURE",
"CloudFront-Key-Pair-Id": "ANONYMIZED_CLOUDFRONT_KEY_PAIR_ID"
},
"dash": {
"CloudFront-Policy": "ANONYMIZED_CLOUDFRONT_POLICY",
"CloudFront-Signature": "ANONYMIZED_CLOUDFRONT_SIGNATURE",
"CloudFront-Key-Pair-Id": "ANONYMIZED_CLOUDFRONT_KEY_PAIR_ID"
}
}
}
},
"duration": 9,
"hasCustomPreview": false,
"videoSources": {
"240": null,
"720": null
}
}
],
"previews": [],
"isTip": false,
"isReportedByMe": false,
"isCouplePeopleMedia": false,
"queueId": 12345678902,
"isMarkdownDisabled": true,
"fromUser": {
"id": 123456789,
"_view": "s"
},
"isFromQueue": true,
"canUnsendQueue": true,
"unsendSecondsQueue": 1000000,
"id": 1234567890124,
"isOpened": false,
"isNew": false,
"createdAt": "2025-09-02T20:35:13+00:00",
"changedAt": "2025-09-02T20:35:13+00:00",
"cancelSeconds": 85047,
"isLiked": false,
"canPurchase": false,
"canPurchaseReason": "free",
"canReport": true,
"canBePinned": true,
"isPinned": false,
"isSentByMe": false,
"seenByFan": null
}
],
"_pagination": {
"next_page": "https://app.onlyfansapi.com/api/acct_ANONYMIZED_ACCOUNT_ID/chats/987654321/messages?order=desc&skip_users=all&id=1234567890125"
},
"_meta": {
"_credits": {
"used": 1,
"balance": 224891,
"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": 49984
}
}
}Changes
- info
added the required property
//to the response with the status
- info
- breaking
the response property
//became nullable for the status - warning
deleted the
queryrequest parameterid - info
api operation id
listChatMessageremoved and replaced withlistChatMessages - info
api tag
Chat Messagesadded - info
api tag
Chatsremoved - info
added the new optional
queryrequest parameterfilter - info
added the new optional
queryrequest parameterfirst_id - info
added the new optional
queryrequest parameterlast_id - info
added the new optional
queryrequest parameterlimit
- breaking