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

# List the experiences your app has published for this creator

> Lists every experience your app holds for the creator whose token is calling — published or not, hidden or not — so you can recover a uuid you never stored or reconcile your own copy.

    Scoped to your app and this creator: no other app's experiences, and no other creator's, are ever listed. `appUuid` must be your own app.

> [!NOTE]
>
> **Required scope**
>
> * `read:experience` — Exchange a fan's experience token for the resolved experience and the fan's identity, so an embedded fan-facing experience can render the right content.


## OpenAPI

````yaml /openapi-v1.json get /v1/experiences
openapi: 3.1.0
info:
  title: Fanvue API
  version: '0.1'
servers:
  - url: https://api.fanvue.com
security: []
paths:
  /v1/experiences:
    get:
      summary: List the experiences your app has published for this creator
      description: >-
        Lists every experience your app holds for the creator whose token is
        calling — published or not, hidden or not — so you can recover a uuid
        you never stored or reconcile your own copy.

            Scoped to your app and this creator: no other app's experiences, and no other creator's, are ever listed. `appUuid` must be your own app.
      operationId: listExperiences
      parameters:
        - $ref: '#/components/parameters/ApiVersionHeader'
        - schema:
            type: string
            format: uuid
            description: Your app's UUID.
            example: 00000000-0000-4000-8000-000000000001
          required: true
          description: Your app's UUID.
          name: appUuid
          in: query
      responses:
        '200':
          description: The experiences, most recently created first
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AppExperience'
                required:
                  - data
              example:
                data:
                  - uuid: 00000000-0000-4000-8000-000000000010
                    appUuid: 00000000-0000-4000-8000-000000000001
                    creatorUuid: 00000000-0000-4000-8000-000000000002
                    externalExperienceId: course-photography-101
                    title: Photography 101
                    description: Six lessons, shot on film.
                    imageUrl: >-
                      https://cdn.fanvue.com/app-experiences/00000000-0000-4000-8000-000000000002/3f2a9c1d8e7b6a50.webp
                    accessMode: PAID
                    experienceType: VIDEO
                    deliveryMode: EMBEDDED
                    externalUrl: null
                    hidden: false
                    priceCents: 1500
                    priceRecurring: false
                    publishedAt: '2026-10-07T10:00:00.000Z'
                    suspendedAt: null
                    reviewStatus: approved
                    reviewRejection: null
                    pendingReviewSubmittedAt: null
                    isNsfw: false
                    url: https://www.fanvue.com/ava/experiences/photography-101
                  - uuid: 00000000-0000-4000-8000-000000000011
                    appUuid: 00000000-0000-4000-8000-000000000001
                    creatorUuid: 00000000-0000-4000-8000-000000000002
                    externalExperienceId: live-qa-october
                    title: October Q&A
                    description: Ask me anything, live.
                    imageUrl: null
                    accessMode: SUBSCRIPTION
                    experienceType: LIVE_STREAM
                    deliveryMode: EMBEDDED
                    externalUrl: null
                    hidden: false
                    priceCents: null
                    priceRecurring: false
                    publishedAt: null
                    suspendedAt: null
                    reviewStatus: pending_review
                    reviewRejection: null
                    pendingReviewSubmittedAt: null
                    isNsfw: true
                    url: https://www.fanvue.com/ava/experiences/october-q-a
        '400':
          description: Bad Request - API version not supported OR validation failed
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/UnsupportedVersionError'
                  - $ref: '#/components/schemas/ValidationError'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          description: >-
            The token lacks `read:experience` (`error` alone, `Insufficient
            scopes`), or the app named in `appUuid` is not the calling app
            (`message` alone, `Forbidden`).
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      error:
                        type: string
                    required:
                      - error
                    additionalProperties: false
                  - type: object
                    properties:
                      message:
                        type: string
                    required:
                      - message
                    additionalProperties: false
        '410':
          $ref: '#/components/responses/SunsetVersionResponse'
        '429':
          $ref: '#/components/responses/RateLimitResponse'
        '502':
          description: The write could not be completed against the upstream
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '503':
          description: Developer API upstream is not configured
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
      security:
        - BearerAuth:
            - read:experience
components:
  parameters:
    ApiVersionHeader:
      name: X-Fanvue-API-Version
      in: header
      required: true
      schema:
        type: string
        default: '2025-06-26'
        example: '2025-06-26'
      description: API version to use for the request
  schemas:
    AppExperience:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        appUuid:
          type: string
          format: uuid
        creatorUuid:
          type: string
          format: uuid
        externalExperienceId:
          type: string
          description: Your own stable id for the experience, as you published it.
          example: course-photography-101
        title:
          type: string
        description:
          type: string
        imageUrl:
          type:
            - string
            - 'null'
          description: >-
            Public URL of the cover Fanvue stored, or `null` when none was kept
            (none sent, or the one sent could not be fetched).
        accessMode:
          type: string
          enum:
            - FREE
            - SUBSCRIPTION
            - PAID
            - HIDDEN
        experienceType:
          type: string
          enum:
            - LIVE_STREAM
            - LIVE_AUDIO
            - VIDEO
            - AUDIO
            - GAME
            - CHALLENGE
            - QUIZ
            - EVENT
            - OTHER
          description: What kind of experience this is; `OTHER` when nothing declared one.
        deliveryMode:
          type: string
          enum:
            - EMBEDDED
            - EXTERNAL
        externalUrl:
          type:
            - string
            - 'null'
          description: Where an `EXTERNAL` experience opens; `null` for `EMBEDDED`.
        hidden:
          type: boolean
          description: >-
            Share-link only, never listed on the creator's profile. Always
            `true` for `HIDDEN`.
        priceCents:
          type:
            - integer
            - 'null'
          description: >-
            Price in USD cents behind a `PAID` experience; `null` for every
            other mode.
          example: 1500
        priceRecurring:
          type: boolean
          description: >-
            Whether that price bills monthly as an app subscription rather than
            once.
        publishedAt:
          type:
            - string
            - 'null'
          description: When it was published (ISO 8601); `null` while unpublished.
          example: '2026-10-07T10:00:00.000Z'
        suspendedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            When Fanvue removed it for a policy reason (ISO 8601); `null` for a
            live or merely unpublished experience. A suspended experience is not
            listed, cannot be launched and refuses a publish or update with
            `experience_suspended` until Fanvue reinstates it; keep your record
            of it rather than deleting it.
          example: null
        reviewStatus:
          type: string
          enum:
            - pending_review
            - approved
            - rejected
          description: >-
            Where the experience stands in Fanvue's review. Publishing submits
            it for review (`pending_review`); fans see it once `approved`, while
            it is also published and not suspended. Editing the title,
            description, cover, delivery mode or external link of an approved
            experience keeps the approved version live for fans and submits the
            edit for review, shown by `pendingReviewSubmittedAt`; price, access
            and visibility changes are not reviewed. A `rejected` experience is
            offline and goes back into review when you publish it again. Its
            creator, and Fanvue staff testing it, can open it in every state.
          example: approved
        reviewRejection:
          $ref: '#/components/schemas/ExperienceReviewRejection'
        pendingReviewSubmittedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            When an edit to an approved experience was submitted for review (ISO
            8601); `null` when no edit is waiting. Fans keep seeing the approved
            version until Fanvue decides; the fields returned here are the
            edited ones.
          example: null
        isNsfw:
          type: boolean
          description: >-
            Whether the experience is NSFW, because its creator's profile is not
            marked safe for work or the app is rated NSFW. Fans must pass age
            verification to open an NSFW experience, and a fan in safe mode is
            warned first.
          example: false
        url:
          type: string
          description: >-
            The share link fans land on: `/{handle}/experiences/{slug}` for a
            listed experience, keyed by the uuid instead when `hidden` so the
            link stays unguessable. Chat cards and link previews recognise it.
          example: https://www.fanvue.com/ava/experiences/summer-yoga-course
      required:
        - uuid
        - appUuid
        - creatorUuid
        - externalExperienceId
        - title
        - description
        - imageUrl
        - accessMode
        - experienceType
        - deliveryMode
        - externalUrl
        - hidden
        - priceCents
        - priceRecurring
        - publishedAt
        - suspendedAt
        - reviewStatus
        - reviewRejection
        - pendingReviewSubmittedAt
        - isNsfw
        - url
    UnsupportedVersionError:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
      required:
        - error
        - message
      description: API version not supported
    ValidationError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: string
      required:
        - errors
      description: Request validation failed
    ExperienceReviewRejection:
      type:
        - object
        - 'null'
      properties:
        reasonCodes:
          type: array
          items:
            type: string
          description: >-
            The listing requirement sections Fanvue cited, such as `7.3`; see
            the App Store listing requirements.
          example:
            - '7.3'
        message:
          type: string
          description: Fanvue's explanation, written for the creator.
          example: The cover and title do not match what the experience shows fans.
      required:
        - reasonCodes
        - message
      description: >-
        Why Fanvue rejected the experience; `null` unless `reviewStatus` is
        `rejected`.
  responses:
    UnauthorizedResponse:
      description: Unauthorized Response
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
            required:
              - error
    SunsetVersionResponse:
      description: API version no longer supported (sunset)
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              message:
                type: string
              nextVersion:
                type: string
            required:
              - error
              - message
    RateLimitResponse:
      description: Too many requests - rate limit exceeded
      headers:
        Retry-After:
          description: Number of seconds to wait before retrying the request
          schema:
            type: integer
        X-RateLimit-Limit:
          description: The maximum number of requests allowed in the current window
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: The number of requests remaining in the current window
          schema:
            type: integer
        X-RateLimit-Reset:
          description: The Unix timestamp (seconds) when the rate limit window resets
          schema:
            type: integer
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
            required:
              - error
  securitySchemes:
    BearerAuth:
      type: oauth2
      description: >-
        OAuth 2.0 access token, presented as a JWT bearer token in the
        `Authorization` header. Obtain a token via the authorization-code flow;
        the scopes granted to the token determine which operations it may call.
      flows:
        authorizationCode:
          authorizationUrl: https://auth.fanvue.com/oauth2/auth
          tokenUrl: https://auth.fanvue.com/oauth2/token
          refreshUrl: https://auth.fanvue.com/oauth2/token
          scopes:
            read:self: >-
              Access your own user profile information, including basic account
              details and settings.
            read:chat: >-
              Read chat conversations, messages, and chat-related data. This
              includes viewing chat lists and message history.
            write:chat: >-
              Create new chats and send messages. This scope is required for any
              chat-related actions that modify data.
            read:experience: >-
              Exchange a fan's experience token for the resolved experience and
              the fan's identity, so an embedded fan-facing experience can
              render the right content.
            write:experience: >-
              Request that the creator publish or unpublish a fan-facing
              experience. The app mints a request token; the creator confirms
              and Fanvue performs the change.
            read:fan: Access fan-related data and information within the platform.
            read:post: Read posts, including post details, comments, likes, and tips.
            write:post: Create, edit, and manage posts and content on behalf of users.
            read:media: Access media files, images, videos, and other content assets.
            write:media: >-
              Upload, modify, and manage media files and content assets. Also
              required for vault folder management.
            read:creator: >-
              Access creator profiles, content, and creator-specific
              information.
            write:creator: Modify creator profiles, settings, and creator-specific data.
            read:insights: >-
              Access analytics, metrics, and insights data for performance
              tracking.
            read:tracking_links: >-
              Read tracking links and the users associated with them, including
              per-user tracking metadata.
            write:tracking_links: Create and delete tracking links.
            read:agency: Read agency information, including the agency's team members.
            write:agency: >-
              Manage agency team members and invites, including inviting new
              team members and creators.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.