Chats
Get Unread Chats
Get the list of unread chats and message interactions for an Account.
https://v1.apifansly.com/api/fansly
GET
/{account_id}/chats/unread
Get Started
All requests to the Fansly API require an API Key. See the Authentication page for details.
curl -X GET "https://v1.apifansly.com/api/fansly/{account_id}/chats/unread" \
-H "x-api-key: YOUR_API_KEY"fetch("https://v1.apifansly.com/api/fansly/{account_id}/chats/unread", {
method: "GET",
headers: {
"x-api-key": "YOUR_API_KEY"
}
})import requests
url = "https://v1.apifansly.com/api/fansly/{account_id}/chats/unread"
headers = {
"x-api-key": "YOUR_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.json())import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://v1.apifansly.com/api/fansly/{account_id}/chats/unread"))
.header("x-api-key", "YOUR_API_KEY")
.GET()
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var response = await client.GetAsync("https://v1.apifansly.com/api/fansly/{account_id}/chats/unread");
var responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://v1.apifansly.com/api/fansly/{account_id}/chats/unread"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}Path Parameters
account_id*
stringThe unique identifier for the connected account.
Query Parameters
cursor ?
stringUsed for pagination to fetch the next set of results. For this endpoint, it corresponds to the `messageId` of the last item in the previous response.
Response
{
"statusCode": 200,
"message": "Success",
"data": {
"status_code": 200,
"data": {
"success": true,
"response": {
"total": total_count,
"messageInteractions": [
{
"messageId": "message_id_string",
"groupId": "group_id_string",
"userId": "user_id_string",
"deliveredAt": "delivered_at_unix_timestamp",
"readAt": "read_at_unix_timestamp | null",
"deletedAt": "deleted_at_unix_timestamp | null",
"attachments": ["attachment_1", "attachment_2"],
"validMessage": true
}
]
},
"nextCursor": "next_cursor_message_id_string"
}
},
"timestamp": "2026-05-18T12:00:00.000Z"
}Response Body
| Field | Type | Description |
|---|---|---|
statusCode | number | The HTTP status code of the response (e.g., 200) |
message | string | A human-readable message about the result |
data | object | The main response payload |
├─ status_code | number | The internal status code of the Fansly operation |
├─ nextCursor | string | null | The cursor for the next page of results (the last messageId) |
└─ data | object | Nested data container |
└─ response | object | Container for the unread chats data |
├─ total | number | Total number of unread interactions available |
└─ messageInteractions | array | A list of message interaction objects |
├─ messageId | string | The ID of the unread message |
├─ groupId | string | The unique ID for the chat group |
├─ userId | string | The ID of the recipient user/partner |
├─ deliveredAt | number | Unix timestamp of when the message was delivered |
├─ readAt | number | null | Unix timestamp of when the message was read, if applicable |
├─ deletedAt | number | null | Unix timestamp of when the message was deleted, if applicable |
├─ attachments | array | List of attachments included in the message |
└─ validMessage | boolean | Indicates if the message is valid |
timestamp | string | The ISO 8601 timestamp of when the response was generated |