/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.indiedb.com/games/creepy-scary/news/creepy-scary-is-out-now",
"canonical": "https://www.indiedb.com/games/creepy-scary/news/creepy-scary-is-out-now",
"title": "Creepy Scary Free to Play is OUT NOW! news",
"description": "Creepy Scary Released on Steam and Epic Games Store!",
"siteName": "IndieDB",
"siteLogoUrl": "https://storage.mostly.film/myframely/logo/indiedb.com/8e0b9b19038aa2e556bfc0e16cb8550bcc070a05.png",
"favicon": "https://www.indiedb.com/favicon.ico",
"images": {
"thumbnail": "https://storage.mostly.film/myframely/previews/6a4948f5-79d6-453e-a8ed-9c6658e2d7a8/b958dccd4ee1.jpg",
"hero": "https://storage.mostly.film/myframely/previews/6a4948f5-79d6-453e-a8ed-9c6658e2d7a8/152b073162ea.jpg",
"origin": "https://media.indiedb.com/images/articles/1/346/345960/ScreenShot00002.png"
},
"provider": null,
"fetchedAt": "2026-09-13T21:32:46.679Z"
}<div class="mPreview_card" data-variant="thumbnail"><a class="mPreview_link" href="https://www.indiedb.com/games/creepy-scary/news/creepy-scary-is-out-now" target="_blank" rel="noopener nofollow"><img class="mPreview_thumb" src="https://storage.mostly.film/myframely/previews/6a4948f5-79d6-453e-a8ed-9c6658e2d7a8/b958dccd4ee1.jpg" alt="" loading="lazy"><div class="mPreview_body"><h3 class="mPreview_title">Creepy Scary Free to Play is OUT NOW! news</h3><p class="mPreview_description">Creepy Scary Released on Steam and Epic Games Store!</p><div class="mPreview_meta"><img class="mPreview_logo" src="https://storage.mostly.film/myframely/logo/indiedb.com/8e0b9b19038aa2e556bfc0e16cb8550bcc070a05.png" alt="" loading="lazy"><span class="mPreview_site">IndieDB</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.