link part to render a URL as a native preview card.
Send a preview
Add context before the card
Relay preserves part order, so a preview can follow text in the same send:What a link part stores
A link part keeps two things: the URL, and the page title.GET /v1/links/unfurl
when you render:
description, site_name,
image_url, canonical_url, preview_kind, preview_version,
attachment_id, mime_type, filename, size_bytes, width, height,
blur_hash) are still accepted on a send, so existing integrations keep
working, but they are not stored and not echoed back.
Let Relay resolve the title
Sendpreview_state: "pending" when you have not read the page yourself:
message.updated event carrying the settled title. This
always settles — a page with no title clears the marker too — so a pending part
is a preview that is coming, never one that silently failed. A settled part
carries no preview_state key at all.
Fallback
The server never rewrites or shortens the destination.
Choosing the part type
Rich previews use normal message behavior: the same response, history, events,
idempotency, replies, reactions, and delivery and read receipts.
Next steps
- Sending messages for every part type
- Reactions for targeting one part

