API Reference

Reference for all OnlyFans proxy endpoints. Each entry shows the HTTP method, path, query parameters, credit cost, and a real response example.

Base URL

All proxy endpoints are relative to /api. Every request must include the X-API-Key header. Credits are deducted on every successful (2xx) response.

Response Envelope

Every successful proxy response is wrapped in a consistent envelope. The raw OnlyFans data is in data; billing metadata is in _meta.

Response shape
{
  "data": { /* raw OnlyFans response */ },
  "_meta": {
    "_credits": {
      "used": 1,
      "balance": 4999
    },
    "_rate_limits": {
      "limit_minute": 60,
      "remaining_minute": 58
    }
  }
}
FieldDescription
dataRaw OnlyFans response — same structure as if you called OF directly
_meta._credits.usedCredits deducted for this request
_meta._credits.balanceRemaining credit balance after this request
_meta._rate_limits.limit_minuteYour plan's request limit per minute
_meta._rate_limits.remaining_minuteRequests remaining in the current 60-second window

Error responses are not wrapped

Only 2xx responses include the _meta envelope. Error responses (4xx, 5xx) return {"error": "...", "code": "..."} directly.

User

curl "/api/models/MODEL_UUID/users/me" \
  -H "X-API-Key: sk_live_your_key_here"
Response
{
  "data": {
    "id": 523990756,
    "name": "molly",
    "username": "mollyy2006",
    "email": "creator@onlyfans.com",
    "about": "<p>Profile bio text...</p>",
    "avatar": "https://public.onlyfans.com/files/.../avatar.jpg",
    "header": "https://public.onlyfans.com/files/.../header_image.jpg",
    "isPerformer": true,
    "isVerified": true,
    "subscribersCount": 108,
    "postsCount": 75,
    "photosCount": 88,
    "videosCount": 2,
    "subscribePrice": 20,
    "performerTop": 3.3,
    "joinDate": "2025-09-16T00:00:00+00:00"
  },
  "_meta": {
    "_credits": { "used": 1, "balance": 4999 },
    "_rate_limits": { "limit_minute": 60, "remaining_minute": 58 }
  }
}

Chats

curl "/api/models/MODEL_UUID/chats?limit=20&offset=0" \
  -H "X-API-Key: sk_live_your_key_here"
ParameterTypeDescription
limit
integerNumber of chats to returnDefault: 10
offset
integerPagination offsetDefault: 0
Response
{
  "data": {
    "hasMore": true,
    "list": [
      {
        "withUser": { "id": 553393565, "_view": "m" },
        "lastMessage": {
          "id": 9130375619415,
          "text": "<p>I caught a few mins but had to go to sleep :(</p>",
          "createdAt": "2026-04-03T15:58:51+00:00",
          "isFree": true,
          "mediaCount": 0
        },
        "unreadMessagesCount": 1,
        "canSendMessage": true,
        "isMutedNotifications": false
      }
    ],
    "nextOffset": 1
  },
  "_meta": {
    "_credits": { "used": 1, "balance": 4998 },
    "_rate_limits": { "limit_minute": 60, "remaining_minute": 57 }
  }
}
curl "/api/models/MODEL_UUID/chats/FAN_USER_ID/messages?limit=20" \
  -H "X-API-Key: sk_live_your_key_here"
ParameterTypeDescription
limit
integerNumber of messages to returnDefault: 10
id
integerFetch messages before this message ID (cursor)
Response
{
  "data": {
    "hasMore": true,
    "list": [
      {
        "id": 9130375619415,
        "text": "<p>I caught a few mins but had to go to sleep :(</p>",
        "createdAt": "2026-04-03T15:58:51+00:00",
        "fromUser": { "id": 553393565, "_view": "s" },
        "isFree": true,
        "isTip": false,
        "media": [],
        "mediaCount": 0,
        "price": 0,
        "isNew": true,
        "isOpened": false
      }
    ]
  },
  "_meta": {
    "_credits": { "used": 1, "balance": 4997 },
    "_rate_limits": { "limit_minute": 60, "remaining_minute": 56 }
  }
}
curl -X POST "/api/models/MODEL_UUID/chats/FAN_USER_ID/messages" \
  -H "X-API-Key: sk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"text": "Hey, thanks for subscribing!"}'
ParameterTypeDescription
textrequired
stringMessage content (HTML supported)
Response
{
  "data": {
    "id": 9130375619420,
    "text": "<p>Hey, thanks for subscribing!</p>",
    "createdAt": "2026-04-04T10:00:00+00:00",
    "fromUser": { "id": 523990756, "_view": "s" },
    "isFree": true,
    "isTip": false,
    "media": [],
    "mediaCount": 0,
    "price": 0
  },
  "_meta": {
    "_credits": { "used": 2, "balance": 4995 },
    "_rate_limits": { "limit_minute": 60, "remaining_minute": 55 }
  }
}
curl -X DELETE "/api/models/MODEL_UUID/messages/MESSAGE_ID?user_id=FAN_USER_ID" \
  -H "X-API-Key: sk_live_your_key_here"
ParameterTypeDescription
user_idrequired
integerThe OnlyFans fan ID in the conversation

Fans

curl "/api/models/MODEL_UUID/fans/info?user_id=553393565" \
  -H "X-API-Key: sk_live_your_key_here"
ParameterTypeDescription
user_idrequired
integerThe OnlyFans user ID of the fan
Response
{
  "data": {
    "id": 553393565,
    "name": "Marvin",
    "displayName": "✨Marvin//30",
    "username": "u553393565",
    "isPerformer": false,
    "isActive": true,
    "lastSeen": "2026-04-03T17:17:28+00:00",
    "subscribedOn": true,
    "subscribedOnData": {
      "price": 20,
      "expiredAt": "2026-04-28T05:59:14+00:00",
      "messagesSumm": 297.2,
      "totalSumm": 315.6
    },
    "listsStates": [
      { "id": "fans", "name": "Fans", "hasUser": true },
      { "id": "muted", "name": "Muted", "hasUser": false }
    ]
  },
  "_meta": {
    "_credits": { "used": 1, "balance": 4994 },
    "_rate_limits": { "limit_minute": 60, "remaining_minute": 54 }
  }
}

Payouts

curl "/api/models/MODEL_UUID/payouts/balances" \
  -H "X-API-Key: sk_live_your_key_here"
Response
{
  "data": {
    "currency": "USD",
    "payoutAvailable": 1532.03,
    "payoutPending": 1134.45,
    "maxPayoutSumm": 1532.03,
    "minPayoutSumm": 100,
    "withdrawalPeriod": "manual",
    "withdrawalPeriodOptions": [
      { "code": "manual", "name": "Manual payouts" },
      { "code": "weekly", "name": "Weekly payouts" },
      { "code": "monthly", "name": "Monthly payouts" }
    ]
  },
  "_meta": {
    "_credits": { "used": 1, "balance": 4993 },
    "_rate_limits": { "limit_minute": 60, "remaining_minute": 53 }
  }
}
curl "/api/models/MODEL_UUID/payouts/requests?limit=10&offset=0" \
  -H "X-API-Key: sk_live_your_key_here"
ParameterTypeDescription
limit
integerNumber of requests to returnDefault: 10
offset
integerPagination offsetDefault: 0
curl "/api/models/MODEL_UUID/payouts/requests/referral?limit=10&offset=0" \
  -H "X-API-Key: sk_live_your_key_here"
ParameterTypeDescription
limit
integerNumber of requests to returnDefault: 10
offset
integerPagination offsetDefault: 0
curl "/api/models/MODEL_UUID/payouts/transactions?limit=10" \
  -H "X-API-Key: sk_live_your_key_here"
ParameterTypeDescription
limit
integerNumber of transactions to returnDefault: 10
marker
integerCursor for the next page (from previous nextMarker)
Response
{
  "data": {
    "hasMore": true,
    "list": [
      {
        "id": "335a47e7c139e5ed3e079b960f7ebb2a",
        "amount": 200,
        "fee": 40,
        "net": 160,
        "currency": "USD",
        "status": "loading",
        "createdAt": "2026-04-03T10:56:26+00:00",
        "payoutPendingDays": 7,
        "user": { "id": 333276012, "displayName": "Fan Name", "username": "u333276012" }
      }
    ],
    "marker": 1775236642,
    "nextMarker": 1775212716
  },
  "_meta": {
    "_credits": { "used": 1, "balance": 4990 },
    "_rate_limits": { "limit_minute": 60, "remaining_minute": 51 }
  }
}
curl "/api/models/MODEL_UUID/payouts/stats?startDate=2026-03-01&endDate=2026-03-31" \
  -H "X-API-Key: sk_live_your_key_here"
ParameterTypeDescription
startDaterequired
stringStart date in YYYY-MM-DD format
endDaterequired
stringEnd date in YYYY-MM-DD format
Response
{
  "data": {
    "list": {
      "months": {
        "1775088000": {
          "chat_messages": [{ "gross": 37, "net": 29.6, "time": 1775001600 }],
          "subscribes":    [{ "gross": 15, "net": 12,   "time": 1775001600 }],
          "tips":          [{ "gross": 10, "net": 8,    "time": 1775001600 }],
          "total_gross": 62,
          "total_net": 49.6
        }
      },
      "total": {
        "all":           { "total_gross": 62,  "total_net": 49.6 },
        "chat_messages": { "total_gross": 37,  "total_net": 29.6 },
        "subscribes":    { "total_gross": 15,  "total_net": 12   },
        "tips":          { "total_gross": 10,  "total_net": 8    }
      }
    }
  },
  "_meta": {
    "_credits": { "used": 2, "balance": 4991 },
    "_rate_limits": { "limit_minute": 60, "remaining_minute": 52 }
  }
}