Skip to main content
POST
Create file
This page documents the Legacy API. For new integrations, use Create File in the Current API.

Authorizations

Authorization
string
header
required

An Account API key, account-scoped JWT, App API key, or user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************.

Body

application/json

Parameters for CreateFile

filename
string
required

The name of the file including its extension (e.g., "photo.png" or "document.pdf").

visibility
enum<string> | null

Controls whether the file is publicly accessible via CDN or requires authentication. Defaults to private.

Available options:
public,
private

Response

A successful response

A file that has been uploaded or is pending upload.

content_type
string | null
required

The MIME type of the uploaded file (e.g., image/jpeg, video/mp4, audio/mpeg).

Example:

"image/jpeg"

filename
string | null
required

The original filename of the uploaded file, including its file extension.

Example:

"document.pdf"

id
string
required

The unique identifier for the file.

Example:

"file_xxxxxxxxxxxxx"

size
string | null
required

The file size in bytes. Null if the file has not finished uploading.

Example:

"123.45"

upload_headers
object | null
required

Headers to include in the upload request. Only present in the response from the create mutation.

upload_status
enum<string>
required

The current upload status of the file (e.g., pending, ready).

Available options:
pending,
processing,
ready,
failed
upload_url
string | null
required

The presigned URL to upload the file contents to. Only present in the response from the create mutation.

Example:

"https://media.whop.com/uploads/presigned"

url
string | null
required

The URL for accessing the file. For public files, this is a permanent CDN URL. For private files, this is a signed URL that expires. Null if the file has not finished uploading.

visibility
enum<string>
required

Whether the file is publicly accessible or requires authentication.

Available options:
public,
private