
How to Screenshot a Notion-Powered Website in Node.js

Snapshot Site Team
01 Mar 2025 - 02 Mins read
Turning a Notion page into a public website — directly, or through a wrapper tool that adds a custom domain and styling on top — has become a common, fast way for small teams to ship a docs site, a changelog, or a simple marketing page without a traditional CMS. That convenience comes with a rendering trade-off worth knowing about before automating screenshots of one.
Why Notion-Powered Sites Have Their Own Quirks
- Slower initial content load is common, since the page is rendering Notion's own block-based document structure rather than a lightweight static page.
- Nested toggles and collapsed sections in the source Notion page may render collapsed by default, so a capture shows only what's expanded, not necessarily everything on the page.
- Embedded databases and galleries (Notion's table or gallery views) can take a moment longer to populate than plain text blocks.
Node.js Example
const response = await fetch("https://api.prod.ss.snapshot-site.com/api/v1/screenshot", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-snapshotsiteapi-key": "YOUR_API_KEY",
},
body: JSON.stringify({
url: "https://example-notion-site.com/",
format: "png",
width: 1440,
height: 900,
fullSize: true,
hideCookie: true,
delay: 3,
}),
});
const data = await response.json();
console.log(data);
A longer delay than a typical marketing page is worth budgeting for here, since Notion-based pages tend to load their content in stages rather than all at once.
Practical Recommendations
- Budget extra
delayfor database and gallery blocks. These tend to populate later than plain text and heading blocks. - Default to
fullSize: true. Notion-based docs and changelog pages are usually long, scrollable documents. - Decide deliberately whether collapsed toggles should be expanded before capturing, if the point of the screenshot is documenting the page's complete content rather than its default collapsed view.
Common Use Cases
- Archiving a changelog or documentation page's state at a point in time
- Visual QA before switching a Notion-based site's theme or custom domain setup
- Generating preview thumbnails for an internal content calendar
- Feeding a scheduled visual monitor, as described in Visual Uptime Monitoring
For teams that shipped a fast, Notion-based site and now want it monitored the same way any other page would be, Snapshot Site handles the capture with one HTTP call, no extra tooling required.

