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

# Upload Media to Vault (/api-reference/media-vault/upload-media-to-vault)

Upload a media file directly to your vault.

## OpenAPI

````yaml https://app.onlyfansapi.com/scribe-docs/openapi.yaml post /api/{account}/media/vault
openapi: 3.0.3
info:
  title: OnlyFans API
  description: ""
  version: 1.0.0
servers:
  - url: https://app.onlyfansapi.com
security:
  - default: []
tags:
  - name: API Keys
    description: ""
  - name: Account
    description: Endpoints for your linked accounts
  - name: Analytics - Financial
    description: APIs for retrieving financial analytics data
  - name: Analytics - Summary
    description: APIs for retrieving summary analytics data
  - name: Banking
    description: Operations related to user banking details, payout methods, legal
      and tax information, and account country settings.
  - name: Chargebacks
    description: ""
  - name: Chat Messages
    description: ""
  - name: Chats
    description: ""
  - name: Client Sessions
    description: ""
  - name: Connect OnlyFans Account
    description: ""
  - name: Data Exports
    description: APIs for managing data exports
  - name: Engagement / Messages
    description: ""
  - name: Fans
    description: APIs for managing OnlyFans fans (subscribers)
  - name: Fans - AI Summary
    description: APIs for generating and retrieving AI-powered fan profile summaries
  - name: Following
    description: APIs for managing OnlyFans followings (people you're subscribed to)
  - name: Free Trial Links
    description: APIs for managing Free Trial Links
  - name: Giphy
    description: ""
  - name: Link Tags
    description: APIs for managing tags on free trial links and tracking links
  - name: Mass Messaging
    description: ""
  - name: Media
    description: ""
  - name: Media Vault
    description: ""
  - name: Media Vault Lists
    description: ""
  - name: Notifications
    description: Endpoints for managingr account notifications
  - name: Payouts
    description: ""
  - name: Post Comments
    description: ""
  - name: Post Labels
    description: APIs for managing your post labels
  - name: Posts
    description: APIs for managing OnlyFans posts
  - name: Promotions
    description: ""
  - name: Public Profiles
    description: ""
  - name: Queue
    description: ""
  - name: Release Forms
    description: APIs for managing OnlyFans release forms
  - name: Saved For Later (Messages)
    description: ""
  - name: Saved For Later (Posts)
    description: ""
  - name: Settings
    description: ""
  - name: Shared Free Trial Links
    description: APIs for Free Trial Links that other OF creators have shared with
      this account. Revenue, cost, and spender data are not available for shared
      links.
  - name: Shared Tracking Links
    description: APIs for Tracking Links (campaigns) that other OF creators have
      shared with this account. Revenue, cost, and spender data are not
      available for shared campaigns.
  - name: Smart Link Postbacks
    description: APIs for managing Smart Link postback destinations
  - name: Smart Links
    description: APIs for managing Smart Links (Free Trial Links and Tracking Links
      with pooled inventory)
  - name: Statistics
    description: ""
  - name: Stored Free Trial Links
    description: Instant APIs for retrieving stored free trial links from the
      OnlyFansAPI Cache (free, no credits used)
  - name: Stored Shared Free Trial Links
    description: Instant APIs for retrieving stored shared Free Trial Links from the
      OnlyFansAPI Cache (free, no credits used)
  - name: Stored Shared Tracking Links
    description: Instant APIs for retrieving stored shared Tracking Links
      (campaigns) from the OnlyFansAPI Cache (free, no credits used)
  - name: Stored Tracking Links
    description: Instant APIs for retrieving stored tracking links from the
      OnlyFansAPI Cache (free, no credits used)
  - name: Stories
    description: APIs for managing OnlyFans stories
  - name: Story Highlights
    description: APIs for managing OnlyFans story highlights
  - name: Subscription Bundles
    description: ""
  - name: Tracking Links
    description: APIs for managing tracking links
  - name: Transactions
    description: APIs for managing OnlyFans transactions
  - name: User List Collections
    description: ""
  - name: Users
    description: APIs for fetching OnlyFans users
  - name: Webhooks
    description: ""
paths:
  /api/{account}/media/vault:
    parameters:
      - in: path
        name: account
        description: The Account ID
        example: acct_XXXXXXXXXXXXXXX
        required: true
        schema:
          type: string
    post:
      summary: Upload Media to Vault
      operationId: uploadMediaToVault
      description: Upload a media file directly to your vault.
      parameters: []
      responses:
        "200":
          description: Synchronous upload (default)
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 1234567890
                    type: photo
                    convertedToVideo: false
                    canView: true
                    hasError: false
                    createdAt: 2026-04-03T16:16:36+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
                  _meta:
                    _credits:
                      used: 3
                      balance: 636132
                      note: Always
                    _cache:
                      is_cached: false
                      note: Cache disabled for this endpoint
                    _rate_limits:
                      limit_minute: 5000
                      limit_day: null
                      remaining_minute: 4999
                      remaining_day: null
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1234567890
                      type:
                        type: string
                        example: photo
                      convertedToVideo:
                        type: boolean
                        example: false
                      canView:
                        type: boolean
                        example: true
                      hasError:
                        type: boolean
                        example: false
                      createdAt:
                        type: string
                        example: 2026-04-03T16:16:36+00:00
                      isReady:
                        type: boolean
                        example: false
                      files:
                        type: object
                        properties:
                          full:
                            type: object
                            properties:
                              url:
                                type: string
                                example: null
                                nullable: true
                              width:
                                type: integer
                                example: 0
                              height:
                                type: integer
                                example: 0
                              size:
                                type: integer
                                example: 0
                              sources:
                                type: array
                                example: []
                          thumb:
                            type: string
                            example: null
                            nullable: true
                          preview:
                            type: string
                            example: null
                            nullable: true
                          squarePreview:
                            type: string
                            example: null
                            nullable: true
                      duration:
                        type: integer
                        example: 0
                      releaseForms:
                        type: array
                        example: []
                      hasCustomPreview:
                        type: boolean
                        example: false
                  _meta:
                    type: object
                    properties:
                      _credits:
                        type: object
                        properties:
                          used:
                            type: integer
                            example: 3
                          balance:
                            type: integer
                            example: 636132
                          note:
                            type: string
                            example: Always
                      _cache:
                        type: object
                        properties:
                          is_cached:
                            type: boolean
                            example: false
                          note:
                            type: string
                            example: Cache disabled for this endpoint
                      _rate_limits:
                        type: object
                        properties:
                          limit_minute:
                            type: integer
                            example: 5000
                          limit_day:
                            type: string
                            example: null
                            nullable: true
                          remaining_minute:
                            type: integer
                            example: 4999
                          remaining_day:
                            type: string
                            example: null
                            nullable: true
        "202":
          description: Async upload (async=true)
          content:
            application/json:
              schema:
                type: object
                example:
                  status: pending
                  prefixed_id: ofapi_media_abc123def456abc123def456abc123de
                  polling_url: https://app.onlyfansapi.com/api/acct_abc123def456/media/uploads/ofapi_media_abc123def456abc123def456abc123de/status
                properties:
                  status:
                    type: string
                    example: pending
                  prefixed_id:
                    type: string
                    example: ofapi_media_abc123def456abc123def456abc123de
                  polling_url:
                    type: string
                    example: https://app.onlyfansapi.com/api/acct_abc123def456/media/uploads/ofapi_media_abc123def456abc123def456abc123de/status
      tags:
        - Media Vault
      requestBody:
        required: false
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: "The file to upload. Required if `file_url` is not provided.
                    Maximum file size: 100 MB (limited by Cloudflare)."
                file_url:
                  type: string
                  description: A URL to download the file from. Required if `file` is not
                    provided. Maximum file size depends on the subscription
                    configuration.
                  example: https://example.com/media/photo.jpg
                async:
                  type: boolean
                  description: Set to `true` to process uploads in the background. Returns a
                    `polling_url` to check status. Recommended for large files.
                  example: true
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: Get your API Key from OnlyFansAPI Console -
        https://app.onlyfansapi.com/api-keys
````