Skip to main content
POST
/
api
/
{account}
/
posts
Send Post
curl --request POST \
  --url https://app.onlyfansapi.com/api/{account}/posts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "text": "Hello!",
  "labelIds": [
    123
  ],
  "mediaFiles": [
    "ofapi_media_abc123",
    "1234567890"
  ],
  "rfTag": [
    123
  ],
  "expireDays": 3,
  "scheduledDate": "2025-01-01T00:00:00.000Z",
  "saveForLater": true,
  "fundRaisingTargetAmount": 30,
  "fundRaisingTipsPresets": [
    5,
    10,
    15
  ],
  "votingType": "poll",
  "votingDue": 3,
  "votingOptions": [
    "First option",
    "Second option"
  ],
  "votingCorrectIndex": 0
}'
{
  "data": {
    "author": {
      "view": "a",
      "avatar": "https://public.onlyfans.com/files/.../avatar.jpg",
      "avatarThumbs": {
        "c50": "https://thumbs.onlyfans.com/public/files/thumbs/.../avatar.jpg",
        "c144": "https://thumbs.onlyfans.com/public/files/thumbs/.../avatar.jpg"
      },
      "header": "https://public.onlyfans.com/files/.../header_image.jpg",
      "headerSize": {
        "width": 4032,
        "height": 3024
      },
      "headerThumbs": {
        "w480": "https://thumbs.onlyfans.com/public/files/thumbs/w480/.../header_image.jpg",
        "w760": "https://thumbs.onlyfans.com/public/files/thumbs/w760/.../header_image.jpg"
      },
      "id": 123,
      "name": "Name",
      "username": "username",
      "canLookStory": true,
      "canCommentStory": true,
      "hasNotViewedStory": false,
      "isVerified": true,
      "canPayInternal": true,
      "hasScheduledStream": false,
      "hasStream": false,
      "hasStories": false,
      "tipsEnabled": false,
      "tipsTextEnabled": true,
      "tipsMin": 5,
      "tipsMinInternal": 1,
      "tipsMax": 200,
      "canEarn": true,
      "canAddSubscriber": false,
      "subscribePrice": 4.99,
      "hasStripe": false,
      "isStripeExist": false,
      "subscriptionBundles": [],
      "canSendChatToAll": true,
      "creditsMin": 10,
      "creditsMax": 200,
      "isPaywallPassed": true,
      "canCreateLists": true,
      "showMediaCount": true,
      "showPostsInFeed": true,
      "subscribedBy": true,
      "canTrialSend": false
    },
    "responseType": "post",
    "id": 123,
    "postedAt": "2025-01-01T01:01:01+00:00",
    "postedAtPrecise": "123.000000",
    "text": "Text",
    "isMarkdownDisabled": true,
    "canDelete": true,
    "canComment": true,
    "canEdit": true,
    "mediaCount": 1,
    "isOpened": true,
    "canToggleFavorite": true,
    "tipsAmount": "$0",
    "rawText": "Text",
    "media": [
      {
        "id": 123,
        "type": "photo",
        "convertedToVideo": false,
        "canView": true,
        "hasError": false,
        "createdAt": "2025-01-01T00:00:00+00:00",
        "isReady": false,
        "files": {
          "full": {
            "url": null,
            "width": 0,
            "height": 0,
            "size": 0,
            "sources": []
          },
          "thumb": null,
          "preview": null,
          "squarePreview": null
        },
        "duration": 0,
        "releaseForms": [],
        "hasCustomPreview": false
      }
    ],
    "canViewMedia": true
  },
  "_meta": {
    "_credits": {
      "used": 1,
      "balance": 999999991,
      "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": 49990
    }
  }
}

Authorizations

Authorization
string
header
required

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

Path Parameters

account
string
required

The Account ID

Body

application/json
text
string
required

The post text content

Example:

"Hello!"

labelIds
string

Array of OF label IDs. Refer to our /posts/labels endpoint.

Example:
[123]
mediaFiles
string

Array of OFAPI ofapi_media_ IDs, or OF media IDs

Example:
["ofapi_media_abc123", "1234567890"]
rfTag
string

Array OnlyFans creator user IDs to tag in your post

Example:
[123]
expireDays
integer

Number of days after which the post will expire. Can be 1, 3, 7 or 30 days. Keep empty for no expiration.

Example:

3

scheduledDate
string

Schedule your post in the future (UTC timezone).

Example:

"2025-01-01T00:00:00.000Z"

saveForLater
boolean

Add your post to the "Saved for later" queue.

Example:

true

fundRaisingTargetAmount
integer

Add a fundraising target to your post. If present, value must be at least 10.

Example:

30

fundRaisingTipsPresets
string[]

Specify which tip amounts will be listed under the fundraising card. Required with fundRaisingTargetAmount, and you must provide at least 1 option. Array items cannot be higher than the fundRaisingTargetAmount.

Example:
[5, 10, 15]
votingType
enum<string>

Include a poll or quiz within your post.

Available options:
poll,
quiz
Example:

"poll"

votingDue
integer

The due date (in days) of your poll/quiz. Can be 1, 3, 7 or 30 days. Can only be filled with votingType.

Example:

3

votingOptions
string[]

The options of your poll/quiz. Required with votingType.

Example:
["First option", "Second option"]
votingCorrectIndex
integer

The array key of your quiz' correct answer. Required when votingType is "quiz". Keep in mind that arrays start at 0

Example:

0

Response

200 - application/json

Success

data
object
_meta
object