# app.bsky.embed.gallery

> Published by [bsky-lexicons.bsky.social](https://lexicon.garden/identity/did:plc:4v4y5r3lwsbtmsxhile2ljac)

✓ This is the authoritative definition for this NSID.

## Description

An assortment of media embedded in a Bluesky record (eg, a post).

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:4v4y5r3lwsbtmsxhile2ljac/app.bsky.embed.gallery)
- [Documentation](https://lexicon.garden/lexicon/did:plc:4v4y5r3lwsbtmsxhile2ljac/app.bsky.embed.gallery/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:4v4y5r3lwsbtmsxhile2ljac/app.bsky.embed.gallery/examples)

## Definitions

### `app.bsky.embed.gallery`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `items` | `array` | Yes | The schema-level maxLength of 20 is a future-proof ceiling. Clients should currently enforce a soft limit of 10 items in authoring UIs. |

### `app.bsky.embed.gallery#view`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `items` | `array` | Yes |  |

### `app.bsky.embed.gallery#image`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `alt` | `string` | Yes | Alt text description of the image, for accessibility. |
| `image` | `blob` | Yes |  |
| `aspectRatio` | `ref` → `app.bsky.embed.defs#aspectRatio` | Yes |  |

### `app.bsky.embed.gallery#viewImage`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `alt` | `string` | Yes | Alt text description of the image, for accessibility. |
| `fullsize` | `string` (uri) | Yes | Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View. |
| `thumbnail` | `string` (uri) | Yes | Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View. |
| `aspectRatio` | `ref` → `app.bsky.embed.defs#aspectRatio` | Yes |  |

## Raw Schema

```json
{
  "id": "app.bsky.embed.gallery",
  "defs": {
    "main": {
      "type": "object",
      "required": [
        "items"
      ],
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "refs": [
              "#image"
            ],
            "type": "union",
            "description": "The media items in the gallery. Each item may be of a different type, but all types must be supported by the client."
          },
          "maxLength": 20,
          "description": "The schema-level maxLength of 20 is a future-proof ceiling. Clients should currently enforce a soft limit of 10 items in authoring UIs."
        }
      }
    },
    "view": {
      "type": "object",
      "required": [
        "items"
      ],
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "refs": [
              "#viewImage"
            ],
            "type": "union"
          }
        }
      }
    },
    "image": {
      "type": "object",
      "required": [
        "image",
        "alt",
        "aspectRatio"
      ],
      "properties": {
        "alt": {
          "type": "string",
          "description": "Alt text description of the image, for accessibility."
        },
        "image": {
          "type": "blob",
          "accept": [
            "image/*"
          ],
          "maxSize": 2000000
        },
        "aspectRatio": {
          "ref": "app.bsky.embed.defs#aspectRatio",
          "type": "ref"
        }
      }
    },
    "viewImage": {
      "type": "object",
      "required": [
        "thumbnail",
        "fullsize",
        "alt",
        "aspectRatio"
      ],
      "properties": {
        "alt": {
          "type": "string",
          "description": "Alt text description of the image, for accessibility."
        },
        "fullsize": {
          "type": "string",
          "format": "uri",
          "description": "Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View."
        },
        "thumbnail": {
          "type": "string",
          "format": "uri",
          "description": "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View."
        },
        "aspectRatio": {
          "ref": "app.bsky.embed.defs#aspectRatio",
          "type": "ref"
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "An assortment of media embedded in a Bluesky record (eg, a post)."
}
```
