/api/v1 demoExercises all three response shapes (JSON / HTML fragment / web component) against
a single URL. Server-loads via the authenticated path; web-component live-fetch uses /demo/proxy as a stand-in for a consumer's backend proxy.
{
"url": "https://1x.com/photo/3553797",
"canonical": "https://1x.com/photo/3553797",
"title": "Untitled by Wafa Mathiot Lahliti",
"description": "Browse 200,000 curated photos from photographers all over the world",
"siteName": "1x.com",
"siteLogoUrl": "https://storage.mostly.film/myframely/logo/1x.com/98dd16bd768c773f7ff2a47931e5658d440b2288.ico",
"favicon": "https://1x.com/favicon.ico",
"images": {
"thumbnail": "https://storage.mostly.film/myframely/previews/6eda81dd-60c6-4411-b4bb-772c6cf5f96a/c045f99abd46.jpg",
"hero": "https://storage.mostly.film/myframely/previews/6eda81dd-60c6-4411-b4bb-772c6cf5f96a/091ae9f7952b.jpg",
"origin": "https://1x.com/images/user/88b625e720dfaa56b9f0414034be8819-ld.jpg"
},
"provider": null,
"fetchedAt": "2026-10-13T15:34:03.630Z"
}<div class="mPreview_card" data-variant="thumbnail"><a class="mPreview_link" href="https://1x.com/photo/3553797" target="_blank" rel="noopener nofollow"><img class="mPreview_thumb" src="https://storage.mostly.film/myframely/previews/6eda81dd-60c6-4411-b4bb-772c6cf5f96a/c045f99abd46.jpg" alt="" loading="lazy"><div class="mPreview_body"><h3 class="mPreview_title">Untitled by Wafa Mathiot Lahliti</h3><p class="mPreview_description">Browse 200,000 curated photos from photographers all over the world</p><div class="mPreview_meta"><img class="mPreview_logo" src="https://storage.mostly.film/myframely/logo/1x.com/98dd16bd768c773f7ff2a47931e5658d440b2288.ico" alt="" loading="lazy"><span class="mPreview_site">1x.com</span></div></div></a></div>
This component fetches the preview from /demo/proxy on mount, no
pre-serialized attribute. Simulates the pattern a consumer would use if they
proxy the preview call through their own backend.