v8

OpenAPI 3.1.02026-08-033623795.0 MB
Forum posts

Create forum post

Create a new forum post or comment within an experience. Supports text content, attachments, polls, paywalling, and pinning. Pass experience_id 'public' with a company_id to post to a company's public forum.

Required permissions:

  • forum:post:create
post/forum_posts

Request body

company_idstring nullable

The unique identifier of the company whose public forum to post in. Required when experience_id is 'public'. For example, 'biz_xxxxx'.

contentstring nullable

The main body of the post in Markdown format. For example, 'Check out this update'. Hidden if the post is paywalled and the viewer has not purchased access.

experience_idstring required

The unique identifier of the experience to create this post in. For example, 'exp_xxxxx'. Pass 'public' along with company_id to automatically use the company's public forum.

is_mentionboolean nullable

Whether to send this post as a mention notification to all users in the experience who have mentions enabled.

parent_idstring nullable

The unique identifier of the parent post to comment on. Omit this field to create a top-level post.

paywall_amountnumber nullable

The price to unlock this post in the specified paywall currency. For example, 5.00 for $5.00. When set, users must purchase access to view the post content.

paywall_currency'usd' | 'sgd' | 'inr' | 'aud' | 'brl' | 'cad' | 'dkk' | 'eur' | 'nok' | 'gbp' | 'sek' | 'chf' | 'hkd' | 'huf' | 'jpy' | 'mxn' | 'myr' | 'pln' | 'czk' | 'nzd' | 'aed' | 'eth' | 'ape' | 'cop' | 'ron' | 'thb' | 'bgn' | 'idr' | 'dop' | 'php' | 'try' | 'krw' | 'twd' | 'vnd' | 'pkr' | 'clp' | 'uyu' | 'ars' | 'zar' | 'dzd' | 'tnd' | 'mad' | 'kes' | 'kwd' | 'jod' | 'all' | 'xcd' | 'amd' | 'bsd' | 'bhd' | 'bob' | 'bam' | 'khr' | 'crc' | 'xof' | 'egp' | 'etb' | 'gmd' | 'ghs' | 'gtq' | 'gyd' | 'ils' | 'jmd' | 'mop' | 'mga' | 'mur' | 'mdl' | 'mnt' | 'nad' | 'ngn' | 'mkd' | 'omr' | 'pyg' | 'pen' | 'qar' | 'rwf' | 'sar' | 'rsd' | 'lkr' | 'tzs' | 'ttd' | 'uzs' | 'rub' | 'btc' | 'cny' | 'usdt' | 'kzt' | 'awg' | 'whop_usd' | 'xau'

The available currencies on the platform

pinnedboolean nullable

Whether this post should be pinned to the top of the forum.

rich_contentstring nullable

The rich content of the post in Tiptap JSON format. When provided, takes priority over the markdown content field for rendering.

titlestring nullable

The title of the post, displayed prominently at the top. Required for paywalled posts as it remains visible to non-purchasers.

visibility'members_only' | 'globally_visible'

The visibility types for forum posts

Example request

{
  "company_id": "biz_xxxxxxxxxxxxxx",
  "experience_id": "exp_xxxxxxxxxxxxxx",
  "paywall_amount": 6.9
}

Response

A successful response

comment_countinteger required

The total number of direct comments on this post.

contentstring nullable required

The body of the forum post in Markdown format. Null if the post is paywalled and the current user does not have access.

created_atstring date-time required

The time this post was created, as a Unix timestamp.

idstring required

Represents a unique identifier that is Base64 obfuscated. It is often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "VXNlci0xMA==") or integer (such as 4) input value will be accepted as an ID.

is_editedboolean required

Whether this post has been edited after its initial creation.

is_pinnedboolean required

Whether this post is pinned to the top of the forum feed.

is_poster_adminboolean required

Whether the author of this post is an admin of the company that owns the forum.

like_countinteger nullable required

The total number of like reactions this post has received.

parent_idstring nullable required

The unique identifier of the parent post. Null if this is a top-level post.

titlestring nullable required

The headline of the forum post. Null if the post has no title.

updated_atstring date-time required

The time this post was last updated, as a Unix timestamp.

view_countinteger nullable required

The total number of times this post has been viewed by users.

Example response

{
  "attachments": [
    {
      "content_type": "image/jpeg",
      "filename": "document.pdf",
      "url": "https://media.whop.com/abc123/optimized.jpg"
    }
  ],
  "comment_count": 42,
  "content": "## My Strategy\n\nHere are the key steps...",
  "created_at": "2023-12-01T05:00:00.401Z",
  "like_count": 42,
  "title": "Weekly Market Analysis - February 2025",
  "updated_at": "2023-12-01T05:00:00.401Z",
  "user": {
    "id": "user_xxxxxxxxxxxxx",
    "name": "John Doe",
    "username": "johndoe42"
  },
  "view_count": 42
}