OnlyFans API
Posts

List Posts

Get posts from your OnlyFans account.

GET
/api/{account}/posts
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

query?string

Search query to filter posts

limit?integer

Number of posts to return (default = 10)

offset?integer

Number of posts to skip for pagination

order?string

Order the returned posts (default = publish_date)

Value in"publish_date" | "favorites_count" | "tips_summ"
sort?string

Sort the returned posts (default = desc)

Value in"desc" | "asc"
pinned?boolean

Set to true to only show pinned posts

counters?boolean

Set to true to include an array of counters (see example responses)

minimumPublishDate?string

Filter posts by minimum publish date

Response Body

curl -X GET "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/posts?query=Hello&limit=10&order=publish_date&sort=desc&pinned=true&counters=true&minimumPublishDate=2025-06-26"
fetch("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/posts?query=Hello&limit=10&order=publish_date&sort=desc&pinned=true&counters=true&minimumPublishDate=2025-06-26")
package main

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

func main() {
  url := "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/posts?query=Hello&limit=10&order=publish_date&sort=desc&pinned=true&counters=true&minimumPublishDate=2025-06-26"

  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/posts?query=Hello&limit=10&order=publish_date&sort=desc&pinned=true&counters=true&minimumPublishDate=2025-06-26"

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/posts?query=Hello&limit=10&order=publish_date&sort=desc&pinned=true&counters=true&minimumPublishDate=2025-06-26"))
  .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/posts?query=Hello&limit=10&order=publish_date&sort=desc&pinned=true&counters=true&minimumPublishDate=2025-06-26");
var responseBody = await response.Content.ReadAsStringAsync();
{
  "data": {
    "list": [
      {
        "author": {
          "id": 123,
          "_view": "a"
        },
        "responseType": "post",
        "id": 123,
        "postedAt": "2025-01-01T01:01:01+00:00",
        "postedAtPrecise": "1234567890.000000",
        "text": "<p>Text</p>",
        "isMarkdownDisabled": true,
        "canDelete": true,
        "canComment": true,
        "canEdit": true,
        "isMediaReady": true,
        "isOpened": true,
        "canToggleFavorite": true,
        "tipsAmount": "$0",
        "rawText": "Text",
        "canViewMedia": true
      }
    ],
    "hasMore": false,
    "headMarker": "1234567890.000000",
    "tailMarker": "1234567890.000000",
    "counters": {
      "audiosCount": 123,
      "photosCount": 123,
      "videosCount": 123,
      "mediasCount": 123,
      "postsCount": 123,
      "streamsCount": 123,
      "archivedPostsCount": 123,
      "privateArchivedPostsCount": 123
    }
  },
  "_meta": {
    "_credits": {
      "used": 1,
      "balance": 999999886,
      "note": "Always"
    },
    "_cache": {
      "is_cached": false,
      "note": "Cache disabled for this endpoint"
    },
    "_rate_limits": {
      "limit_minute": 1000,
      "limit_day": 50000,
      "remaining_minute": 998,
      "remaining_day": 49896
    }
  }
}