OnlyFans API
Chats

List Chats

Get the list of chats for an Account.

GET
/api/{account}/chats
AuthorizationBearer <token>

You can retrieve your token by visiting the OnlyFansAPI Console and clicking API Keys -> Create API Key.

In: header

Path Parameters

accountstring

The Account ID

Query Parameters

limit?string

Number of chats to return (10, 20, or 30)

offset?string

Number of chats to skip for pagination

skip_users?string

Whether to skip user details in response (all or none)

order?string

Sort order for chats (recent or old)

query?string

Search query to filter chats

Response Body

curl -X GET "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/chats?limit=10&skip_users=all&order=recent&query=John"
fetch("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/chats?limit=10&skip_users=all&order=recent&query=John")
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {
  url := "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/chats?limit=10&skip_users=all&order=recent&query=John"

  req, _ := http.NewRequest("GET", url, nil)
  
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
import requests

url = "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/chats?limit=10&skip_users=all&order=recent&query=John"

response = requests.request("GET", url)

print(response.text)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;

HttpClient client = HttpClient.newBuilder()
  .connectTimeout(Duration.ofSeconds(10))
  .build();

HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
  .uri(URI.create("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/chats?limit=10&skip_users=all&order=recent&query=John"))
  .GET()
  .build();

try {
  HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
  System.out.println("Status code: " + response.statusCode());
  System.out.println("Response body: " + response.body());
} catch (Exception e) {
  e.printStackTrace();
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var response = await client.GetAsync("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/chats?limit=10&skip_users=all&order=recent&query=John");
var responseBody = await response.Content.ReadAsStringAsync();
{
  "data": [
    {
      "canNotSendReason": false,
      "canSendMessage": true,
      "canGoToProfile": true,
      "unreadMessagesCount": 1,
      "hasUnreadTips": false,
      "isMutedNotifications": false,
      "lastMessage": {
        "responseType": "message",
        "text": "<p>Message text</p>",
        "giphyId": null,
        "lockedText": false,
        "isFree": true,
        "price": 0,
        "isMediaReady": true,
        "mediaCount": 0,
        "media": [],
        "previews": [],
        "isTip": false,
        "isReportedByMe": false,
        "isCouplePeopleMedia": false,
        "queueId": 123,
        "isMarkdownDisabled": true,
        "fromUser": {
          "id": 123,
          "_view": "i"
        },
        "isFromQueue": true,
        "canUnsendQueue": true,
        "unsendSecondsQueue": 1000000,
        "id": 123,
        "isOpened": false,
        "isNew": true,
        "createdAt": "2025-01-01T01:01:01+00:00",
        "changedAt": "2025-01-01T01:01:01+00:00",
        "cancelSeconds": 86268,
        "isLiked": false,
        "canPurchase": false,
        "canPurchaseReason": "free",
        "canReport": true,
        "canBePinned": true,
        "isPinned": false
      },
      "lastReadMessageId": 0,
      "hasPurchasedFeed": false,
      "countPinnedMessages": 0,
      "fan": {
        "id": 123,
        "name": "Name",
        "view": "f",
        "about": "<p>About</p>",
        "avatar": "https://public.onlyfans.com/files/.../avatar.jpg",
        "header": "https://public.onlyfans.com/files/.../header.jpg",
        "notice": "",
        "canChat": true,
        "canEarn": true,
        "tipsMax": 200,
        "tipsMin": 5,
        "website": null,
        "hasLinks": false,
        "isFriend": false,
        "joinDate": "2025-01-01T01:01:01+00:00",
        "lastSeen": "2025-01-01T01:01:01+00:00",
        "location": "Location",
        "username": "username",
        "wishlist": null,
        "canReport": true,
        "hasLabels": true,
        "hasStream": false,
        "isBlocked": false,
        "hasFriends": false,
        "hasStories": false,
        "headerSize": {
          "width": 767,
          "height": 1152
        },
        "isVerified": true,
        "postsCount": 123,
        "audiosCount": 0,
        "canRestrict": true,
        "displayName": "",
        "isPerformer": true,
        "listsStates": [
          {
            "id": "following",
            "name": "Following",
            "type": "following",
            "hasUser": true,
            "canAddUser": false,
            "cannotAddUserReason": "ALREADY_EXISTS"
          },
          {
            "id": "fans",
            "name": "Fans",
            "type": "fans",
            "hasUser": true,
            "canAddUser": false,
            "cannotAddUserReason": "ALREADY_EXISTS"
          },
          {
            "id": "rebill_off",
            "name": "Renew Off",
            "type": "rebill_off",
            "hasUser": false,
            "canAddUser": false,
            "cannotAddUserReason": null
          },
          {
            "id": "rebill_on",
            "name": "Renew On",
            "type": "rebill_on",
            "hasUser": true,
            "canAddUser": false,
            "cannotAddUserReason": "ALREADY_EXISTS"
          },
          {
            "id": "recent",
            "name": "Recent (last 24 hours)",
            "type": "recent",
            "hasUser": false,
            "canAddUser": false,
            "cannotAddUserReason": "SYSTEM_LIST"
          },
          {
            "id": "friends",
            "name": "Friends",
            "type": "friends",
            "hasUser": false,
            "canAddUser": true,
            "cannotAddUserReason": null
          },
          {
            "id": "muted",
            "name": "Muted",
            "type": "muted",
            "hasUser": false,
            "canAddUser": true,
            "cannotAddUserReason": null
          },
          {
            "id": "tagged",
            "name": "Tagged",
            "type": "tagged",
            "hasUser": false,
            "canAddUser": false,
            "cannotAddUserReason": "SYSTEM_LIST"
          }
        ],
        "mediasCount": 123,
        "photosCount": 123,
        "tipsEnabled": true,
        "videosCount": 123,
        "avatarThumbs": {
          "c50": "https://thumbs.onlyfans.com/.../avatar.jpg",
          "c144": "https://thumbs.onlyfans.com/.../avatar.jpg"
        },
        "canLookStory": true,
        "canTrialSend": false,
        "headerThumbs": {
          "w480": "https://thumbs.onlyfans.com/.../header.jpg",
          "w760": "https://thumbs.onlyfans.com/.../header.jpg"
        },
        "isRestricted": false,
        "subscribedBy": true,
        "subscribedOn": true,
        "canCreateTrial": false,
        "canPayInternal": true,
        "canUnsubscribe": true,
        "favoritedCount": 123,
        "favoritesCount": 123,
        "hasPinnedPosts": false,
        "isAdultContent": false,
        "showMediaCount": true,
        "subscribePrice": 0,
        "canCommentStory": true,
        "hasSavedStreams": false,
        "isRealPerformer": true,
        "showPostsInFeed": true,
        "tipsMinInternal": 1,
        "tipsTextEnabled": true,
        "canAddSubscriber": false,
        "subscribedByData": {
          "price": 0,
          "status": null,
          "isMuted": false,
          "duration": "22 days",
          "newPrice": 0,
          "expiredAt": "2025-01-01T01:01:01+00:00",
          "renewedAt": "2025-01-01T01:01:01+00:00",
          "subscribes": [
            {
              "id": 123,
              "date": "2025-01-01T01:01:01+00:00",
              "type": "regular",
              "price": 0,
              "action": "subscribe",
              "userId": 123,
              "discount": 0,
              "duration": 123,
              "offerEnd": null,
              "earningId": 0,
              "isCurrent": true,
              "startDate": "2025-01-01T01:01:01+00:00",
              "cancelDate": null,
              "expireDate": "2025-01-01T01:01:01+00:00",
              "offerStart": null,
              "regularPrice": 0,
              "subscriberId": 123
            }
          ],
          "subscribeAt": "2025-01-01T01:01:01+00:00",
          "regularPrice": 0,
          "discountPeriod": 1,
          "subscribePrice": 0,
          "discountPercent": 0,
          "showPostsInFeed": true,
          "discountStartedAt": null,
          "unsubscribeReason": "No reason given",
          "discountFinishedAt": null,
          "hasActivePaidSubscriptions": false
        },
        "subscribedOnData": {
          "price": 0,
          "status": null,
          "isMuted": false,
          "duration": "22 days",
          "newPrice": 0,
          "tipsSumm": 0,
          "expiredAt": "2025-01-01T01:01:01+00:00",
          "postsSumm": 0,
          "renewedAt": "2025-01-01T01:01:01+00:00",
          "totalSumm": 0,
          "subscribes": [
            {
              "id": 123,
              "date": "2025-01-01T01:01:01+00:00",
              "type": "auto",
              "price": 0,
              "action": "subscribe",
              "userId": 123,
              "discount": 0,
              "duration": 123,
              "offerEnd": null,
              "earningId": 0,
              "isCurrent": true,
              "startDate": "2025-01-01T01:01:01+00:00",
              "cancelDate": null,
              "expireDate": "2025-01-01T01:01:01+00:00",
              "offerStart": null,
              "regularPrice": 0,
              "subscriberId": 123
            }
          ],
          "streamsSumm": 0,
          "subscribeAt": "2025-01-01T01:01:01+00:00",
          "messagesSumm": 0,
          "regularPrice": 4.99,
          "discountPeriod": 1,
          "subscribePrice": 4.99,
          "subscribesSumm": 0,
          "discountPercent": 0,
          "discountStartedAt": null,
          "unsubscribeReason": "No reason given",
          "discountFinishedAt": null,
          "hasActivePaidSubscriptions": false
        },
        "subscribersCount": null,
        "hasNotViewedStory": false,
        "isPaywallRequired": true,
        "isReferrerAllowed": true,
        "isSpringConnected": false,
        "archivedPostsCount": 0,
        "canCreatePromotion": false,
        "hasScheduledStream": false,
        "isSpotifyConnected": false,
        "subscribedByExpire": false,
        "finishedStreamsCount": 0,
        "isPendingAutoprolong": false,
        "isPrivateRestriction": false,
        "showSubscribersCount": false,
        "subscribedOnDuration": "22 days",
        "canReceiveChatMessage": true,
        "currentSubscribePrice": 0,
        "firstPublishedPostDate": "2025-01-01T01:01:01+00:00",
        "subscribedByExpireDate": "2025-01-01T01:01:01+00:00",
        "subscribedIsExpiredNow": false,
        "subscribedOnExpiredNow": false,
        "subscribedByAutoprolong": true,
        "privateArchivedPostsCount": 0,
        "shouldShowFinishedStreams": false,
        "isMarkdownDisabledForAbout": true,
        "avatarHeaderConverterUpload": true
      }
    }
  ],
  "_pagination": {
    "next_page": "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXX/chats?offset=10&limit=10"
  },
  "_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
    }
  }
}