--- layout: page title: full_screen permalink: /parameters/full_screen/ parent: Parameters nav_order: 30 description: >- Capture the entire height of a webpage, including content below the fold --- # Using full_screen {: .no_toc } {: .fs-9 } Capture full-length screenshots of entire webpages {: .fs-6 .fw-300 }
## How it works The `full_screen` parameter captures the entire height of a webpage, including all content that would normally require scrolling to see. When set to `true`, the API scrolls through the entire page and stitches together a complete screenshot. ## When to use it Use `full_screen` when you need to capture: - Long blog posts or articles - Full landing pages - Documentation pages - Email newsletters - Any content that extends below the initial viewport ## Default behavior By default, `full_screen` is `false`. The API captures only what's visible in the viewport (default size: `1920x1080`). And automatically crops to the content inside the viewport. ## Example usage ### Capturing a full webpage ```bash curl -X POST https://hcti.io/v1/image -u 'UserID:APIKey' \ --data-urlencode url="https://example.com/long-article" \ --data full_screen=true ``` ### In a JSON request ```json { "url": "https://example.com/blog-post", "full_screen": true } ``` ### Combined with other parameters For best results on long pages, combine `full_screen` with other parameters: ```json { "url": "https://example.com/documentation", "full_screen": true, "device_scale": 2, "block_consent_banners": true } ``` ## Considerations ### File size Full-screen captures of long pages produce larger images. Consider: - Using `device_scale: 1` instead of `2` to reduce file size - Using WebP format (append `.webp` to the image URL) for better compression - The maximum image height is limited to prevent excessively large files ### Rendering time Long pages take more time to render because the API must: 1. Load the entire page 2. Scroll through all content to trigger lazy-loaded elements 3. Stitch together the final image For very long pages, consider using `ms_delay` to ensure all content loads properly. ### Lazy-loaded content Many modern websites lazy-load images and content as you scroll. The `full_screen` option handles this by scrolling through the page before capturing. However, if content still appears missing, try adding `ms_delay` to give elements more time to load. ## Common use cases ### Documentation screenshots Capture entire documentation pages for offline reference or archival: ```json { "url": "https://docs.example.com/api-reference", "full_screen": true, "viewport_width": 1200, "viewport_height": 1200 } ``` Note: In this example, even though we set [`viewport_height`](/parameters/viewport/#viewport-width-and-height), the API will still generate an image larger if needed based on the URL. ### Email newsletter previews Generate full previews of email newsletters: ```json { "html": "", "full_screen": true, "viewport_width": 600, "viewport_height": 1200 } ``` Note: In this example, even though we set a viewport_height, the API will still generate an image larger if needed based on the HTML content. ### Landing page captures Screenshot entire landing pages for design review or competitive analysis: ```json { "url": "https://example.com", "full_screen": true, "device_scale": 2, "block_consent_banners": true } ``` {% include hint.md title="Performance tip" text="For very long pages, consider whether you really need the full page. Using the `selector` parameter to capture just a specific section is often faster and produces smaller files." %} {% include code_footer.md version=1 %}