API Keys
Connect OnlyFans Account
Payouts
Public Profiles
Statistics / Reach
Statistics / Statements
Tracking Links
Transactions
Users
Chats
List ChatMessage
Get messages from a specific chat.
GET
/
api
/
{account}
/
chats
/
{chat_id}
/
messages
curl --request GET \
--url https://app.onlyfansapi.com/api/{account}/chats/{chat_id}/messages \
--header 'Authorization: Bearer <token>'
{
"data": {
"list": [
{
"responseType": "message",
"text": "<p>Message text</p>",
"giphyId": null,
"lockedText": false,
"isFree": true,
"price": 0,
"isMediaReady": true,
"mediaCount": 1,
"media": [
{
"id": 3581806503,
"type": "photo",
"convertedToVideo": false,
"canView": true,
"hasError": false,
"createdAt": null,
"isReady": true,
"files": {
"full": {
"url": "https://cdn2.onlyfans.com/files/...",
"width": 3840,
"height": 5760,
"size": 0,
"sources": []
}
},
"duration": 0,
"hasCustomPreview": false
}
],
"previews": [],
"isTip": false,
"isReportedByMe": false,
"isCouplePeopleMedia": false,
"queueId": 123,
"isMarkdownDisabled": true,
"fromUser": {
"id": 458485726,
"_view": "s"
},
"isFromQueue": false,
"id": 123,
"isOpened": false,
"isNew": false,
"createdAt": "2025-01-27T23:34:25+00:00",
"changedAt": "2025-01-27T23:34:25+00:00",
"cancelSeconds": 0,
"isLiked": false,
"canPurchase": false,
"canPurchaseReason": "free",
"canReport": true,
"canBePinned": true,
"isPinned": false
}
],
"hasMore": true
},
"_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
}
}
}
Authorizations
You can retrieve your token by visiting the OnlyFansAPI Console and clicking API Keys -> Create API Key.
Path Parameters
The Account ID
The ID of the chat (usually a fan's OnlyFans User ID)
Query Parameters
Number of messages to return (10, 20, or 30)
Example:
10
ID of the last message from previous page. Used for pagination
Example:
111222333
Sort order for messages (desc or asc)
Example:
"desc"
Whether to skip user details (all or none)
Example:
"all"
Response
200 - application/json
Success
The response is of type object
.
curl --request GET \
--url https://app.onlyfansapi.com/api/{account}/chats/{chat_id}/messages \
--header 'Authorization: Bearer <token>'
{
"data": {
"list": [
{
"responseType": "message",
"text": "<p>Message text</p>",
"giphyId": null,
"lockedText": false,
"isFree": true,
"price": 0,
"isMediaReady": true,
"mediaCount": 1,
"media": [
{
"id": 3581806503,
"type": "photo",
"convertedToVideo": false,
"canView": true,
"hasError": false,
"createdAt": null,
"isReady": true,
"files": {
"full": {
"url": "https://cdn2.onlyfans.com/files/...",
"width": 3840,
"height": 5760,
"size": 0,
"sources": []
}
},
"duration": 0,
"hasCustomPreview": false
}
],
"previews": [],
"isTip": false,
"isReportedByMe": false,
"isCouplePeopleMedia": false,
"queueId": 123,
"isMarkdownDisabled": true,
"fromUser": {
"id": 458485726,
"_view": "s"
},
"isFromQueue": false,
"id": 123,
"isOpened": false,
"isNew": false,
"createdAt": "2025-01-27T23:34:25+00:00",
"changedAt": "2025-01-27T23:34:25+00:00",
"cancelSeconds": 0,
"isLiked": false,
"canPurchase": false,
"canPurchaseReason": "free",
"canReport": true,
"canBePinned": true,
"isPinned": false
}
],
"hasMore": true
},
"_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
}
}
}
Assistant
Responses are generated using AI and may contain mistakes.