How to Take Full-Page Screenshots of Indian Websites with Apify
Capture a complete webpage with an Apify screenshot Actor. Configure full-page, viewport, language, and loading options, then check the output for gaps.
To take a full-page screenshot of an Indian website with Apify, choose a website screenshot Actor in Apify Store, inspect its current input schema, submit the public page URL, enable the Actor’s full-page option, and run it. Then retrieve the image link or dataset record from that Actor’s documented output and inspect the image dimensions and page bottom. Input names, formats, viewport controls, wait behavior, and output fields vary by Actor.
An Indian website is not automatically captured from an Indian IP address. Language, timezone, locale, and proxy controls are also Actor-specific. Use only settings the selected Actor actually exposes, and record them if you need to reproduce the result.
1. Choose and inspect a screenshot Actor
Apify Actors are programs that run tasks on Apify’s platform. Screenshot Actors commonly accept one or more public URLs and return screenshot links or dataset records, but each Actor defines its own inputs and outputs. Apify describes an Actor as “a program that can carry out any task in a web browser.” Apify Help & Support: What is an Actor?
- Open Apify Store and find a website screenshot Actor.
- Read its current input schema, output schema, limits, and maintenance information. Store listings can change.
- Confirm that it supports full-page capture and check the exact parameter name;
fullPageis common, not universal. - Check how the Actor returns results: for example, a dataset record or a file in a key-value store. Follow that Actor’s current documentation to retrieve the image.
For example, the nefes-tools screenshot Actor output schema documents its own output; it should not be treated as a schema shared by all Actors.
2. Configure the capture
Start with the required public URL and full-page mode, then choose only the options the Actor documents.
| Setting | What to check |
|---|---|
| URL | Use the exact public page URL, including the desired path and query parameters. Check redirects and the final URL in the result if the Actor exposes it. |
| Full-page | Enable the documented full-page option. Its name and behavior depend on the Actor. |
| Viewport or device | Select a documented desktop or mobile viewport. If comparing layouts, capture the same URL at each desired size; device presets and pixel density are not consistent across Actors. |
| Format | Choose PNG, JPEG, or PDF only if the Actor supports it. Verify the returned file type rather than assuming the output extension determines the format. |
| Wait and lazy loading | For long pages, use documented scrolling or lazy-load behavior, plus a suitable selector wait, network condition, or delay if available. Scrolling support does not guarantee every component loads. |
| Language and locale | If exposed, set an appropriate Accept-Language header or locale. A language preference may affect page text but does not establish an Indian network location. |
| Timezone and proxy | Use these only when the Actor explicitly supports them. A proxy or geo option must be configured and the actual run checked before describing the capture as India-based. |
| Authentication and access | Determine whether the Actor supports authenticated pages and how credentials are supplied. Some Actors capture only what an anonymous visitor can see and do not log in or solve captchas. |
Example listings illustrate why checking matters: reestri’s screenshot Actor describes its own configuration and limitations, while power_on’s screenshot Actor documents a different set of behavior. These are mutable, Actor-specific descriptions, not guarantees about all Apify screenshot tools.
3. Run the Actor and retrieve the screenshot
In the Actor’s Apify Store page, open its input form, enter the page URL and full-page setting using the exact field names shown there, and add any viewport, format, locale, or wait settings that it supports. Run the Actor and wait for its run to finish. Open the run’s dataset or key-value-store output as directed by the Actor, locate the screenshot record or file, and open or download the returned image link.
There is no universal runnable Apify API payload for this workflow: the Actor identifier, input fields, authorization method, and output schema are Actor-specific. Copy the API or client example from the selected Actor’s current documentation rather than substituting guessed field names. If you automate runs, check the run status before trying to retrieve output, and handle failed runs and missing image records explicitly.
4. Check the result for completeness
- Confirm the output belongs to the intended final URL, not a redirect, error page, or access challenge.
- Inspect image width and height. Some Actor listings describe default full-page limits around 15,000 pixels, and one warns browser capture may clip around 16,000 pixels. These are product-specific examples, not universal Apify limits. Check the selected Actor’s current limit.
- Look at the bottom edge and several points down the page for clipping, blank sections, or repeated sticky elements.
- Check that expected images, fonts, and localized text loaded. Lazy content may need additional scrolling or waiting.
- For reproducibility, record the URL, date and time, Actor, viewport, language or locale, proxy setting, and relevant wait options.
5. Indian website rendering: language is not location
“Indian website” can mean a site serving Indian customers, a page in an Indian language, a regional version, or a page viewed from an Indian network. Those are different conditions. An Accept-Language header can request a language representation; it does not prove that the browser has an Indian IP address or that the site will show a particular state, currency, or regional page.
If location matters, use an Actor whose current configuration explicitly documents proxy or geographic support, configure it as documented, and verify the run’s actual settings. If language matters, set the supported language or locale and inspect the returned page. Do not claim that one configuration reproduces every Indian visitor’s experience.
6. Common problems and fixes
| Symptom | Likely cause | What to do |
|---|---|---|
| The screenshot stops before the page ends | Actor height limit, full-page option omitted, or page content not loaded | Confirm full-page mode and the Actor’s current maximum height. Use supported scroll or lazy-load behavior; split the task into meaningful pages or sections if the tool cannot capture the full height. |
| Images or lower-page sections are blank | Lazy loading, delayed scripts, or a wait condition that ended too early | Enable documented scrolling, wait for a relevant selector, or increase a reasonable delay. Inspect whether the page itself loaded those assets. |
| The page shows a captcha, bot check, or access denied screen | The site blocks automated or anonymous access | Check the Actor’s access limitations and the site’s permitted access path. Do not assume every Actor can solve captchas, authenticate, or rotate proxies. |
| The screenshot is in the wrong language or region | Language, locale, cookies, or network location differ from the target conditions | Set only the language, locale, or proxy options the Actor supports. A language header alone does not create an India-based network vantage point. |
| A cookie banner covers the page | The Actor leaves the consent UI visible or handles it differently | Check whether the Actor documents banner handling. Hiding a banner with CSS is not the same as accepting or rejecting consent; one listing specifically describes CSS hiding without clicking either choice. |
| The result record has no usable image link | Output schema differs from expectations, run failed, or the image is stored separately | Inspect the run status and the Actor’s output schema. Retrieve the file from the documented dataset or key-value-store location. |
| Desktop and mobile images differ unexpectedly | Different viewport dimensions, device settings, or responsive breakpoints | Use documented dimensions, keep other settings constant, and compare the same final URL. |
7. Performance, reliability, and cost considerations
Full-page capture takes longer on long pages, pages with heavy scripts, and pages that load content as the browser scrolls. Wait settings can improve completeness but add run time. Keep a repeatable configuration and avoid excessively long waits when a specific selector or documented network condition can indicate readiness.
Reliability depends on the page as well as the Actor: redirects, dynamic content, bot protection, authentication barriers, animations, ads, video, fonts, and consent overlays can change the result. A successful run does not prove that all content rendered. Inspect dimensions and page content, and retry only after identifying a likely transient issue or adjusting a setting.
Actor prices, usage limits, and feature descriptions are mutable. Check the live Store listing and current platform pricing before choosing or estimating cost. No universal price or runtime applies across screenshot Actors.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server for developers. Its one-call API can return PNG, JPEG, WebP, or PDF, with options for full-page capture, viewport and device presets, lazy-image loading, custom wait conditions, and more. See the ScreenshotNeo API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
Replace the example URL with the page you want to capture. ScreenshotNeo accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before the shot; each step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and responses include X-Page-Verdict and X-Billed headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.
Learn about ScreenshotNeo or sign up for 1,000 free screenshots a month, with no card required.
FAQ
Does Apify guarantee an India-based screenshot?
No. That depends on the selected Actor’s supported proxy or geographic settings and the actual run configuration.
Does full-page mode capture every lazy-loaded element?
No. It may require scrolling or waiting, and page behavior or Actor limits can still leave content missing. Inspect the result.
Can I use this workflow for a private page?
Only if the chosen Actor supports the required authentication method and you are authorized to access the page. Actor behavior varies.
How do I make captures reproducible?
Keep the URL, Actor, viewport, locale or language, proxy configuration, and wait settings consistent, and record them with the capture time.


