# net.wireservice.component.embed

> Published by [wireservice.net](https://lexicon.garden/identity/did:plc:lktj64hp7lc3fzuf6iyy7lwj)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:lktj64hp7lc3fzuf6iyy7lwj/net.wireservice.component.embed)
- [Documentation](https://lexicon.garden/lexicon/did:plc:lktj64hp7lc3fzuf6iyy7lwj/net.wireservice.component.embed/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:lktj64hp7lc3fzuf6iyy7lwj/net.wireservice.component.embed/examples)

## Definitions

### `net.wireservice.component.embed`

**Type**: `object`

Embed component: external content (a web page, video, or social post) or an ATProto record, with a snapshot of its metadata taken when it was embedded. Renderers show the snapshot as a card and MAY upgrade it to an interactive player they recognize from the URL or record; the lexicon names no providers.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `accessibilityCaption` | `string` | No |  |
| `aspectRatio` | `ref` → `net.wireservice.defs#aspectRatio` | No | Aspect ratio for the embed frame, primarily for web video embeds. |
| `authorName` | `string` | No | Snapshot: who made it. |
| `caption` | `array` | No | Visible caption as an array of text runs with optional formatting marks. |
| `description` | `string` | No | Snapshot: a summary or excerpt (for a social post, its text). |
| `explicitContent` | `boolean` | No |  |
| `hidden` | `boolean` | No |  |
| `identifier` | `string` | No |  |
| `layout` | `string` | No |  |
| `providerName` | `string` | No | Snapshot: the site or service it came from. |
| `publishedAt` | `string` (datetime) | No | Snapshot: when the embedded content was published. |
| `record` | `ref` → `com.atproto.repo.strongRef` | No | The embedded ATProto record, when there is one (e.g. a Bluesky post). Lets renderers that understand the record type show it natively. |
| `role` | `string` | No | Deprecated. Renderers choose presentation from the URL or record; providers are not enumerated here. |
| `style` | `string` | No |  |
| `thumbnail` | `blob` | No | Snapshot: a preview image, copied so the embed survives the original going away. |
| `title` | `string` | No | Snapshot: the embedded content’s title. |
| `url` | `string` (uri) | Yes | URL of the content to embed. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Embed component: external content (a web page, video, or social post) or an ATProto record, with a snapshot of its metadata taken when it was embedded. Renderers show the snapshot as a card and MAY upgrade it to an interactive player they recognize from the URL or record; the lexicon names no providers.",
      "properties": {
        "accessibilityCaption": {
          "maxGraphemes": 2000,
          "maxLength": 20000,
          "type": "string"
        },
        "aspectRatio": {
          "description": "Aspect ratio for the embed frame, primarily for web video embeds.",
          "ref": "net.wireservice.defs#aspectRatio",
          "type": "ref"
        },
        "authorName": {
          "description": "Snapshot: who made it.",
          "maxGraphemes": 200,
          "maxLength": 2000,
          "type": "string"
        },
        "caption": {
          "description": "Visible caption as an array of text runs with optional formatting marks.",
          "items": {
            "ref": "net.wireservice.defs#textRun",
            "type": "ref"
          },
          "type": "array"
        },
        "description": {
          "description": "Snapshot: a summary or excerpt (for a social post, its text).",
          "maxGraphemes": 1000,
          "maxLength": 10000,
          "type": "string"
        },
        "explicitContent": {
          "type": "boolean"
        },
        "hidden": {
          "type": "boolean"
        },
        "identifier": {
          "maxLength": 256,
          "type": "string"
        },
        "layout": {
          "maxLength": 256,
          "type": "string"
        },
        "providerName": {
          "description": "Snapshot: the site or service it came from.",
          "maxGraphemes": 100,
          "maxLength": 1000,
          "type": "string"
        },
        "publishedAt": {
          "description": "Snapshot: when the embedded content was published.",
          "format": "datetime",
          "type": "string"
        },
        "record": {
          "description": "The embedded ATProto record, when there is one (e.g. a Bluesky post). Lets renderers that understand the record type show it natively.",
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "role": {
          "description": "Deprecated. Renderers choose presentation from the URL or record; providers are not enumerated here.",
          "knownValues": [
            "web-video",
            "tweet",
            "instagram",
            "facebook-post",
            "tiktok"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "style": {
          "maxLength": 256,
          "type": "string"
        },
        "thumbnail": {
          "accept": [
            "image/jpeg",
            "image/png",
            "image/webp",
            "image/gif"
          ],
          "description": "Snapshot: a preview image, copied so the embed survives the original going away.",
          "maxSize": 1000000,
          "type": "blob"
        },
        "title": {
          "description": "Snapshot: the embedded content’s title.",
          "maxGraphemes": 300,
          "maxLength": 3000,
          "type": "string"
        },
        "url": {
          "description": "URL of the content to embed.",
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    }
  },
  "id": "net.wireservice.component.embed",
  "lexicon": 1
}
```
