Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →To capture a webpage through a hosted screenshot API from Python, authenticate with the provider, set the page URL and image options, request the capture, then save the returned image bytes. The example below uses ScreenshotOne’s Python SDK; API syntax and credentials are provider-specific. If you would rather avoid setting up a browser or SDK, ScreenshotNeo also offers a one-request API.
Use a hosted screenshot API from Python
You will need an account and API keys from the provider before making a request. ScreenshotOne’s documented SDK flow uses an access key and secret key, creates capture options, retrieves image bytes, and writes those bytes to a file. Install the package first:
python -m pip install screenshotone
Set your credentials as environment variables rather than placing them in the script. For example, in a Unix-like shell:
export SCREENSHOTONE_ACCESS_KEY="your-access-key"
export SCREENSHOTONE_SECRET_KEY="your-secret-key"
Then save and run this Python script:
import os
import shutil
from screenshotone import Client, TakeOptions
client = Client(
os.environ["SCREENSHOTONE_ACCESS_KEY"],
os.environ["SCREENSHOTONE_SECRET_KEY"],
)
options = (
TakeOptions.url("https://example.com")
.format("png")
.viewport_width(1280)
.viewport_height(800)
)
image = client.take(options)
with open("screenshot.png", "wb") as output:
shutil.copyfileobj(image, output)
This is an adaptation of the provider’s documented SDK example, not a separately executed test. The SDK returns an image stream, which the script copies to screenshot.png. See the ScreenshotOne Python SDK documentation for the provider’s current methods and setup details.
#1 Best Overall
Choose the capture area and output format
Set the options to match what the image will be used for. A viewport capture records the visible browser area at the specified dimensions; full-page capture is intended to include content beyond that initial view. ScreenshotOne documents PNG, JPEG, WebP, and PDF output, as well as URL, HTML, and Markdown inputs. Check the provider’s option names and supported combinations before relying on them in an application.
- Viewport dimensions: use width and height that fit the layout you need to inspect or publish.
- Full-page capture: use it when content below the initial viewport matters.
- Format: choose PNG, JPEG, or WebP for an image workflow, or PDF when the result is intended as a document.
- Device rendering: an emulated mobile viewport is not a screenshot from a physical phone. If actual-device fidelity matters, validate in the target browser and device setup.
ScreenshotOne also documents a URL-generation method in its SDK for workflows that need a shareable screenshot URL instead of directly downloading the image.
Rank #2
Keep API credentials and requests safe
Treat API keys as passwords. Store them in environment variables or a secrets manager, do not commit them to source control, and do not expose them in a public webpage or a URL that others can see. Use HTTPS: the provider’s API documentation warns that plain HTTP can expose keys, headers, cookies, and other sensitive data in transit. If you need a shareable URL, use a signed link rather than exposing the secret key.
Do not log complete authenticated request URLs. In production, handle provider errors explicitly: invalid options, internal errors, or usage limits may produce an error response rather than an image. Check the response status and error details before saving or passing the result to image-processing code.
When to use a hosted API or Playwright
A hosted API runs the capture through a provider’s endpoint and returns image data; this suits a small integration when you do not want to operate browser processes. Playwright is an alternative if you want to launch and control the browser in your own environment. Its Python APIs support synchronous and asynchronous screenshots, full-page and element captures, and returning screenshot bytes for later processing.
| Consideration | Hosted screenshot API | Playwright in your environment |
|---|---|---|
| Who runs the browser? | The service provider | You |
| Account and credentials | Requires provider account credentials | No screenshot API provider credentials are inherent to the browser capture itself |
| Control | Use the provider’s documented options and API | Control the browser through Playwright’s Python APIs |
| Operational setup | Make HTTP or SDK requests | Install and run browser software in your environment |
Neither route is universally better. Choose based on where you want browser execution to happen, how much browser control you need, and what operational setup your project can support. The documentation cited here does not establish comparative price, speed, privacy, or regional-location claims.
India-specific account and data considerations
The official API and SDK documentation cited here does not specify India-specific billing terms, supported payment methods, execution regions, latency, or data residency. If any of those affect your project, confirm them directly with the provider before committing sensitive workloads or relying on a particular operational arrangement. Do not assume that a request runs from an Indian IP address simply because you are calling the API from India.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server for developers. Make a GET request with the target URL to retrieve a PNG, JPEG, WebP, or PDF. The example below saves a WebP screenshot of https://example.com; replace that target URL as needed. See the ScreenshotNeo API documentation for request options and setup.
Best Value
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
ScreenshotNeo accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents and MCP clients. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshooting the Python capture
- Python cannot import
screenshotone: install the package in the same Python environment that runs the script withpython -m pip install screenshotone. If you use a virtual environment, activate it first. - A missing-key error appears: confirm both environment variables are set in the shell or runtime that launches Python. Avoid replacing them with hard-coded values in a shared script.
- The output file is not a usable image: check that the request succeeded and produced image content before saving. Handle provider errors and usage limits rather than treating every response as image bytes.
- The result shows only the first screen: verify that you selected the provider’s full-page option rather than only setting viewport dimensions.
- A mobile capture does not match a real phone: the documented output uses device emulation. Test on the actual target browser/device setup when hardware-specific rendering is important.
Frequently Asked Questions
How do I save a website screenshot as a PNG file in Python?
Use a screenshot provider’s Python SDK to request PNG output, then write the returned bytes to a file in binary mode. The ScreenshotOne example above uses shutil.copyfileobj to save the image stream as screenshot.png.
Can I use a screenshot API from India?
The documented API flow can be called from Python, but the cited provider documentation does not establish India-specific billing, payment, execution-region, latency, or data-residency terms. Confirm any of those requirements with your chosen provider.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




