Generate pixel-perfect screenshots without running your own headless browser. A simple API call replaces Puppeteer, Playwright, or Selenium setups. Pick your device type, viewport, and capture method.

Our Screenshot API gives you everything you need to create beautiful screenshots and rich media cards from any URL.
While websites might change, our commitment to delivering crisp screenshots doesn't. Always expect the best results.
Speed matters. OpenGraph.io's website screenshot API is optimized for performance, capturing website visuals rapidly. No more waiting around for sluggish renders.
Your requirements are unique, and so should be your screenshots. With OpenGraph.io, you get a myriad of customization options – from viewport settings to resolution scaling.
OpenGraph.io's screenshot API is designed with adaptability in mind. Our API seamlessly integrates, ensuring your projects get the visual representation they deserve.
Get consistent website screenshots without manual effort. Our API provides a reliable way to capture web page visuals programmatically.


Control the output of your screenshots with simple yet powerful parameters to match your specific needs.
Your customers will be pleasantly surprised by the quality of screenshots.
5 free screenshots per month.

Use the language you love
import fetch from 'node-fetch';
import * as fs from 'fs';
// Screenshot API
const takeScreenshot = async () => {
// Target URL to capture
const targetUrl = encodeURIComponent("https://example.com");
// Replace xxxxxx with your actual app_id
const url = `https://opengraph.io/api/1.1/screenshot/${targetUrl}?app_id=xxxxxx`;
// Optional parameters
const params = new URLSearchParams({
full_page: "true", // Capture entire page, not just viewport
dimensions: "lg", // 1920x1080 resolution
quality: "80" // Highest quality
});
try {
// Make the request
const response = await fetch(`${url}&${params.toString()}`);
if (response.status === 200) {
// Get the image data
const imageBuffer = await response.arrayBuffer();
// Save the screenshot
fs.writeFileSync("screenshot.png", Buffer.from(imageBuffer));
console.log("Screenshot saved successfully!");
} else {
const errorText = await response.text();
console.error(`Error: API request failed with status code ${response.status}`);
console.error(errorText);
}
} catch (error) {
console.error('Error taking screenshot:', error);
}
};
takeScreenshot();Over 1B Site Previews!

Get started with 5 free screenshots per month. No credit card required. Experience the power of our API with zero commitment.
Sign up for free →Or try our free Screenshot Tool — no account needed