Fansly API LogoFansly API
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*
string
The unique identifier for the connected account.

Query Parameters

cursor ?
string
Used 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

FieldTypeDescription
statusCodenumberThe HTTP status code of the response (e.g., 200)
messagestringA human-readable message about the result
dataobjectThe main response payload
├─ status_codenumberThe internal status code of the Fansly operation
├─ nextCursorstring | nullThe cursor for the next page of results (the last messageId)
└─ dataobjectNested data container
└─ responseobjectContainer for the unread chats data
├─ totalnumberTotal number of unread interactions available
└─ messageInteractionsarrayA list of message interaction objects
├─ messageIdstringThe ID of the unread message
├─ groupIdstringThe unique ID for the chat group
├─ userIdstringThe ID of the recipient user/partner
├─ deliveredAtnumberUnix timestamp of when the message was delivered
├─ readAtnumber | nullUnix timestamp of when the message was read, if applicable
├─ deletedAtnumber | nullUnix timestamp of when the message was deleted, if applicable
├─ attachmentsarrayList of attachments included in the message
└─ validMessagebooleanIndicates if the message is valid
timestampstringThe ISO 8601 timestamp of when the response was generated

On this page