Users paste URLs, not formatting. Fetch the URL when the message is sent, cache the preview, and render a card with title, description and image — the way big messengers do, without building a crawler.
og:image with fallbacks, so most links get a real preview image
final URL after redirects, so shortlinks resolve before caching
SSRF-guarded fetching — user-submitted URLs can't probe your network
One GET per link, JSON back, no SDK
See it work
Live demoreal endpoint
try:
result appears here
That was the real API, no signup needed. See the docs for the full reference.
Hook it up
# title, description, image, favicon and canonical URL in one GET — no key needed
curl "https://unfurlit.dev/v1/preview?url=https://github.com"