---
title: "Get user's media list"
method: GET
path: "/media"
---

# Get user's media list

`GET /media`

Returns a paginated list of media items for the authenticated user.

    For media with status other than FINALISED, only uuid and status are returned.
    For FINALISED media, all details including variants are included.

    Each finalised media item includes a `tags` field containing structured AI
    content tags (description, tags, NSFW classification, scene/setting, etc.)
    when the owning creator has AI content tagging enabled and the media has
    been processed. `tags` is `null` otherwise.

## Query parameters

- `page` integer — Page number to retrieve (starts from 1)
- `size` integer — Number of items to return per page (1-50, default: 15)
- `mediaType` 'image' | 'video' | 'audio' | 'document'
- `folderName` string
- `usage` 'subscribers' | 'followers' | 'ppv' | 'mass_messages'
- `name` string — Case-insensitive substring match on the media name.
- `startDate` string, date-time — Filter to media created on or after this ISO 8601 datetime (with optional timezone offset, e.g. 2024-10-20T00:00:00Z).
- `endDate` string, date-time — Filter to media created before this ISO 8601 datetime (non-inclusive, with optional timezone offset).
- `purchasedBy` string, uuid — UUID of the user to check media purchases against. When provided, each media item will include a purchasedByFan boolean indicating if that user has purchased it.
- `status` MediaStatus[] — Comma-separated list of media status values
- `variants` MediaVariantType[] — Comma-separated list of media variant types

## Headers

- `X-Fanvue-API-Version` string, required

## Response `200`

List of user media

- object
  - `data` union[], required — Array of media items
    - union
      - object
        - `uuid` string, uuid, required
        - `status` 'created' | 'processing' | 'ready' | 'error', required
      - object
        - `uuid` string, uuid, required
        - `status` 'created' | 'processing' | 'ready' | 'error', required
        - `createdAt` string, date, nullable, required
        - `url` string
        - `caption` string, nullable, required
        - `description` string, nullable, required
        - `name` string, nullable, required
        - `mediaType` 'image' | 'video' | 'audio' | 'document', required
        - `recommendedPrice` number, nullable, required
        - `variants` object[]
          - `uuid` string, uuid, required
          - `variantType` 'blurred' | 'main' | 'thumbnail' | 'thumbnail_gallery', required
          - `displayPosition` number, required
          - `url` string
          - `width` number, nullable, required
          - `height` number, nullable, required
          - `lengthMs` number, nullable, required
        - `purchasedByFan` boolean
        - `tags` object, nullable — Structured AI content tags. Only populated when the owning creator has AI content tagging enabled and the media has been processed; null otherwise.
          - `description` string, nullable, required — AI-generated natural language description
          - `tags` string[], required — General content tags
          - `nsfwCategory` string[], required — NSFW classification labels
          - `sexActs` string[], required
          - `bodyParts` string[], required
          - `people` string[], required
          - `sexObjects` string[], required
          - `setting` string[], required — Scene / environment tags
          - `position` string[], required
          - `skinColor` string[], required
          - `bodyType` string[], required
          - `hairColor` string[], required
          - `otherTags` string[], required
          - `importantTags` string[], required — Tags the model marked as salient
          - `isNsfw` boolean, required
          - `mediaType` 'image' | 'video', required
  - `pagination` object, required — Pagination information
    - `page` number, required — Current page number
    - `size` number, required — Number of records returned in this response
    - `hasMore` boolean, required — Whether there are more items available on subsequent pages
    - `total` integer, required — Total number of media items matching the query across all pages

## Other responses

- `400` — Bad Request - API version not supported OR validation failed
- `401` — Unauthorized Response
- `403` — Unauthorized Response
- `404` — Not Found Response
- `410` — API version no longer supported (sunset)
- `429` — Too many requests - rate limit exceeded

---

[API](https://skmtc.net/fanvue/apis/fanvue-api.md) · [All operations](https://skmtc.net/fanvue/apis/fanvue-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fanvue/fanvue-api/revisions/c5ddcd5c7e72/schema)
