When Open Graph images are missing, wrong, or broken — generate a perfect preview screenshot as fallback. One API call.
No credit card required · 500 free previews/month
You can't control what other websites put in their meta tags. And often, they put nothing at all.
A huge portion of the web has no og:image tag at all. Your users see a blank preview or a generic placeholder — terrible for engagement and click-through rates.
Even when OG images exist, they're often the wrong aspect ratio. Twitter wants 2:1, LinkedIn wants 1.91:1, Slack crops differently. Your previews look stretched, cropped, or pixelated.
React, Vue, and Angular apps render client-side. Standard OG scrapers fetch the raw HTML and find empty meta tags. Your link previews show nothing useful for millions of modern websites.
Running your own headless browser infrastructure means managing Chromium updates, memory leaks, zombie processes, and scaling concerns. It's a full-time job that distracts from your core product.
Send a URL, get a consistently sized preview image. Works on JavaScript-rendered sites, SPAs, and everything else. Full Chromium rendering. Device-specific. Cached.
Send URL
Any website, any framework
Chromium renders
Full JS execution, ads blocked
Get preview image
1200x630, cached on R2
# Generate an OG-sized link preview image
$ curl "https://app.snap-render.com/v1/screenshot\
?url=https://example.com\
&width=1200&height=630\
&format=jpeg&quality=85\
&block_ads=true\
&block_cookie_banners=true\
&cache=true" \
-H "X-API-Key: sk_live_your_key_here" \
--output preview.jpg
% Total % Received
100 89k 100 89k 0 0 112k 0 0:00:00 0:00:00 --:--:--
# Use preview.jpg as your og:image fallback
Every feature designed for generating consistent, high-quality social card images at scale.
Real browser engine. JavaScript, CSS animations, web fonts, lazy-loaded images — everything renders exactly as a user would see it. No lightweight scrapers that miss half the page.
Set width=1200&height=630 for the standard Open Graph image size. Works perfectly on Twitter, Facebook, LinkedIn, Slack, Discord, and iMessage.
Generate mobile-view previews with device presets like iphone_15_pro or pixel_7. Show your users exactly how a link looks on different devices.
R2-backed caching with configurable TTL up to 30 days. Cached previews return in under 200ms. Set cache=true and never re-render the same URL twice.
Automatically strips ads, cookie consent banners, and GDPR overlays from previews. Your link cards show the actual content, not a wall of popups and consent dialogs.
Output as PNG, JPEG, or WebP. JPEG at 85% quality gives the best file-size-to-quality ratio for social cards. Control quality from 1–100 with a single parameter.
Every product that shows shared links needs fallback preview images. Here's how teams use SnapRender.
Show users a preview of how their shared links will look on Twitter, LinkedIn, and Facebook before they publish. Fall back to a screenshot when OG tags are missing.
Generate rich link unfurls for shared URLs in your chat product. When Slack-style unfurling fails because OG data is missing, use a screenshot as the preview card image.
Generate visual previews of linked content in email campaigns. Show recipients what they'll see when they click, boosting open rates and engagement with rich visual cards.
Display visual thumbnails alongside aggregated links from across the web. When sources don't provide preview images, generate them automatically with consistent dimensions.
Build a Slack bot that auto-generates visual previews when team members share links. Perfect for design review channels, competitive analysis, and link roundups.
Enhance RSS feed entries with visual previews. Many feed items lack images entirely — generate a preview screenshot for every article to create a more engaging reading experience.
Generate a 1200x630 JPEG link preview with caching in any language. Add fallback logic in minutes.
# Generate a 1200x630 link preview with 24h cache
curl "https://app.snap-render.com/v1/screenshot\
?url=https://example.com\
&width=1200&height=630\
&format=jpeg&quality=85\
&block_ads=true\
&block_cookie_banners=true\
&cache=true" \
-H "X-API-Key: sk_live_your_key_here" \
--output link-preview.jpg
import { SnapRender } from 'snaprender';
const snap = new SnapRender('sk_live_your_key_here');
async function getLinkPreview(url) {
// Generate a 1200x630 OG-sized preview image
const preview = await snap.capture(url, {
width: 1200,
height: 630,
format: 'jpeg',
quality: 85,
block_ads: true,
block_cookie_banners: true,
cache: true
});
// Use as fallback when OG image is missing
return preview;
}
from snaprender import SnapRender
snap = SnapRender("sk_live_your_key_here")
def get_link_preview(url: str) -> bytes:
"""Generate a 1200x630 link preview as OG fallback."""
preview = snap.capture(url,
width=1200,
height=630,
format="jpeg",
quality=85,
block_ads=True,
block_cookie_banners=True,
cache=True
)
# Save or serve as og:image fallback
return preview
Scraping OG tags is not the same as generating real preview images. See how SnapRender compares.
| Feature | SnapRender | OpenGraph.io | Microlink |
|---|---|---|---|
| Screenshot quality | Full Chromium | OG scrape only | Lightweight render |
| Custom viewport | Any size + devices | Limited | |
| Cookie/ad blocking | Built-in | Ad block only | |
| Caching | R2 CDN, configurable TTL | Basic | Basic |
| Price (10K/mo) | $29/mo | $49/mo | $76/mo |
Start with 500 free previews/month. No credit card required. Scale when you're ready.
$79/mo
50,000 previews/mo
Need fewer previews? The free tier includes 500 screenshots/month with all features. See all plans →
SnapRender powers more than just link previews. Explore other use cases.
Sign up, get your API key, and start generating OG fallback images. No credit card. No infrastructure to manage.
Get your free API key