app.bsky.embed.getEmbedExternalView

bsky-lexicons.bsky.social

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Resolve one AT-URI record into the data needed to render an enhanced external embed. The records are validated against the requested `url` before any view is built. When validation passes, returns `data`, `associatedRefs` (strongRefs to embed into a post's external.associatedRefs) and the raw `associatedRecords`, plus a legacy `view` for Standard.site records only. When validation fails, only `unverifiedAssociatedRefs` and `unverifiedAssociatedRecords` are returned and no view or data is built. The response is empty (`{}`) when no record URI was usable or the record could not be resolved; clients should fall back to their own link-card rendering in that case and skip writing strongRefs to the post.",
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "associatedRecords": {
              "items": {
                "description": "The raw record data of the Atmosphere records selected for persistence, index-aligned with `associatedRefs`. Returned for convenience, to avoid the client separately fetching them. Present only when validation passed.",
                "type": "unknown"
              },
              "type": "array"
            },
            "associatedRefs": {
              "description": "StrongRefs (URI+CID) of the Atmosphere records selected for persistence in a post, suitable for embedding into its external.associatedRefs: the canonical record, plus only the additional records the service chooses to persist for its collection. This can be a subset of the records used to render `data`, which may also draw on other hydrated records such as recommendations, subscriptions, or favorites. Present only when validation passed. Index-aligned with `associatedRecords`.",
              "items": {
                "ref": "com.atproto.repo.strongRef",
                "type": "ref"
              },
              "type": "array"
            },
            "data": {
              "description": "Preferred to #view. Hydrated data of the embed. Present only when validation passed and the records supply enough information to populate the required fields.",
              "refs": [
                "app.bsky.embed.external#viewArticle",
                "app.bsky.embed.external#viewArticlePublication",
                "app.bsky.embed.external#viewGallery",
                "app.bsky.embed.external#viewLivestream"
              ],
              "type": "union"
            },
            "unverifiedAssociatedRecords": {
              "items": {
                "description": "The raw record data of the persistence-selected Atmosphere records, index-aligned with `unverifiedAssociatedRefs`. Present only when validation failed.",
                "type": "unknown"
              },
              "type": "array"
            },
            "unverifiedAssociatedRefs": {
              "description": "StrongRefs (URI+CID) of the same persistence-selected Atmosphere records (the canonical record plus chosen additional records) when validation of the requested `url` failed. These must not be written to a post. Index-aligned with `unverifiedAssociatedRecords`.",
              "items": {
                "ref": "com.atproto.repo.strongRef",
                "type": "ref"
              },
              "type": "array"
            },
            "view": {
              "description": "Legacy hydrated view of the embed, returned for Standard.site records only. Present only when validation passed and the records supply enough information to populate the required `viewExternal` fields.",
              "ref": "app.bsky.embed.external#view",
              "type": "ref"
            }
          },
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "canonicalUri": {
            "description": "The canonical AT URI of the atproto record found on the webpage. When provided, takes precedence over `uris`, which is then ignored.",
            "format": "at-uri",
            "type": "string"
          },
          "uris": {
            "description": "Legacy input for Standard.site callers, ignored when `canonicalUri` is provided. A single record is selected from it: the first site.standard.document URI, otherwise the first site.standard.publication URI. Other entries are ignored; a document's publication is discovered from the document itself.",
            "items": {
              "format": "at-uri",
              "type": "string"
            },
            "maxLength": 4,
            "type": "array"
          },
          "url": {
            "description": "The canonical web URL the embed represents (typically the URL the user pasted into the composer). Used as the returned view's `uri`, and validated against the resolved records.",
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "params"
      },
      "type": "query"
    }
  },
  "id": "app.bsky.embed.getEmbedExternalView",
  "lexicon": 1
}

Validate Record

Validate a record against app.bsky.embed.getEmbedExternalView

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:4v4y5r3lwsbtmsxhile2ljac
CID
bafyreicy4fjqex6gezxnqgc7k3y6qg2ghsxmwr3ugm3bifdthukn7d7lvm
Indexed At
2026-10-17 01:31 UTC
AT-URI
at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.getEmbedExternalView

Version History (2 versions)

Referenced Schemas (5)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • town.delve.embed.getEmbedExternalView querynot from the namespace authority

    Resolve one or more AT-URIs into the data needed to render an enhanced external embed. Returns `associatedRefs` (strongRefs to embed into a post's external.associatedRefs), the raw `associatedRecords`, and a hydrated `v…

  • town.delve.embed.external objectnot from the namespace authority

    A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post).

  • A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post).

  • Fetches and parses a link preview. The AppView fetches the URL on the client's behalf, so the client's address is never exposed to the target site.

Lexicon Garden

@