> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ofauth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create post

> Create post

**Permission Required:** `posts:write`



## OpenAPI

````yaml https://api.ofauth.com/openapi.json post /v2/access/posts
openapi: 3.1.0
info:
  title: OFAuth API
  version: 1.0.0
  description: >-
    OFAuth API including Account, Connections, Link, Access, Dynamic Rules,
    Vault+, and Realtime webhook contracts
  contact:
    email: support@ofauth.com
    url: https://ofauth.com/
servers:
  - url: https://api.ofauth.com
security:
  - ApiKey: []
tags:
  - name: Account
    description: Account management endpoints.
  - name: Connections
    description: Connection management endpoints.
  - name: Link
    description: Link authentication and session endpoints.
  - name: Access
    description: All Access related endpoints.
  - name: Analytics
    description: 'Access: charts, tops, and performance metrics.'
  - name: Earnings
    description: 'Access: earnings charts, transactions, and chargebacks.'
  - name: Messages
    description: 'Access: messaging, chats, queue, and mass messaging.'
  - name: Posts
    description: 'Access: create, edit, list, and manage posts.'
  - name: Promotions
    description: 'Access: promotions, trials, and bundles.'
  - name: Users
    description: 'Access: user profiles, subscriptions, and actions.'
  - name: Vault
    description: 'Access: vault folders, media, and management.'
  - name: Upload
    description: 'Access: media upload and processing.'
  - name: Self
    description: 'Access: authenticated account details and settings.'
  - name: Stories
    description: 'Access: stories listing and management.'
  - name: Subscriptions
    description: 'Access: subscription offers, discounts, and management.'
  - name: Realtime
    description: >-
      Realtime webhook delivery contracts, including relayed OnlyFans websocket
      events.
  - name: Dynamic Rules
    description: Dynamic signing rules operations.
  - name: Vault+
    description: Vault+ caching and management.
externalDocs:
  description: OFAuth Developer Documentation
  url: https://docs.ofauth.com
paths:
  /v2/access/posts:
    post:
      tags:
        - Posts
      summary: Create post
      description: |-
        Create post

        **Permission Required:** `posts:write`
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  maxLength: 10000
                  default: ''
                  description: >-
                    Text content. Supports markdown by default. See [Text
                    Formatting Guide](/guides/how-to/text-formatting).
                replyToMessageId:
                  type: string
                  nullable: true
                  minLength: 1
                  description: Reply to an existing chat message
                mediaItems:
                  type: array
                  items:
                    anyOf:
                      - type: integer
                        minimum: 0
                        exclusiveMinimum: true
                        description: OnlyFans media ID
                      - type: string
                        minLength: 1
                  default: []
                  description: >-
                    Media references to attach. Accepts vault media IDs, upload
                    references (mediaUploadId), or http(s) URLs. See [mediaItems
                    reference](/guides/media-items).
                isLockedText:
                  type: boolean
                  nullable: true
                  default: false
                  description: Whether text is locked behind paywall (defaults to false).
                price:
                  type: number
                  nullable: true
                  minimum: 0
                  maximum: 200
                  default: 0
                  description: Price to unlock message content (0 for free)
                previewMediaCount:
                  type: integer
                  nullable: true
                  minimum: 0
                  default: 0
                  description: >-
                    How many items in mediaItems should be previews. Uses the
                    first N items from left to right.
                releaseForms:
                  type: object
                  properties:
                    users:
                      type: array
                      items:
                        type: integer
                        minimum: 0
                        exclusiveMinimum: true
                        description: OnlyFans user ID
                      default: []
                      description: Users to add to release form
                    partners:
                      type: array
                      items:
                        type: integer
                        minimum: 0
                        exclusiveMinimum: true
                        description: OnlyFans user ID
                      default: []
                      description: Partners to add to release form
                    guests:
                      type: array
                      items:
                        type: integer
                        minimum: 0
                        exclusiveMinimum: true
                        description: OnlyFans user ID
                      default: []
                      description: Guests to add to release form
                  description: Release form participants
                userTags:
                  type: array
                  items:
                    type: integer
                    minimum: 0
                    exclusiveMinimum: true
                    description: OnlyFans user ID
                  default: []
                  description: Users to tag
                isMarkdown:
                  type: boolean
                  nullable: true
                  default: true
                  description: >-
                    Whether to parse text as markdown (default: true). See [Text
                    Formatting Guide](/guides/how-to/text-formatting).
                scheduledDate:
                  anyOf:
                    - type: string
                    - type: string
                      format: date-time
                    - type: integer
                      minimum: 946684800000
                      maximum: 4102444800000
                    - nullable: true
                  description: >-
                    When to publish the post (omit for immediate). Use ISO 8601
                    with timezone, e.g. 2026-05-25T12:00:00.000Z, or epoch
                    milliseconds.
                fundRaisingTargetAmount:
                  type: number
                  minimum: 10
                  description: Target amount for fund raising post
                fundRaisingTipsPresets:
                  type: array
                  items:
                    type: number
                  maxItems: 4
                  description: Preset tip amounts for fund raising
                expireAfter:
                  type: number
                  minimum: 1
                  maximum: 30
                  description: Days until post expires (1-30)
                poll:
                  type: object
                  properties:
                    options:
                      type: array
                      items:
                        type: string
                        minLength: 1
                      minItems: 2
                      description: Poll answer options
                    type:
                      type: integer
                      minimum: 0
                      exclusiveMinimum: true
                      description: OnlyFans poll type
                    dueDays:
                      type: integer
                      minimum: 0
                      exclusiveMinimum: true
                      description: Number of days before the poll closes
                  required:
                    - options
                    - type
                    - dueDays
                  description: Poll attached to the post
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: number
                  canDelete:
                    type: boolean
                  canEdit:
                    type: boolean
                  mediaCount:
                    type: number
                  media:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        type:
                          type: string
                          enum:
                            - photo
                            - video
                            - gif
                            - audio
                        convertedToVideo:
                          type: boolean
                        canView:
                          type: boolean
                        hasError:
                          type: boolean
                        createdAt:
                          type: string
                        isReady:
                          type: boolean
                        duration:
                          type: number
                        releaseForms:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: number
                              name:
                                type: string
                              partnerSource:
                                type: string
                              type:
                                type: string
                              user:
                                type: object
                                properties:
                                  view:
                                    type: string
                                  id:
                                    type: number
                                  name:
                                    type: string
                                  username:
                                    type: string
                                  isVerified:
                                    type: boolean
                                  avatar:
                                    type: string
                                  avatarThumbs:
                                    type: object
                                    properties:
                                      c50:
                                        type: string
                                      c144:
                                        type: string
                                    required:
                                      - c50
                                      - c144
                                  ivStatus:
                                    type: string
                                  isFromGuest:
                                    type: boolean
                                required:
                                  - view
                                  - id
                                  - name
                                  - username
                                  - isVerified
                                  - avatar
                                  - avatarThumbs
                                  - ivStatus
                                  - isFromGuest
                            required:
                              - id
                              - name
                              - partnerSource
                              - type
                        hasCustomPreview:
                          type: boolean
                        videoSources:
                          type: object
                          properties:
                            '240':
                              type: string
                              nullable: true
                            '720':
                              type: string
                              nullable: true
                        files:
                          type: object
                          properties:
                            full:
                              type: object
                              properties:
                                url:
                                  type: string
                                width:
                                  type: number
                                height:
                                  type: number
                                size:
                                  type: number
                                sources:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      url:
                                        type: string
                                      width:
                                        type: number
                                      height:
                                        type: number
                                      type:
                                        type: string
                                    required:
                                      - url
                              required:
                                - url
                                - sources
                            thumb:
                              type: object
                              properties:
                                url:
                                  type: string
                                width:
                                  type: number
                                height:
                                  type: number
                                size:
                                  type: number
                              required:
                                - url
                            preview:
                              type: object
                              properties:
                                url:
                                  type: string
                                width:
                                  type: number
                                height:
                                  type: number
                                size:
                                  type: number
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      url:
                                        type: string
                                      width:
                                        type: number
                                      height:
                                        type: number
                                      type:
                                        type: string
                                    required:
                                      - url
                              required:
                                - url
                                - options
                            squarePreview:
                              type: object
                              properties:
                                url:
                                  type: string
                                width:
                                  type: number
                                height:
                                  type: number
                                size:
                                  type: number
                              required:
                                - url
                          required:
                            - full
                      required:
                        - id
                        - type
                        - convertedToVideo
                        - canView
                        - hasError
                        - createdAt
                        - isReady
                        - releaseForms
                  canViewMedia:
                    type: boolean
                  author:
                    type: object
                    properties:
                      id:
                        type: number
                      _view:
                        type: string
                    required:
                      - id
                      - _view
                  responseType:
                    type: string
                  postedAt:
                    type: string
                  postedAtPrecise:
                    type: string
                  isMarkdownDisabled:
                    type: boolean
                  isOpened:
                    type: boolean
                  canToggleFavorite:
                    type: boolean
                  tipsAmount:
                    type: string
                  text:
                    type: string
                  isFavorite:
                    type: boolean
                  canComment:
                    type: boolean
                  favoritesCount:
                    type: number
                  isMediaReady:
                    type: boolean
                  rawText:
                    type: string
                required:
                  - id
                  - canDelete
                  - canEdit
                  - mediaCount
                  - media
                  - canViewMedia
                  - responseType
                  - postedAt
                  - postedAtPrecise
                  - isMarkdownDisabled
                  - isOpened
                  - canToggleFavorite
                  - tipsAmount
                  - text
                  - isFavorite
                  - canComment
                  - favoritesCount
                  - isMediaReady
                  - rawText
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '429':
          description: Rate Limit Exceeded
        '500':
          description: Internal Server Error
        '502':
          description: Bad Gateway
      security:
        - ApiKey: []
          ConnectionId: []
components:
  securitySchemes:
    ApiKey:
      type: apiKey
      name: apiKey
      in: header
      description: >-
        Your OFAuth [API key](/quickstart#2-copy-your-api-key) for
        authenticating requests.
    ConnectionId:
      type: apiKey
      name: x-connection-id
      in: header
      description: >-
        Requires a [connection](/guides/connections) via the x-connection-id
        header.

````