Skip to main content
Send {"type":"link","value":"https://..."} as the only part of a message, through either send path. The URL must be absolute and at most 2,048 characters. Relay stores the URL and the app renders the preview. A text part that is only one web address also shows the preview, and a bare domain such as ghost.ai counts and opens as https://ghost.ai. A text part with words around a web address, at the start, the end or the middle, shows as one text bubble with no preview. The app underlines every web address inside a text part, bare domains included, and opens it on tap. The stored part keeps its full text. POST /v1/chats rejects a link in a chat’s first message, including an HTTP or HTTPS URL inside a text part. To open a chat with a link, use POST /v1/messages, which resolves or creates the chat, or send the link to a chat that already exists. Send the link on its own:
Every runtime sends link parts through the send it already has. A runtime with a send tool takes the URL as a link argument or a link kind and posts the words first, then the link as its own message. A runtime that sends the agent’s final text lifts any line that is nothing but a URL out of the words and posts it as its own link message, in order with the text around it; a URL inside a sentence stays words. Each integration says which in its “What it can do” table. A link part renders a card with the page’s title and image. A URL button renders a label that opens the page when tapped.

What you get back

Relay returns 202 with the message. The part you read back carries value and reactions. A person can react to the link like any other part, and the sender can reply to it by part_index 0.

When it fails

Next steps