A fast, reliable way to capture any website from Node.js. One GET request via axios, fetch, or got. Screenshots, PDFs, and videos delivered as a CDN URL. No Puppeteer, no Chrome, no infrastructure.
const axios = require('axios');
// Basic screenshot — returns image URL
async function screenshot(url) {
const { data } = await axios.get(
'https://screenshotcore.com/api/v1/screenshot',
{
params: {
token: process.env.SCREENSHOT_API_KEY,
url,
output: 'json',
width: 1280,
height: 800,
},
}
);
return data.screenshot; // CDN image URL
}
screenshot('https://example.com').then(console.log);A Node.js screenshot API lets you capture any public URL as an image, PDF, or video with a single HTTP request. No headless browser, no Puppeteer, and no server infrastructure to run. Instead of bundling Chrome inside your app, you call an external endpoint and get a ready-to-use CDN URL back in milliseconds. Use it as a lightweight Node.js capture API across any environment: Express, NestJS, AWS Lambda, Vercel, Fly.io, and more.
Capture any website from Node.js without running a headless browser. No driver installs, no infrastructure.
No npm install, no Puppeteer, no Playwright. Just axios or native fetch. Works in any Node.js version.
Fire an async capture and receive a signed webhook when it's ready. No polling, no blocking.
Pass output=pdf to get a binary PDF stream. Pipe it directly to the response or write to disk.
Send raw HTML instead of a URL, ideal for OG image generation and invoice rendering.
Provide your own S3 credentials and captures land in your bucket automatically.
Bypass bot detection on any target page. No extra config, just pass stealth=true.
More than screenshots. The screenshot API for Node.js supports PDF generation, async webhooks, and raw HTML rendering, all from the same endpoint.
const axios = require('axios');
const fs = require('fs');
async function urlToPdf(url, outputPath) {
const response = await axios.get(
'https://screenshotcore.com/api/v1/screenshot',
{
params: {
token: process.env.SCREENSHOT_API_KEY,
url,
output: 'pdf',
pdf_page_size: 'A4',
},
responseType: 'arraybuffer',
}
);
fs.writeFileSync(outputPath, response.data);
return outputPath;
}
await urlToPdf('https://example.com', 'report.pdf');Puppeteer works, until it doesn't. Here's the real cost of running a headless browser inside your Node.js app.
100 free captures per month. No credit card. Drop it into any Node.js project in minutes.
Get your free API key →