/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://www.ft.com/content/36343e24-b06f-434d-a7e5-6046e7bcf3df",
"canonical": "https://www.ft.com/content/36343e24-b06f-434d-a7e5-6046e7bcf3df",
"title": "The coming global food crisis",
"description": "Hunger and even famine are foreseeable consequences of the war on Iran. Now the world must act to shield the poorest from effects that will continue long after the fighting stops",
"siteName": "ft.com",
"siteLogoUrl": "https://storage.mostly.film/myframely/logo/ft.com/5fb2d7348498ecb154ad8f8085d8fdbba464c500.svg",
"favicon": "https://images.ft.com/v3/image/raw/ftlogo-v1%3Abrand-ft-logo-square-coloured?source=page-kit&format=svg",
"images": {
"thumbnail": "https://storage.mostly.film/myframely/previews/abe913b1-b755-4134-8f74-ad3d02d2014d/cb4e857670b8.jpg",
"hero": "https://storage.mostly.film/myframely/previews/abe913b1-b755-4134-8f74-ad3d02d2014d/f4cc82f448d0.jpg",
"origin": "https://images.ft.com/v3/image/raw/https%3A%2F%2Fd1e00ek4ebabms.cloudfront.net%2Fproduction%2F4f4f6bea-0396-4bfa-87a6-0db83072114f.jpg?source=next-barrier-page&fit=scale-down&quality=highest&width=700&dpr=1"
},
"provider": null,
"fetchedAt": "2026-10-13T15:37:28.540Z"
}<div class="mPreview_card" data-variant="thumbnail"><a class="mPreview_link" href="https://www.ft.com/content/36343e24-b06f-434d-a7e5-6046e7bcf3df" target="_blank" rel="noopener nofollow"><img class="mPreview_thumb" src="https://storage.mostly.film/myframely/previews/abe913b1-b755-4134-8f74-ad3d02d2014d/cb4e857670b8.jpg" alt="" loading="lazy"><div class="mPreview_body"><h3 class="mPreview_title">The coming global food crisis</h3><p class="mPreview_description">Hunger and even famine are foreseeable consequences of the war on Iran. Now the world must act to shield the poorest from effects that will continue long after the fighting stops</p><div class="mPreview_meta"><img class="mPreview_logo" src="https://storage.mostly.film/myframely/logo/ft.com/5fb2d7348498ecb154ad8f8085d8fdbba464c500.svg" alt="" loading="lazy"><span class="mPreview_site">ft.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.