---
title: "List media in folder"
method: GET
path: "/vault/folders/{folderName}/media"
---

# List media in folder

`GET /vault/folders/{folderName}/media`

## Request

- Base URL: `https://api.fanvue.com`
- URL: `https://api.fanvue.com/vault/folders/{folderName}/media`
- Auth: OAuth 2
  - Authorization code: `https://auth.fanvue.com/oauth2/auth`
  - Token URL: `https://auth.fanvue.com/oauth2/token` scopes: `read:media`

Returns a paginated list of media items in the specified folder.

## Path parameters

- `folderName` string, required: Folder name (URL-encoded in path)

## 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'
- `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).
- `variants` MediaVariantType[]: Comma-separated list of media variant types
- `sort` 'createdAt' | 'addedAt': Field to sort media by. Defaults to createdAt (media creation time).
- `order` 'asc' | 'desc': Sort direction. Defaults to desc.

## Headers

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

## Response `200`

List of media in folder

- 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, required: Variant id. `legacy-<type>` for media not yet backfilled into media_variants.
          - `variantType` 'blurred' | 'main' | 'thumbnail' | 'thumbnail_gallery', required
          - `displayPosition` integer, required: Ordering hint within the item's variants. 0 when the platform did not assign a position (most main, blurred and image thumbnail variants); video and document thumbnails are 1-based.
          - `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

## 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

## Changes

- **2026-09-10** `4d08f36ad6c8`: 1 breaking
  - the `data/items/anyOf[subschema #2]/variants/items/uuid` response's property format changed from `uuid` to no format for status `200`

[Operation history](https://skmtc.dev/fanvue/apis/fanvue-api/changes/vault/folders/:folderName/media/get.md)

---

[API](https://skmtc.dev/fanvue/apis/fanvue-api.md) - [All operations](https://skmtc.dev/fanvue/apis/fanvue-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fanvue/apis/fanvue-api/revisions/966260af2770?raw)
