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

# Duplicate experience

> Duplicates an existing experience. The name will be copied, unless provided. The new experience will be attached to the same products as the original experience.
If duplicating a Forum or Chat experience, the new experience will have the same settings as the original experience, e.g. who can post, who can comment, etc.
No content, e.g. posts, messages, lessons from within the original experience will be copied.


Required permissions:
 - `experience:create`



## OpenAPI

````yaml /openapi/api-v1-stable.json post /experiences/{id}/duplicate
openapi: 3.1.0
info:
  description: >-
    The Whop REST API. Please see
    https://docs.whop.com/developer/api/getting-started for more details.
  termsOfService: https://whop.com/tos-developer-api/
  title: Whop API
  version: 1.0.0
  x-api-version-date: 2026-07-08-1
servers:
  - description: Production Whop API
    url: https://api.whop.com/api/v1
  - description: Sandbox Whop API
    url: https://sandbox-api.whop.com/api/v1
security: []
tags:
  - description: Products
    name: Products
  - description: Payments
    name: Payments
  - description: Refunds
    name: Refunds
  - description: Disputes
    name: Disputes
  - description: Dispute alerts
    name: Dispute alerts
  - description: Resolution center cases
    name: Resolution center cases
  - description: Checkout configurations
    name: Checkout configurations
  - description: Setup intents
    name: Setup intents
  - description: Payment methods
    name: Payment methods
  - description: Invoices
    name: Invoices
  - description: Promo codes
    name: Promo codes
  - description: Card transactions
    name: Card transactions
  - description: Ledger accounts
    name: Ledger accounts
  - description: Withdrawals
    name: Withdrawals
  - description: Payout methods
    name: Payout methods
  - description: Verifications
    name: Verifications
  - description: Identity profiles
    name: Identity profiles
  - description: Payout accounts
    name: Payout accounts
  - description: Topups
    name: Topups
  - description: Companies
    name: Companies
  - description: Authorized users
    name: Authorized users
  - description: Fee markups
    name: Fee markups
  - description: Members
    name: Members
  - description: Memberships
    name: Memberships
  - description: Leads
    name: Leads
  - description: Entries
    name: Entries
  - description: Shipments
    name: Shipments
  - description: Reviews
    name: Reviews
  - description: Company token transactions
    name: Company token transactions
  - description: Affiliates
    name: Affiliates
  - description: Experiences
    name: Experiences
  - description: Forums
    name: Forums
  - description: Forum posts
    name: Forum posts
  - description: Chat channels
    name: Chat channels
  - description: Support channels
    name: Support channels
  - description: Messages
    name: Messages
  - description: Reactions
    name: Reactions
  - description: Dm members
    name: Dm members
  - description: Dm channels
    name: Dm channels
  - description: Notifications
    name: Notifications
  - description: Courses
    name: Courses
  - description: Course chapters
    name: Course chapters
  - description: Course lessons
    name: Course lessons
  - description: Course students
    name: Course students
  - description: Course lesson interactions
    name: Course lesson interactions
  - description: Apps
    name: Apps
  - description: Webhooks
    name: Webhooks
  - description: App builds
    name: App builds
  - description: Access tokens
    name: Access tokens
  - description: Account links
    name: Account links
  - description: Files
    name: Files
  - description: Ai chats
    name: Ai chats
  - description: Bounties
    name: Bounties
  - description: Stats
    name: Stats
  - description: Conversions
    name: Conversions
  - description: Ad reports
    name: Ad reports
paths:
  /experiences/{id}/duplicate:
    post:
      tags:
        - Experiences
      summary: Duplicate experience
      description: >-
        Duplicates an existing experience. The name will be copied, unless
        provided. The new experience will be attached to the same products as
        the original experience.

        If duplicating a Forum or Chat experience, the new experience will have
        the same settings as the original experience, e.g. who can post, who can
        comment, etc.

        No content, e.g. posts, messages, lessons from within the original
        experience will be copied.



        Required permissions:
         - `experience:create`
      operationId: duplicateExperience
      parameters:
        - description: The unique identifier of the experience to duplicate.
          in: path
          name: id
          required: true
          schema:
            example: exp_xxxxxxxxxxxxxx
            type: string
      requestBody:
        content:
          application/json:
            schema:
              description: Parameters for DuplicateExperience
              properties:
                name:
                  description: >-
                    The display name for the duplicated experience. Defaults to
                    the original experience's name.
                  type:
                    - string
                    - 'null'
              required: []
              type: object
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Experience'
          description: A successful response
        '400':
          content:
            application/json:
              example:
                error:
                  code: parameter_missing
                  message: 'Missing required parameter: amount.'
                  param: amount
                  type: invalid_request_error
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Bad request
        '401':
          content:
            application/json:
              example:
                error:
                  message: Invalid or missing API key
                  type: unauthorized
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Unauthorized
        '403':
          content:
            application/json:
              example:
                error:
                  message: You do not have permission to access this resource
                  type: forbidden
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Forbidden
        '404':
          content:
            application/json:
              example:
                error:
                  message: Resource not found
                  type: not_found
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Not found
        '422':
          content:
            application/json:
              example:
                error: null
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Verification required
        '429':
          content:
            application/json:
              example:
                error: null
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Too many requests
        '500':
          content:
            application/json:
              example:
                error:
                  message: An unexpected error occurred
                  type: internal_server_error
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Internal server error
      security:
        - bearerAuth:
            - experience:create
components:
  schemas:
    Experience:
      description: >-
        An experience is a feature or content module within a product, such as a
        chat, course, or custom app.
      properties:
        app:
          description: >-
            The app that powers this experience, defining its interface and
            behavior.
          properties:
            icon:
              description: >-
                The icon image for this app, displayed on the app store, product
                pages, checkout, and as the default icon for experiences using
                this app.
              properties:
                url:
                  description: >-
                    A pre-optimized URL for rendering this attachment on the
                    client. This should be used for displaying attachments in
                    apps.
                  example: https://media.whop.com/abc123/optimized.jpg
                  type:
                    - string
                    - 'null'
              required:
                - url
              type:
                - object
                - 'null'
            id:
              description: The unique identifier for the app.
              example: app_xxxxxxxxxxxxxx
              type: string
            name:
              description: >-
                The display name of this app shown on the app store and in
                experience navigation. Maximum 30 characters.
              example: Courses
              type: string
          required:
            - id
            - name
            - icon
          type: object
        company:
          description: The company that owns this experience.
          properties:
            id:
              description: The unique identifier for the company.
              example: biz_xxxxxxxxxxxxxx
              type: string
            route:
              description: >-
                URL slug for the account's store page, e.g. `pickaxe` in
                whop.com/pickaxe.
              example: pickaxe
              type: string
            title:
              description: The display name of the company shown to customers.
              example: Pickaxe
              type: string
          required:
            - id
            - title
            - route
          type: object
        created_at:
          description: The datetime the experience was created.
          example: '2023-12-01T05:00:00.401Z'
          format: date-time
          type: string
        id:
          description: The unique identifier for the experience.
          example: exp_xxxxxxxxxxxxxx
          type: string
        image:
          description: >-
            The custom logo image for this experience. Null if no custom logo
            has been uploaded.
          properties:
            url:
              description: >-
                A pre-optimized URL for rendering this attachment on the client.
                This should be used for displaying attachments in apps.
              example: https://media.whop.com/abc123/optimized.jpg
              type:
                - string
                - 'null'
          required:
            - url
          type:
            - object
            - 'null'
        is_public:
          description: >-
            Whether this experience is publicly visible to all users, including
            those without a membership.
          type: boolean
        name:
          description: >-
            The display name of this experience shown to users in the product
            navigation. Maximum 255 characters.
          example: Trading Signals Chat
          type: string
        order:
          description: >-
            The sort position of this experience within its section. Lower
            values appear first. Null if no position has been set.
          example: '123.45'
          type:
            - string
            - 'null'
        products:
          description: >-
            The list of products this experience is attached to, which
            determines which customers have access. Empty if the experience is
            only visible to authorized company team members.
          items:
            description: >-
              A product is a digital good or service sold on Whop. Products
              contain plans for pricing and experiences for content delivery.
            properties:
              id:
                description: The unique identifier for the product.
                example: prod_xxxxxxxxxxxxx
                type: string
              route:
                description: >-
                  URL slug in the product's public link, e.g.
                  `pickaxe-analytics` in whop.com/company/pickaxe-analytics.
                example: pickaxe-analytics
                type: string
              title:
                description: >-
                  The display name of the product shown to customers on the
                  product page and in search results.
                example: Pickaxe Analytics
                type: string
            required:
              - id
              - route
              - title
            type: object
          type: array
      required:
        - id
        - name
        - order
        - is_public
        - created_at
        - app
        - image
        - company
        - products
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: auth-scheme
      description: >-
        A company API key, company scoped JWT, app API key, or user OAuth token.
        You must prepend your key/token with the word 'Bearer', which will look
        like `Bearer ***************************`
      scheme: bearer
      type: http

````