Skip to main content
Upload files to Whop for use in courses, forums, profiles, and more.
The files.upload helper shown on this page isn’t available in any current SDK. @whop/sdk, whop-sdk, and the whop_sdk gem all expose only files.create and files.retrieve, so the snippets below are kept for reference and won’t run as written. files.create returns a presigned upload_url (plus upload_headers) that you send the bytes to yourself.
The upload helper:
  1. Creates a file record with a presigned URL
  2. Uploads your file to storage
  3. Polls until processing is complete
  4. Returns the ready file with its final URL

Public and private files

Every file you upload has a visibility that controls access. You choose visibility at upload time and can’t change it later.
Set the visibility before uploading. Public files are cached on Whop’s CDN and accessible to anyone with the URL — there is no way to revoke access. If the content is user-specific or sensitive, keep the default private.

Uploading a public file

Pass visibility: "public" when creating the file:
Attaching a file to a resource moves it to the storage that matches that resource’s own visibility. An explicit visibility mainly matters for files you link to directly without attaching.

Accessing private files

Private file URLs expire. To get a fresh URL, retrieve the file by ID:

Using uploaded files

Once uploaded, use the file ID in any API call that accepts file attachments:

File properties