Skip to main content
POST
/
v2
/
access
/
posts
Create post
curl --request POST \
  --url https://api-next.ofauth.com/v2/access/posts \
  --header 'Content-Type: application/json' \
  --header 'apiKey: <api-key>' \
  --header 'x-connection-id: <api-key>' \
  --data '
{
  "text": "",
  "mediaItems": [],
  "isLockedText": false,
  "price": 0,
  "previewMediaCount": 0,
  "releaseForms": {
    "users": [],
    "partners": [],
    "guests": []
  },
  "userTags": [],
  "isMarkdown": true,
  "scheduledDate": "<string>",
  "fundRaisingTargetAmount": 11,
  "fundRaisingTipsPresets": [
    123
  ],
  "expireAfter": 15.5
}
'
{
  "id": 123,
  "canDelete": true,
  "canEdit": true,
  "mediaCount": 123,
  "media": [
    {
      "id": 123,
      "type": "photo",
      "convertedToVideo": true,
      "canView": true,
      "hasError": true,
      "createdAt": "<string>",
      "isReady": true,
      "releaseForms": [
        {
          "id": 123,
          "name": "<string>",
          "partnerSource": "<string>",
          "type": "<string>",
          "user": {
            "view": "<string>",
            "id": 123,
            "name": "<string>",
            "username": "<string>",
            "isVerified": true,
            "avatar": "<string>",
            "avatarThumbs": {
              "c50": "<string>",
              "c144": "<string>"
            },
            "ivStatus": "<string>",
            "isFromGuest": true
          }
        }
      ],
      "duration": 123,
      "hasCustomPreview": true,
      "videoSources": {
        "240": "<string>",
        "720": "<string>"
      },
      "files": {
        "full": {
          "url": "<string>",
          "sources": [
            {
              "url": "<string>",
              "width": 123,
              "height": 123,
              "type": "<string>"
            }
          ],
          "width": 123,
          "height": 123,
          "size": 123
        },
        "thumb": {
          "url": "<string>",
          "width": 123,
          "height": 123,
          "size": 123
        },
        "preview": {
          "url": "<string>",
          "options": [
            {
              "url": "<string>",
              "width": 123,
              "height": 123,
              "type": "<string>"
            }
          ],
          "width": 123,
          "height": 123,
          "size": 123
        },
        "squarePreview": {
          "url": "<string>",
          "width": 123,
          "height": 123,
          "size": 123
        }
      }
    }
  ],
  "canViewMedia": true,
  "responseType": "<string>",
  "postedAt": "<string>",
  "postedAtPrecise": "<string>",
  "isMarkdownDisabled": true,
  "isOpened": true,
  "canToggleFavorite": true,
  "tipsAmount": "<string>",
  "text": "<string>",
  "isFavorite": true,
  "canComment": true,
  "favoritesCount": 123,
  "isMediaReady": true,
  "rawText": "<string>",
  "author": {
    "id": 123,
    "_view": "<string>"
  }
}

Authorizations

apiKey
string
header
required

Your OFAuth API key for authenticating requests.

x-connection-id
string
header
required

Requires a connection via the x-connection-id header.

Body

application/json
text
string
default:""

Text content. Supports markdown by default. See Text Formatting Guide.

Maximum string length: 10000
mediaItems
(integer | string)[]

Media references to attach. Accepts vault media IDs, upload references (mediaUploadId), or http(s) URLs. See mediaItems reference.

OnlyFans media ID

Required range: x > 0
isLockedText
boolean | null
default:false

Whether text is locked behind paywall (defaults to false).

price
number | null
default:0

Price to unlock message content (0 for free)

Required range: 0 <= x <= 200
previewMediaCount
integer | null
default:0

How many items in mediaItems should be previews. Uses the first N items from left to right.

Required range: x >= 0
releaseForms
object

Release form participants

userTags
integer[]

Users to tag

OnlyFans user ID

Required range: x > 0
isMarkdown
boolean | null
default:true

Whether to parse text as markdown (default: true). See Text Formatting Guide.

scheduledDate
string

When to publish the post (omit for immediate)

fundRaisingTargetAmount
number

Target amount for fund raising post

Required range: x >= 10
fundRaisingTipsPresets
number[]

Preset tip amounts for fund raising

Maximum array length: 4
expireAfter
number

Days until post expires (1-30)

Required range: 1 <= x <= 30

Response

Successful response

id
number
required
canDelete
boolean
required
canEdit
boolean
required
mediaCount
number
required
media
object[]
required
canViewMedia
boolean
required
responseType
string
required
postedAt
string
required
postedAtPrecise
string
required
isMarkdownDisabled
boolean
required
isOpened
boolean
required
canToggleFavorite
boolean
required
tipsAmount
string
required
text
string
required
isFavorite
boolean
required
canComment
boolean
required
favoritesCount
number
required
isMediaReady
boolean
required
rawText
string
required
author
object