openapi: 3.0.3
info:
  title: Raydium Launch Forum API
  description: Discussion API for LaunchLab pools. Post and retrieve comments on mint
    tokens. Requires `ray-token` header (JWT from Auth API) for write operations.
  version: 1.0.0
servers:
- url: https://launch-forum-v1.raydium.io
  description: Mainnet
- url: https://launch-forum-v1-devnet.raydium.io
  description: Devnet
tags:
- name: Comments
  description: Post and retrieve pool comments
- name: Utilities
  description: Health checks
paths:
  /comment:
    post:
      operationId: postComment
      summary: Post a comment on a pool
      tags:
      - Comments
      description: Post a new comment. Requires ray-token header.
      parameters:
      - name: ray-token
        in: header
        required: true
        schema:
          type: string
        description: JWT token from Auth API
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - poolId
              - text
              - wallet
              properties:
                poolId:
                  type: string
                  description: Pool/Mint ID
                wallet:
                  type: string
                  description: Commenter wallet
                text:
                  type: string
                  description: Comment text (max 2000 chars)
                file:
                  type: string
                  format: binary
                  description: Optional image (max 5MB)
      responses:
        '200':
          description: Comment posted successfully
        '400':
          description: Invalid request or content violation
  /comment/pool:
    get:
      operationId: getCommentPool
      summary: Get comments for a pool
      tags:
      - Comments
      parameters:
      - name: poolId
        in: query
        required: true
        schema:
          type: string
        description: Pool/Mint ID
      - name: limit
        in: query
        schema:
          type: integer
          default: 100
          maximum: 100
      - name: lastId
        in: query
        schema:
          type: integer
        description: Pagination token
      - name: fetchType
        in: query
        schema:
          type: string
          enum:
          - old
          - new
          default: old
      - name: includeNsfw
        in: query
        schema:
          type: boolean
        description: Include NSFW content
      responses:
        '200':
          description: Pool comments
  /comment/id:
    get:
      operationId: getCommentId
      summary: Get a specific comment by ID
      tags:
      - Comments
      parameters:
      - name: id
        in: query
        required: true
        schema:
          type: integer
        description: Comment ID
      responses:
        '200':
          description: Comment details
        '500':
          description: Comment not found or deleted
