Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
World desk5 min

How to Set Screenshot Formats and Image Quality in Apify

Apify screenshot format and quality settings depend on the method and SDK version your Actor uses. Learn how to select PNG or JPEG, configure saveSnapshot quality, and store the image with matching metadata.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

In Apify, screenshot format and quality depend on the screenshot API your Actor uses—not one platform-wide setting. With Puppeteer, page.screenshot() returns PNG by default; set type: 'jpeg' for JPEG. For the separate saveSnapshot utility documented in Apify SDK 2.3, screenshotQuality ranges from 0 to 100 and defaults to 50. Use the option that matches your Actor’s installed library and SDK version.

Choose the screenshot API your Actor actually uses

Apify Actors can use different libraries and SDK versions. The available settings are therefore tied to the method taking the screenshot: the general Puppeteer page method documents a PNG default and a type option for JPEG, while the SDK 2.3 saveSnapshot reference documents its own screenshotQuality option. Do not assume that screenshotQuality is a global setting for every screenshot method.

As an Amazon Associate I earn from qualifying purchases.

  1. Check the Actor’s source code to identify the screenshot method it calls.
  2. Check the installed Apify SDK and browser-library versions, then consult the matching API reference.
  3. Set format and quality using options supported by that method, and save the resulting bytes with matching file metadata.

Apify’s Page methods guide documents Puppeteer’s PNG default and JPEG selection. The Apify SDK 2.3 Puppeteer reference documents quality for saveSnapshot.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Set PNG or JPEG with Puppeteer

page.screenshot() produces PNG by default. To request JPEG, pass type: 'jpeg'. The method returns image bytes, which you can save to a file or send to Apify storage.

PNG, the default

const screenshot = await page.screenshot();

If you save this output as an image, use a PNG filename and PNG content type.

JPEG

const screenshot = await page.screenshot({ type: 'jpeg' });

Save JPEG output with a .jpg filename and image/jpeg content type. A file extension or content type does not convert the image: they should describe the format actually returned by the screenshot method. See Apify’s Puppeteer screenshot-saving example for JPEG naming and content-type guidance.

Set quality with SDK 2.3 saveSnapshot

The Apify SDK 2.3 API reference documents screenshotQuality for puppeteer.saveSnapshot. Its default is 50, and the documented range is 0–100. Higher quality produces larger images and requires more storage. This is a setting for that documented utility; it is not a universal quality parameter for page.screenshot() or every Actor screenshot workflow.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the option as documented by the installed SDK version. If you are using another SDK version or a different screenshot method, verify that method’s options rather than copying this setting.

Save screenshot bytes to Apify storage

Apify’s JavaScript SDK 3.6 screenshot guide demonstrates taking a screenshot buffer with Puppeteer and saving it through Actor.setValue with a content type. For a PNG screenshot, the key and content type should identify PNG:

const screenshot = await page.screenshot();
await Actor.setValue('screenshot.png', screenshot, {
    contentType: 'image/png',
});

For JPEG, request JPEG from Puppeteer and use a JPEG key and content type:

const screenshot = await page.screenshot({ type: 'jpeg' });
await Actor.setValue('screenshot.jpg', screenshot, {
    contentType: 'image/jpeg',
});

These examples show the format-metadata pairing; adapt the imports and Actor setup to the SDK version and structure already used by your Actor. The Apify SDK 3.6 screenshot guide shows the screenshot-buffer and key-value-store workflow.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose a format and quality for your output

Choice What the documentation establishes What to check in your workflow
PNG page.screenshot() uses PNG by default. Whether downstream tools expect PNG; use a PNG extension and content type.
JPEG Set the Puppeteer screenshot type option to jpeg. Whether downstream tools accept JPEG; use a .jpg extension and image/jpeg.
saveSnapshot quality In the Apify SDK 2.3 API reference, screenshotQuality defaults to 50 and accepts 0–100; higher quality means larger images and more storage. Whether this is the method and SDK version your Actor uses, and whether the resulting output suits your visual and storage needs.

The documentation gives no universal file-size reduction or best quality value. To select a setting, capture representative pages at the values supported by your method, then inspect visual details and resulting file sizes for your page dimensions and downstream use. This is a practical comparison workflow, not a claim that any one value is optimal.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Find the output in the Actor’s storage

Apify describes key-value stores as a common place for files and other unstructured results, while datasets commonly hold structured results. The exact output location depends on the Actor. Check its README to learn where it writes screenshots and how it names them; do not assume every Actor exposes captured files in the same place. See Apify’s Actor input and output guide.

Troubleshoot format and quality problems

  • The image is still PNG: Confirm the code path uses Puppeteer’s page.screenshot() and passes type: 'jpeg'. Check the actual bytes or open the saved image; changing only the filename does not change its encoding.
  • The quality option is ignored or rejected: Verify that the Actor calls puppeteer.saveSnapshot and that its installed SDK supports the documented option. The quality range cited here belongs to the SDK 2.3 reference, not every screenshot API.
  • The file cannot be opened or is mislabeled: Align the screenshot method’s output format, filename extension, and storage content type. PNG should be identified as image/png; JPEG as image/jpeg.
  • You cannot find the saved screenshot: Check the Actor README and its storage/output behavior. Apify notes that output organization is Actor-specific.
  • Images use more storage than expected: Higher saveSnapshot quality produces larger images. Compare representative outputs at supported settings rather than assuming a particular quality value will meet a fixed size target.

Or skip the browser setup

If you need a screenshot through an API rather than configuring an Apify Actor, ScreenshotNeo returns a screenshot or PDF with one GET request. For example, save a PNG capture:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.png

See the ScreenshotNeo API documentation for request options, including image format. Cookie banners are accepted and removed before the capture, along with known consent platforms, newsletter popups, and chat widgets; each cleanup step can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in headers. Its MCP server provides screenshot tools for AI agents. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Sign up for ScreenshotNeo’s free plan.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.