Generate screenshots server-side in Next.js API routes or use client-side for live previews. Works with App Router and Pages Router.
npm install
// app/api/screenshot/route.ts
import { NextResponse } from "next/server";
export async function GET(request) {
const { searchParams } = new URL(request.url);
const url = searchParams.get("url");
const res = await fetch(
"https://snapapi.tech/v1/screenshot?" + new URLSearchParams({
url, api_key: process.env.SNAPAPI_KEY, format: "png"
})
);
return new NextResponse(await res.arrayBuffer(), {
headers: { "Content-Type": "image/png" }
});
}
SnapAPI renders pages in a real Chromium browser, so JavaScript-heavy Next.js apps render perfectly. You get: