---
name: "Thumbnails"
last_updated: 2026-06-19T03:26:40Z
type: feature
api_base_url: "https://apis.roblox.com"
endpoints: 11
auth: [api-key, oauth2, cookie]
description: "Generate and retrieve thumbnails for [users](#Cloud_GenerateUserThumbnail), [experiences](#post_legacy_game_internationalization_v1_game_thumbnails_games__gameId__language_codes__languageCode__image), [badges](#post_legacy_publish_v1_badges__badgeId__icon), and [avatar images](#Cloud_GenerateUserThumbnail)"
---

# Thumbnails

Generate and retrieve thumbnails for [users](#Cloud_GenerateUserThumbnail), [experiences](#post_legacy_game_internationalization_v1_game_thumbnails_games__gameId__language_codes__languageCode__image), [badges](#post_legacy_publish_v1_badges__badgeId__icon), and [avatar images](#Cloud_GenerateUserThumbnail). in various formats.

> **See also:** To upload/update icons or thumbnails, see [publish](/docs/cloud/reference/features/publish.md).

**Base URL:** `https://apis.roblox.com`

    ## Authentication

    Each endpoint requires one of the following authentication methods:

    - **API Key**: Pass your key in the `x-api-key` HTTP header. Create keys at [Creator Dashboard](https://create.roblox.com/dashboard/credentials).
- **OAuth 2.0**: Use Bearer token in the `Authorization` header. Authorization URL: `https://apis.roblox.com/oauth/v1/authorize`, Token URL: `https://apis.roblox.com/oauth/v1/token`
- **Cookie** *(not recommended)*: `.ROBLOSECURITY` cookie. Do not use in production.

    ```
    # API Key example
    curl -H "x-api-key: YOUR_API_KEY" https://apis.roblox.com/...

    # OAuth 2.0 example
    curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://apis.roblox.com/...
    ```

## Endpoints

### POST `/v1/batch` [STABLE]

Returns a list of thumbnails with varying types and sizes

**Server:** `https://thumbnails.roblox.com`

**Auth:** Cookie (`.ROBLOSECURITY`)

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `Roblox-Place-Id` | header | `integer` | No | (optional) placeid |

**Request Body:** `application/json` — Type: `Roblox.Thumbnails.Apis.Models.ThumbnailBatchRequest[]`

See [Roblox.Thumbnails.Apis.Models.ThumbnailBatchRequest](#roblox-thumbnails-apis-models-thumbnailbatchrequest) in Models.

**Responses:**

- `200`: OK → `Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailBatchResponse_`
- `400`: 1: There are too many requested Ids. 2: The requested image format is invalid. Please see documentation for valid thumbnail format parameter name and values. 3: The requested size is invalid. Please see documentation for valid thumbnail size parameter name and format. 4: The requested Ids are invalid, of an invalid type or missing. 7: The specified type is not supported by the batch endpoint
- `403`: 9: User not authorized to use AutoGenerated or ForceAutoGenerated return policies.

**Response fields** (`Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailBatchResponse_`)

See [Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailBatchResponse_](#roblox-web-webapi-models-apiarrayresponse-roblox-web-responses-thumbnails-thumbnailbatchresponse-) in Models.

**Response example:**
```json
{
  "data": [
    {
      "requestId": "...",
      "errorCode": "...",
      "errorMessage": "...",
      "targetId": "...",
      "state": "...",
      "imageUrl": "..."
    }
  ]
}
```

**Error handling:** `403`: Verify your API key has the required scopes listed above. 

**Example:**
```bash
curl -X POST -b ".ROBLOSECURITY=$ROBLOSECURITY" \
  "https://thumbnails.roblox.com/v1/batch" \
  -H "Content-Type: application/json" \
  -d '[
  {
    "requestId": "string",
    "targetId": 0,
    "token": "string",
    "alias": "string",
    "type": "Avatar",
    "size": "string"
  }
]'
```

### GET `/v1/games/icons` [STABLE]

Fetches game icon URLs for a list of universes' root places. Ids that do not correspond to a valid universe will be filtered out.
The ordering of the results is not guaranteed to be the same as the inputs. In order to correlated inputs with outputs please
use the 'targetId' of the objects in the result array.

**Server:** `https://thumbnails.roblox.com`

**Auth:** Cookie (`.ROBLOSECURITY`)

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `universeIds` | query | `integer[]` | Yes | The universe ids. |
| `returnPolicy` | query | `PlaceHolder \| ForcePlaceHolder \| AutoGenerated \| ForceAutoGenerated` | No | Optional policy to use in selecting game icon to return (default = PlaceHolder). Valid values: `PlaceHolder`, `ForcePlaceHolder`, `AutoGenerated`, `ForceAutoGenerated` |
| `size` | query | `string enum (6 values)` | No | The thumbnail size, formatted widthxheight Valid values: `50x50`, `128x128`, `150x150`, `256x256`, `420x420`, `512x512` |
| `format` | query | `Png \| Jpeg \| Webp` | No | The thumbnail format Valid values: `Png`, `Jpeg`, `Webp` |
| `isCircular` | query | `true \| false` | No | The circle thumbnail output parameter, true or false Valid values: `true`, `false` |

**Responses:**

- `200`: OK → `Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_`
- `400`: 1: There are too many requested Ids. 2: The requested image format is invalid. Please see documentation for valid thumbnail format parameter name and values. 3: The requested size is invalid. Please see documentation for valid thumbnail size parameter name and format. 4: The requested Ids are invalid, of an invalid type or missing. 8: The requested return policy is invalid (must be PlaceHolder, AutoGenerated or ForceAutoGenerated). 10: Circular thumbnail requests are not allowed
- `403`: 9: User not authorized to use AutoGenerated or ForceAutoGenerated return policies.

**Response fields** (`Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_`)

See [Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_](#roblox-web-webapi-models-apiarrayresponse-roblox-web-responses-thumbnails-thumbnailresponse-) in Models.

**Response example:**
```json
{
  "data": [
    {
      "targetId": "...",
      "state": "...",
      "imageUrl": "...",
      "version": "...",
      "thumbnailSource": "..."
    }
  ]
}
```

**Error handling:** `403`: Verify your API key has the required scopes listed above. 

**Example:**
```bash
curl -b ".ROBLOSECURITY=$ROBLOSECURITY" \
  "https://thumbnails.roblox.com/v1/games/icons?universeIds={VALUE}"
```

### GET `/v1/games/multiget/thumbnails` [STABLE]

Fetch game thumbnail URLs for a list of universe IDs.

**Server:** `https://thumbnails.roblox.com`

**Auth:** Cookie (`.ROBLOSECURITY`)

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `universeIds` | query | `integer[]` | Yes | comma-delimited list of universe IDs |
| `countPerUniverse` | query | `integer` | No | max number of thumbnails to return per universe |
| `defaults` | query | `boolean` | No | true if defaults (if any) should be returned if no media exists |
| `size` | query | `768x432 \| 576x324 \| 480x270 \| 384x216 \| 256x144` | No | The thumbnail size, formatted widthxheight Valid values: `768x432`, `576x324`, `480x270`, `384x216`, `256x144` |
| `format` | query | `Png \| Jpeg \| Webp` | No | The thumbnail format Valid values: `Png`, `Jpeg`, `Webp` |
| `isCircular` | query | `true \| false` | No | The circle thumbnail output parameter, true or false Valid values: `true`, `false` |

**Responses:**

- `200`: OK → `Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Thumbnails.Api.Models.UniverseThumbnailsResponse_`
- `400`: 0: Unknown error 1: There are too many requested Ids. 4: The requested Ids are invalid, of an invalid type or missing. 5: The requested universe does not exist. 10: Circular thumbnail requests are not allowed

**Response fields** (`Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Thumbnails.Api.Models.UniverseThumbnailsResponse_`)

See [Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Thumbnails.Api.Models.UniverseThumbnailsResponse_](#roblox-web-webapi-models-apiarrayresponse-roblox-thumbnails-api-models-universethumbnailsresponse-) in Models.

**Response example:**
```json
{
  "data": [
    {
      "universeId": "...",
      "error": "...",
      "thumbnails": "..."
    }
  ]
}
```

**Example:**
```bash
curl -b ".ROBLOSECURITY=$ROBLOSECURITY" \
  "https://thumbnails.roblox.com/v1/games/multiget/thumbnails?universeIds={VALUE}"
```

### GET `/v1/games/{universeId}/media` *(deprecated)*

Get the game media data

Use https://games.roblox.com/v2/games/{universeId}/media instead

**Server:** `https://games.roblox.com`

**Auth:** Cookie (`.ROBLOSECURITY`)

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `universeId` | path | `integer` | Yes | The id of the universe we get media data from. |

**Responses:**

- `200`: OK → `Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Games.Api.Models.Response.GameMediaItem_`
- `400`: 3: The universe's root place is invalid.
- `404`: 2: The requested universe does not exist.

**Response fields** (`Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Games.Api.Models.Response.GameMediaItem_`)

See [Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Games.Api.Models.Response.GameMediaItem_](#roblox-web-webapi-models-apiarrayresponse-roblox-games-api-models-response-gamemediaitem-) in Models.

**Response example:**
```json
{
  "data": [
    {
      "id": "...",
      "assetTypeId": "...",
      "assetType": "...",
      "imageId": "...",
      "videoHash": "...",
      "videoTitle": "..."
    }
  ]
}
```

**Example:**
```bash
curl -b ".ROBLOSECURITY=$ROBLOSECURITY" \
  "https://games.roblox.com/v1/games/{UNIVERSEID}/media"
```

### GET `/v1/games/{universeId}/thumbnails` [STABLE]

Fetches game thumbnail URLs for a list of universes' thumbnail ids. Ids that do not correspond to a valid thumbnail will be filtered out.

**Server:** `https://thumbnails.roblox.com`

**Auth:** Cookie (`.ROBLOSECURITY`)

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `universeId` | path | `integer` | Yes |  |
| `thumbnailIds` | query | `integer[]` | Yes |  |
| `size` | query | `768x432 \| 576x324 \| 480x270 \| 384x216 \| 256x144` | No | The thumbnail size, formatted widthxheight Valid values: `768x432`, `576x324`, `480x270`, `384x216`, `256x144` |
| `format` | query | `Png \| Jpeg \| Webp` | No | The thumbnail format Valid values: `Png`, `Jpeg`, `Webp` |
| `isCircular` | query | `true \| false` | No | The circle thumbnail output parameter, true or false Valid values: `true`, `false` |

**Responses:**

- `200`: OK → `Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_`
- `400`: 1: There are too many requested Ids. 2: The requested image format is invalid. Please see documentation for valid thumbnail format parameter name and values. 3: The requested size is invalid. Please see documentation for valid thumbnail size parameter name and format. 4: The requested Ids are invalid, of an invalid type or missing. 10: Circular thumbnail requests are not allowed
- `404`: 5: The requested universe does not exist.

**Response fields** (`Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_`)

See [Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_](#roblox-web-webapi-models-apiarrayresponse-roblox-web-responses-thumbnails-thumbnailresponse-) in Models.

**Response example:**
```json
{
  "data": [
    {
      "targetId": "...",
      "state": "...",
      "imageUrl": "...",
      "version": "...",
      "thumbnailSource": "..."
    }
  ]
}
```

**Example:**
```bash
curl -b ".ROBLOSECURITY=$ROBLOSECURITY" \
  "https://thumbnails.roblox.com/v1/games/{UNIVERSEID}/thumbnails?thumbnailIds={VALUE}"
```

### GET `/v1/places/gameicons` [STABLE]

Fetches game icon URLs for a list of places. Ids that do not correspond to a valid place will be filtered out.

**Server:** `https://thumbnails.roblox.com`

**Auth:** Cookie (`.ROBLOSECURITY`)

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `placeIds` | query | `integer[]` | Yes | The place ids. |
| `returnPolicy` | query | `PlaceHolder \| ForcePlaceHolder \| AutoGenerated \| ForceAutoGenerated` | No | Optional policy to use in selecting game icon to return (default = PlaceHolder). Valid values: `PlaceHolder`, `ForcePlaceHolder`, `AutoGenerated`, `ForceAutoGenerated` |
| `size` | query | `string enum (6 values)` | No | The thumbnail size, formatted widthxheight Valid values: `50x50`, `128x128`, `150x150`, `256x256`, `420x420`, `512x512` |
| `format` | query | `Png \| Jpeg \| Webp` | No | The thumbnail format Valid values: `Png`, `Jpeg`, `Webp` |
| `isCircular` | query | `true \| false` | No | The circle thumbnail output parameter, true or false Valid values: `true`, `false` |

**Responses:**

- `200`: OK → `Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_`
- `400`: 1: There are too many requested Ids. 2: The requested image format is invalid. Please see documentation for valid thumbnail format parameter name and values. 3: The requested size is invalid. Please see documentation for valid thumbnail size parameter name and format. 4: The requested Ids are invalid, of an invalid type or missing. 8: The requested return policy is invalid (must be PlaceHolder, AutoGenerated or ForceAutoGenerated). 10: Circular thumbnail requests are not allowed
- `403`: 9: User not authorized to use AutoGenerated or ForceAutoGenerated return policies.

**Response fields** (`Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_`)

See [Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_](#roblox-web-webapi-models-apiarrayresponse-roblox-web-responses-thumbnails-thumbnailresponse-) in Models.

**Response example:**
```json
{
  "data": [
    {
      "targetId": "...",
      "state": "...",
      "imageUrl": "...",
      "version": "...",
      "thumbnailSource": "..."
    }
  ]
}
```

**Error handling:** `403`: Verify your API key has the required scopes listed above. 

**Example:**
```bash
curl -b ".ROBLOSECURITY=$ROBLOSECURITY" \
  "https://thumbnails.roblox.com/v1/places/gameicons?placeIds={VALUE}"
```

### GET `/v1/resize/{hash}/{width}/{height}/{type}/{format}/{filterType}`

Resizes larger thumbnails to specified size and format

**Server:** `https://thumbnailsresizer.roblox.com`

**Auth:** 

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `hash` | path | `string` | Yes | Hash of larger thumbnail |
| `width` | path | `integer` | Yes | Desired width of thumbnail |
| `height` | path | `integer` | Yes | Desired height of thumbnail |
| `type` | path | `string` | Yes | Thumbnail Type |
| `format` | path | `string` | Yes | Desired image format of the thumbnail |
| `filterType` | query | `string` | Yes | E.g. is output circular |
| `shouldModify` | query | `boolean` | No |  |

**Responses:**

- `200`: OK

**Example:**
```bash
curl -H "Authorization: Bearer $ROBLOX_ACCESS_TOKEN" \
  "https://thumbnailsresizer.roblox.com/v1/resize/{HASH}/{WIDTH}/{HEIGHT}/{TYPE}/{FORMAT}/{filterType}?filterType={VALUE}"
```

### GET `/v1/secureresize/{thumbPrint}/{hash}/{width}/{height}/{type}/{format}/{filterType}`

Decrypts and Resizes larger thumbnails to specified size and format

**Server:** `https://thumbnailsresizer.roblox.com`

**Auth:** 

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `thumbPrint` | path | `string` | Yes | The thumbPrint that represents the key version |
| `hash` | path | `string` | Yes | Hash of larger thumbnail |
| `width` | path | `integer` | Yes | Desired width of thumbnail |
| `height` | path | `integer` | Yes | Desired height of thumbnail |
| `type` | path | `string` | Yes | Thumbnail Type |
| `format` | path | `string` | Yes | Desired image format of the thumbnail |
| `filterType` | query | `string` | No | E.g. is output circular |

**Responses:**

- `200`: OK

**Example:**
```bash
curl -H "Authorization: Bearer $ROBLOX_ACCESS_TOKEN" \
  "https://thumbnailsresizer.roblox.com/v1/secureresize/{THUMBPRINT}/{HASH}/{WIDTH}/{HEIGHT}/{TYPE}/{FORMAT}/{filterType}"
```

### GET `/v1/users/outfit-3d` [BETA]

Get 3d object for an outfit

**Server:** `https://thumbnails.roblox.com`

**Auth:** Cookie (`.ROBLOSECURITY`) or API Key (`x-api-key` header) or OAuth 2.0 Bearer token

**Scopes:** `thumbnail:read`

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `outfitId` | query | `integer` | Yes | CSV for the userIds to get user outfits |

**Responses:**

- `200`: OK → `ThumbnailsApi.Roblox.Web.Responses.Thumbnails.ThumbnailResponse`

**Response fields** (`ThumbnailsApi.Roblox.Web.Responses.Thumbnails.ThumbnailResponse`)

See [ThumbnailsApi.Roblox.Web.Responses.Thumbnails.ThumbnailResponse](#thumbnailsapi-roblox-web-responses-thumbnails-thumbnailresponse) in Models.

**Response example:**
```json
{
  "targetId": 0,
  "state": "Error",
  "imageUrl": "string",
  "version": "string",
  "thumbnailSource": "string"
}
```

**Rate Limits:** perApiKeyOwner: 100/minute, perOauth2Authorization: 100/minute

**Example:**
```bash
curl -H "x-api-key: $ROBLOX_API_KEY" \
  "https://thumbnails.roblox.com/v1/users/outfit-3d?outfitId={VALUE}"
```

### GET `/v1/users/outfits` [STABLE]

Get outfits for the given CSV of userOutfitIds

**Server:** `https://thumbnails.roblox.com`

**Auth:** Cookie (`.ROBLOSECURITY`)

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `userOutfitIds` | query | `integer[]` | Yes | CSV for the userOutfitIds to get user outfits |
| `size` | query | `150x150 \| 420x420` | No | The thumbnail size, formatted widthxheight Valid values: `150x150`, `420x420` |
| `format` | query | `Png \| Webp` | No | The thumbnail format Valid values: `Png`, `Webp` |
| `isCircular` | query | `true \| false` | No | The circle thumbnail output parameter, true or false Valid values: `true`, `false` |

**Responses:**

- `200`: OK → `Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_`
- `400`: 1: There are too many requested Ids. 2: The requested image format is invalid. Please see documentation for valid thumbnail format parameter name and values. 3: The requested size is invalid. Please see documentation for valid thumbnail size parameter name and format. 4: The requested Ids are invalid, of an invalid type or missing. 10: Circular thumbnail requests are not allowed

**Response fields** (`Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_`)

See [Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_](#roblox-web-webapi-models-apiarrayresponse-roblox-web-responses-thumbnails-thumbnailresponse-) in Models.

**Response example:**
```json
{
  "data": [
    {
      "targetId": "...",
      "state": "...",
      "imageUrl": "...",
      "version": "...",
      "thumbnailSource": "..."
    }
  ]
}
```

**Example:**
```bash
curl -b ".ROBLOSECURITY=$ROBLOSECURITY" \
  "https://thumbnails.roblox.com/v1/users/outfits?userOutfitIds={VALUE}"
```

### GET `/v2/games/{universeId}/media`

Get the game media data

**Server:** `https://games.roblox.com`

**Auth:** Cookie (`.ROBLOSECURITY`)

**Parameters:**

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `universeId` | path | `integer` | Yes | The id of the universe we get media data from. |
| `fetchAllExperienceRelatedMedia` | query | `boolean` | No | to tell if the API query is to fetch all related media for this experience |

**Responses:**

- `200`: OK → `Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Games.GameMediaItemResponseV2_`
- `400`: 3: The universe's root place is invalid.
- `404`: 2: The requested universe does not exist.

**Response fields** (`Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Games.GameMediaItemResponseV2_`)

See [Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Games.GameMediaItemResponseV2_](#roblox-web-webapi-models-apiarrayresponse-roblox-web-responses-games-gamemediaitemresponsev2-) in Models.

**Response example:**
```json
{
  "data": [
    {
      "assetTypeId": "...",
      "assetType": "...",
      "imageId": "...",
      "videoHash": "...",
      "videoTitle": "...",
      "approved": "..."
    }
  ]
}
```

**Example:**
```bash
curl -b ".ROBLOSECURITY=$ROBLOSECURITY" \
  "https://games.roblox.com/v2/games/{UNIVERSEID}/media"
```

## Models

### Roblox.Thumbnails.Apis.Models.ThumbnailBatchRequest

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `requestId` | `string` | No | The request id. (Generated client side, used to represent the items in the request) |
| `targetId` | `integer` | No | The thumbnail target id |
| `token` | `string` | No | Alternative ase token used to identify a thumbnail |
| `alias` | `string` | No | Alternative string used to identify a thumbnail instead of targetId |
| `type` | `string enum (19 values)` | No | The type of the thumbnails ['Avatar' = 1, 'AvatarHeadShot' = 2, 'GameIcon' = 3, 'BadgeIcon' = 4, 'GameThumbnail' = 5, 'GamePass' = 6, 'Asset' = 7, 'BundleThumbnail' = 8, 'Outfit' = 9, 'GroupIcon' = 10, 'DeveloperProduct' = 11, 'AvatarBust' = 12, 'AutoGeneratedAsset' = 13, 'PlaceIcon' = 14, 'AutoGeneratedGameIcon' = 15, 'ForceAutoGeneratedGameIcon' = 16, 'Look' = 17, 'CreatorContextAsset' = 18, 'Screenshot' = 19] Values: Avatar, AvatarHeadShot, GameIcon, BadgeIcon, GameThumbnail, GamePass, Asset, BundleThumbnail, Outfit, GroupIcon, DeveloperProduct, AvatarBust, AutoGeneratedAsset, PlaceIcon, AutoGeneratedGameIcon, ForceAutoGeneratedGameIcon, Look, CreatorContextAsset, Screenshot |
| `size` | `string` | No | The thumbnail size |
| `format` | `string` | No | The thumbnail format |
| `isCircular` | `boolean` | No | Is the thumbnail circular shape |
| `accessContext` | `string` | No | Access context for asset permission checks (only relevant for Asset thumbnail types) |
| `headShape` | `string` | No | Head shape for dynamic head thumbnails (only relevant for Asset thumbnail types with dynamic head) |

### Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailBatchResponse_

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `data` | `Roblox.Web.Responses.Thumbnails.ThumbnailBatchResponse[]` | No |  |

### Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Thumbnails.ThumbnailResponse_

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `data` | `ThumbnailsApi.Roblox.Web.Responses.Thumbnails.ThumbnailResponse[]` | No |  |

### Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Thumbnails.Api.Models.UniverseThumbnailsResponse_

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `data` | `Roblox.Thumbnails.Api.Models.UniverseThumbnailsResponse[]` | No |  |

### Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Games.Api.Models.Response.GameMediaItem_

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `data` | `Roblox.Games.Api.Models.Response.GameMediaItem[]` | No |  |

### ThumbnailsApi.Roblox.Web.Responses.Thumbnails.ThumbnailResponse

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `targetId` | `integer` | No |  |
| `state` | `string enum (6 values)` | No | ['Error' = 0, 'Completed' = 1, 'InReview' = 2, 'Pending' = 3, 'Blocked' = 4, 'TemporarilyUnavailable' = 5] Values: Error, Completed, InReview, Pending, Blocked, TemporarilyUnavailable |
| `imageUrl` | `string` | No |  |
| `version` | `string` | No |  |
| `thumbnailSource` | `string` | No |  |

### Roblox.Web.WebAPI.Models.ApiArrayResponse_Roblox.Web.Responses.Games.GameMediaItemResponseV2_

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `data` | `Roblox.Web.Responses.Games.GameMediaItemResponseV2[]` | No |  |