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
}
}
}| Field | Description |
|---|---|
data | Raw OnlyFans response — same structure as if you called OF directly |
_meta._credits.used | Credits deducted for this request |
_meta._credits.balance | Remaining credit balance after this request |
_meta._rate_limits.limit_minute | Your plan's request limit per minute |
_meta._rate_limits.remaining_minute | Requests 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"| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of chats to returnDefault: 10 |
offset | integer | Pagination 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"| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of messages to returnDefault: 10 |
id | integer | Fetch 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!"}'| Parameter | Type | Description |
|---|---|---|
textrequired | string | Message 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"| Parameter | Type | Description |
|---|---|---|
user_idrequired | integer | The 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"| Parameter | Type | Description |
|---|---|---|
user_idrequired | integer | The 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"| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of requests to returnDefault: 10 |
offset | integer | Pagination offsetDefault: 0 |
curl "/api/models/MODEL_UUID/payouts/requests/referral?limit=10&offset=0" \
-H "X-API-Key: sk_live_your_key_here"| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of requests to returnDefault: 10 |
offset | integer | Pagination offsetDefault: 0 |
curl "/api/models/MODEL_UUID/payouts/transactions?limit=10" \
-H "X-API-Key: sk_live_your_key_here"| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of transactions to returnDefault: 10 |
marker | integer | Cursor 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"| Parameter | Type | Description |
|---|---|---|
startDaterequired | string | Start date in YYYY-MM-DD format |
endDaterequired | string | End 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 }
}
}