Most screenshot failures on modern sites aren't rendering bugs — they're lazy loading. Images, embeds, and feed items below the fold simply haven't loaded when a naive screenshot fires. Screenshotty's scroll_to_bottom option walks the page the way a person would, waits for content to settle, then captures.
Combine it with full_page=true for complete top-to-bottom captures of e-commerce listings, news feeds, and long-form articles.
Try the free Website Screenshot toolimport requestsresponse = requests.post("https://api.screenshotty.link/api/v1/screenshot",json={"url": "https://example.com/products","full_page": True,"scroll_to_bottom": True,"ready_event": "networkidle","format": "image/jpeg",},headers={"X-Api-Key": "YOUR_API_KEY"},)with open("products.jpg", "wb") as f:f.write(response.content)
The page is scrolled progressively so IntersectionObserver-based lazy loaders fire exactly as they would for a real visitor.
Combine with ready_event and wait_ms to let animations, fonts, and late XHR content finish before the shot.
scroll_to_bottom + full_page captures the entire loaded page in one image or PDF.
Ad and cookie-banner blocking apply during the scroll, so overlays never photobomb the capture.
Almost always lazy loading: the page only loads images as they scroll into view. Set scroll_to_bottom=true so Screenshotty scrolls the page first and triggers those loads before capturing.
full_page controls how much of the page is captured (the entire height). scroll_to_bottom controls loading — it scrolls first so lazy content renders. For long modern pages you usually want both.
Yes. Screenshotty includes 100 screenshots per month for free with no credit card required. Paid plans start at $9/month for 2,500 screenshots, with pay-as-you-go overage at $0.004 per screenshot.
Yes. Every capture runs in a real headless Chrome browser, so single-page apps, lazy-loaded images, and dynamic content render exactly as they do for a real visitor. You can also wait for a specific ready event or add a custom delay with wait_ms.