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

ApiFlash captures a webpage by rendering a URL through its https://api.apiflash.com/v1/urltoimage endpoint. Send a valid access_key and a fully qualified URL, then save the returned image bytes. For full-page shots, JavaScript-rendered content, authenticated pages, output options, and common errors, the key is choosing the right parameters and keeping the API key off public clients.

Make your first ApiFlash screenshot request

ApiFlash accepts GET query parameters or POST form data. The default response is the screenshot itself, with an appropriate content type and content length. This cURL example saves the response to a file:

endpoint="https://api.apiflash.com/v1/urltoimage"
access_key="YOUR_ACCESS_KEY"
url="https://example.com"
curl --request GET --url "${endpoint}?access_key=${access_key}&url=${url}" > screenshot.jpeg

Replace YOUR_ACCESS_KEY with a key from the ApiFlash dashboard. The URL must include http:// or https://. For production code, URL-encode query parameter values; a URL containing ampersands, selectors, cookies, or JavaScript can otherwise be parsed incorrectly. ApiFlash requires a valid key for every call, as its API documentation states.

The example is intentionally minimal. A real integration should check the HTTP status before treating the response as an image, use an explicit output format and filename, and keep credentials server-side. ApiFlash also supports POST form submissions; those can be useful when parameter values are long or structured, but do not make a client-side secret safe.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
Motorola Moto g - 2026 | Unlocked | Made for US 4/128GB | 50MP Camera | Pantone Slipstream, Cellular_Phone
  • Universal unlocked. Compatible with all major U.S. carriers, including Verizon, AT&T, T-Mobile and other prepaid carriers.
  • Super-bright, super-smooth 6.7" display. See your screen clearly even outdoors in sunlight, and enjoy seamless views with a fast-refreshing 120Hz display.*
  • AI-powered camera system. Take stunning photos in any light with the 50MP camera**, look your best with a 32MP selfie cam*****, and capture extreme close-ups.
  • Superfast 5G performance. Unleash your entertainment at 5G speed*** with the MediaTek Dimensity 6300 chipset and up to 12GB of RAM with RAM Boost****.
  • Long-lasting battery + TurboPower charging. Power through day after day with a 5200mAh battery, then get hours of power in just minutes.****

Python

import requests

response = requests.get(
    "https://api.apiflash.com/v1/urltoimage",
    params={
        "access_key": "YOUR_ACCESS_KEY",
        "url": "https://example.com",
        "format": "png",
    },
    timeout=60,
)
response.raise_for_status()

with open("screenshot.png", "wb") as image_file:
    image_file.write(response.content)

Requests encodes the query parameters supplied in params. In a service that handles many captures, check the response headers and log the status and quota information rather than silently writing an error response to an image file.

Node.js

const params = new URLSearchParams({
  access_key: process.env.APIFLASH_ACCESS_KEY,
  url: "https://example.com",
  format: "png",
});

const response = await fetch(
  `https://api.apiflash.com/v1/urltoimage?${params}`,
  { signal: AbortSignal.timeout(60000) }
);

if (!response.ok) {
  throw new Error(`ApiFlash returned HTTP ${response.status}`);
}

const image = Buffer.from(await response.arrayBuffer());
await import("node:fs/promises").then(fs => fs.writeFile("screenshot.png", image));

Set APIFLASH_ACCESS_KEY in the server environment before running this code. The timeout is your caller’s limit; it is separate from ApiFlash’s documented content-wait settings.

Choose the capture dimensions and image format

Use the viewport dimensions that match the page context you want to inspect or publish. ApiFlash documents a default viewport of 1920 by 1080 pixels, subject to its pixel limits. Specify dimensions explicitly when reproducibility matters.

Parameter What it controls Practical use
width, height Viewport size; documented defaults are 1920 × 1080, subject to API pixel limits. Match desktop or mobile layouts. Provide both dimensions to avoid relying on defaults.
full_page=true Captures the full page; height is ignored in this mode. Use for long articles or page archives where below-the-fold content matters.
format Accepts jpeg, png, or webp. Choose based on downstream compatibility and file-size needs.
quality Compression quality for JPEG and WebP. Set when trading file size against image fidelity; it does not apply to PNG.
scale_factor=2 Produces high-definition output at a larger file size. Use when sharper output is worth the additional bytes.
element Captures the first element matching a CSS selector; ignored with full_page=true. Capture a card, chart, or component rather than the viewport.
crop Defines left,top,width,height crop coordinates. Trim an area after rendering when a selector-based capture is not suitable.
thumbnail_width Creates a proportional thumbnail. Generate a smaller preview from a larger capture.

PNG supports transparent when the page body background is transparent. Transparency does not turn an opaque webpage into a cutout; the page itself must have a transparent body background. A full-page capture and element capture address different needs: the former ignores the requested height, while the latter selector mode is ignored with full-page mode.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Samsung Galaxy A17 5G Smart Phone 128GB US 1 Yr Manufacturer Warranty Black
  • YOUR CONTENT, SUPER SMOOTH: The ultra-clear 6.7" FHD+ Super AMOLED display of Galaxy A17 5G helps bring your content to life, whether you're scrolling through recipes or video chatting with loved ones.¹
  • LIVE FAST. CHARGE FASTER: Focus more on the moment and less on your battery percentage with Galaxy A17 5G. Super Fast Charging powers up your battery so you can get back to life sooner.²
  • MEMORIES MADE PICTURE PERFECT: Capture every angle in stunning clarity, from wide family photos to close-ups of friends, with the triple-lens camera on Galaxy A17 5G.
  • NEED MORE STORAGE? WE HAVE YOU COVERED: With an improved 2TB of expandable storage, Galaxy A17 5G makes it easy to keep cherished photos, videos and important files readily accessible whenever you need them.³
  • BUILT TO LAST: With an improved IP54 rating, Galaxy A17 5G is even more durable than before.⁴ It’s built to resist splashes and dust and comes with a stronger yet slimmer Gorilla Glass Victus front and Glass Fiber Reinforced Polymer back.

Wait for JavaScript-rendered content

Modern pages often populate after the initial HTML arrives. ApiFlash documents three wait_until choices: dom_loaded, page_loaded, and network_idle; the documented default is network_idle. For a known component, use wait_for with its CSS selector. ApiFlash documents a 15-second wait limit for that selector and a 1–30 second range for wait_until_timeout.

Prefer a condition tied to the content over an arbitrary fixed delay. ApiFlash’s documentation recommends wait_for or wait_until where possible because they are more reliable for rendered content. Network activity can remain ongoing on analytics-heavy sites, however, so a selector that represents the content you need may be a better fit.

curl -G "https://api.apiflash.com/v1/urltoimage" 
  --data-urlencode "access_key=YOUR_ACCESS_KEY" 
  --data-urlencode "url=https://example.com/dashboard" 
  --data-urlencode "wait_until=page_loaded" 
  --data-urlencode "wait_until_timeout=20" 
  --data-urlencode "wait_for=.report-ready" 
  --data-urlencode "format=png" 
  -o dashboard.png

ApiFlash also accepts a js parameter to inject JavaScript before capture. The vendor’s JavaScript injection guide, last updated February 9, 2024, says the script must be URL-encoded. Use injected JavaScript only when a wait condition or ordinary URL state is insufficient; page scripts can be site-specific and may fail when the target site’s structure changes.

Capture a page behind login

There is no single authentication parameter that works for every site. ApiFlash’s FAQ lists headers or cookies for passing tokens and session state, and JavaScript injection for automating a login flow. Choose based on the target’s actual authentication scheme.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Samsung Galaxy A16 5G 128GB Cell Phone, Unlocked Android Smartphone, Large AMOLED Display, Durable Design, Super Fast Charging, Expandable Storage, US Version, 2025, Blue Black (Renewed)
  • Charger NOT Included, 6.7" Super AMOLED FHD+, 90Hz Refresh Rate, 385 ppi, 800 nits (HBM), 1080x2340px, 5000mAh Battery
  • 128GB, 4GB RAM, microSDXC, Exynos 1330 (5nm), Octa-Core, Mali-G68 MP2 or Mali-G57 MC2 GPU
  • Rear Camera: 50MP, f/1.8 (wide) + 5MP, f/2.2 (ultrawide) + 2MP, f/2.4 (macro), LED flash, panorama, HDR; Front Camera: 13MP, f/2.0, Android 14, up to 6 major Android upgrades, One UI 6.1
  • 3G: HSDPA 850/900/1700(AWS)/1900/2100; 4G LTE: 1/2/3/4/5/7/12/13/14/20/25/26/28/29/30/38/39/40/41/48/66/71, 5G: 2/5/25/41/66/71/77/78 SA/NSA/Sub6/mmWave - Nano-SIM + eSIM
  • US Model – Global Connectivity – Compatible with Most GSM Carriers like T-Mobile, AT&T, MetroPCS, etc. Will Also work with CDMA Carriers Such as Verizon, Straight Talk.
  • Authorization header: use when the application accepts an API or bearer token in an HTTP header.
  • Cookies: use when the session is represented by browser cookies. Pass the cookie value securely and URL-encode it.
  • Login automation: use JavaScript injection only if the login page permits that flow and the necessary selectors and steps can be executed reliably.

Do not expose session cookies, bearer tokens, or the ApiFlash access key in browser JavaScript, public image URLs, client logs, or a page source. For a public-facing capture endpoint, put ApiFlash behind your own server or proxy, validate which target URLs callers may request, and rate-limit the route. ApiFlash provides an Nginx proxy guide that demonstrates key insertion at the proxy, target URL restrictions, and rate limiting.

Choose between image bytes, JSON, and direct storage

Keep the default binary response when your application can stream the screenshot bytes straight to local storage or an object store. Set response_type=json when you need ApiFlash’s generated screenshot URL or requested extraction links such as HTML or text. The JSON response is not itself the image bytes, so handle it separately from the default capture response.

ApiFlash also documents direct upload parameters for an AWS S3 bucket or compatible endpoint. That can reduce the amount of screenshot data routed through your own application server. Use it where the storage credentials, bucket permissions, and retention policy can be configured safely; do not place long-lived storage credentials in a public caller’s request.

Control caching, overlays, and page requests

ApiFlash’s documented screenshot cache TTL defaults to 86,400 seconds (one day); the maximum documented TTL is 2,592,000 seconds (30 days). Use fresh=true when a new render is needed instead of a cached screenshot. A cached response can save unnecessary repeated rendering, but it is unsuitable when the page changes and the screenshot must reflect its current state.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Samsung Galaxy A17 5G Smart Phone 128GB, US 1 Yr Manufacturer Warranty Blue
  • YOUR CONTENT, SUPER SMOOTH: The ultra-clear 6.7" FHD+ Super AMOLED display of Galaxy A17 5G helps bring your content to life, whether you're scrolling through recipes or video chatting with loved ones.¹
  • LIVE FAST. CHARGE FASTER: Focus more on the moment and less on your battery percentage with Galaxy A17 5G. Super Fast Charging powers up your battery so you can get back to life sooner.²
  • MEMORIES MADE PICTURE PERFECT: Capture every angle in stunning clarity, from wide family photos to close-ups of friends, with the triple-lens camera on Galaxy A17 5G.
  • NEED MORE STORAGE? WE HAVE YOU COVERED: With an improved 2TB of expandable storage, Galaxy A17 5G makes it easy to keep cherished photos, videos and important files readily accessible whenever you need them.³
  • BUILT TO LAST: With an improved IP54 rating, Galaxy A17 5G is even more durable than before.⁴ It’s built to resist splashes and dust and comes with a stronger yet slimmer Gorilla Glass Victus front and Glass Fiber Reinforced Polymer back.

The API documents no_cookie_banners, no_ads, and no_tracking options to remove common overlays or requests. Treat these as capture controls rather than a guarantee that every site’s consent interface or third-party element will be recognized.

Plan for quota, rate limits, and errors

ApiFlash documents a leaky-bucket limit of 20 requests per second with a burst size of 400. When the burst is exceeded, additional requests can return HTTP 429. The documentation also says identical failed captures are limited to five requests per hour. Avoid rapid retry loops: back off after throttling, and correct the underlying URL or capture condition before retrying a failed page.

Successful responses expose X-Quota-Limit, X-Quota-Remaining, and X-Quota-Reset headers. ApiFlash documents a quota endpoint at /v1/urltoimage/quota; consult the documentation for its request details and current account behavior.

HTTP status Documented meaning What to check
400 Invalid parameters or an uncapturable URL. Check the URL scheme, parameter names, encoding, selector, and whether the target can be reached.
401 Invalid or revoked key. Verify the server-side key and whether it remains active.
402 Monthly quota exceeded. Check quota headers and account quota before sending more requests.
403 Unsupported plan feature. Confirm the requested option is available on the account’s plan.
429 Too many requests. Reduce concurrency and retry with backoff after the throttle window.
500 Internal capture failure. Retry cautiously; distinguish transient capture failure from a persistently uncapturable page.

Common capture problems

  • The saved “image” is actually an error: check the HTTP status before writing the body to an image file. Error responses are not screenshots.
  • The page looks incomplete: wait for a meaningful selector, adjust wait_until, or use a longer permitted wait_until_timeout. A fixed delay may help in isolated cases but is less dependable.
  • The selector capture is blank or unexpected: confirm the CSS selector matches the intended first element, URL-encode it, and do not combine it with full_page=true.
  • The authenticated page redirects to login: verify that the supplied header or cookie is valid for that domain and route; if the site requires an interactive flow, a token or cookie alone may not suffice.
  • The request fails only for long parameters: use a URL-encoding client such as cURL’s --data-urlencode, or submit the parameters as POST form data.
  • Repeated failures keep being throttled: ApiFlash limits identical failed captures to five requests per hour. Stop retrying unchanged input and diagnose the URL or parameter error first.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Performance and cost decisions

Capture latency and output size depend on the target page, wait condition, dimensions, full-page height, and scale factor. The documented defaults and limits do not establish a universal response time, so set caller timeouts for your application and monitor actual response status and duration. Larger viewports, full-page output, and scale_factor=2 can produce larger files; balance visual detail against storage and transfer needs.

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

The sources linked here do not establish a current ApiFlash price table. Check the current ApiFlash account or pricing information before estimating ongoing costs. For volume control, use quota headers, cache intentionally when freshness permits, and ensure your application handles 402 and 429 responses without creating retry storms.

Best Value
Tracfone Motorola Moto G 2025, 64GB, Saphire Blue (Locked to
  • Carrier: This phone is locked to Tracfone, which means this device can only be used on the Tracfone wireless network. Tracfone plan required, activating is easy, just 3 steps.
  • DISPLAY: Immersive viewing on a 6.7-inch super-bright 120Hz display with powerful stereo speakers and Bass Boost for cinematic entertainment.
  • CAMERA SYSTEM: Advanced 50MP Quad Pixel camera captures sharp, detailed photos and videos in any lighting condition
  • PERFORMANCE: Lightning-fast 5G connectivity paired with a powerful processor and RAM Boost for smooth multitasking.
  • BATTERY LIFE: Long-lasting 5000mAh battery with TurboPower charging technology delivers hours of power in minutes.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. Its one-call endpoint returns an image or PDF, while its capture flow accepts cookie/consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before taking the shot. Those steps can each be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing; response headers indicate the page verdict and whether the capture was billed. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.

The example below saves a WebP screenshot; replace the target URL as needed. See the ScreenshotNeo API documentation for parameters and setup.

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

The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Sign up free for ScreenshotNeo.

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

Frequently Asked Questions

Can ApiFlash return a screenshot URL instead of image bytes?

Yes. Set response_type=json to receive a JSON object containing a generated screenshot URL and requested extraction links.

Does ApiFlash support full-page screenshots and element screenshots together?

No. The element option is ignored when full_page=true; choose the capture mode that matches the output you need.

Can I use ApiFlash’s screenshot API from frontend JavaScript?

A browser can make HTTP requests, but the access key must not be exposed in client-side code or a public URL. Put authenticated requests behind a controlled server or proxy.

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.

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