Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
World desk5 min

Screenshotlayer API in PHP: A Practical Guide for Indian Developers

A practical PHP guide to Screenshotlayer's capture endpoint, required parameters, image handling, common errors, plan tiers, and India-specific billing caveats.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To capture a website with Screenshotlayer from PHP, send a GET request to https://api.screenshotlayer.com/api/capture with your access_key and the target url, then check the response before saving it as an image. The target URL must include its protocol, such as https://. This guide shows a cURL-based PHP pattern and how to handle options, errors, plan limits, and India-specific billing questions.

What the Screenshotlayer request needs

Screenshotlayer documents the capture endpoint as https://api.screenshotlayer.com/api/capture. Its required query parameters are access_key and url; include the complete target URL, including https:// or http://. The specification also shows an HTTP endpoint and says paid customers may use HTTPS. For a production integration, use the HTTPS endpoint.

The call is a GET request. Additional capture settings are query parameters too. The API can return an image, but the specification also describes error responses, so do not treat every response body as a valid image.

Make a basic capture with PHP cURL

This example keeps the access key in an environment variable and uses http_build_query() to encode query values. It checks the HTTP response and content type before writing the response body to disk. The code illustrates an integration pattern; verify current parameter spelling and response behavior in the Screenshotlayer API documentation before deploying.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
<?php
$accessKey = getenv('SCREENSHOTLAYER_ACCESS_KEY');
if ($accessKey === false || $accessKey === '') {
    throw new RuntimeException('Set SCREENSHOTLAYER_ACCESS_KEY in the server environment.');
}

$params = [
    'access_key' => $accessKey,
    'url' => 'https://example.com/',
];
$endpoint = 'https://api.screenshotlayer.com/api/capture?' . http_build_query($params);

$ch = curl_init($endpoint);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_TIMEOUT => 60,
]);
$body = curl_exec($ch);
if ($body === false) {
    $error = curl_error($ch);
    curl_close($ch);
    throw new RuntimeException('Screenshotlayer request failed: ' . $error);
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE) ?: '';
curl_close($ch);

if ($status < 200 || $status >= 300 || stripos($contentType, 'image/') !== 0) {
    // Error bodies may be JSON or another non-image response; log safely on the server.
    throw new RuntimeException('Screenshotlayer did not return an image. HTTP ' . $status . '; content type: ' . $contentType);
}

if (file_put_contents(__DIR__ . '/screenshot.png', $body) === false) {
    throw new RuntimeException('Could not write screenshot.png.');
}
echo 'Saved screenshot.png';

Protect the access key

  • Set SCREENSHOTLAYER_ACCESS_KEY in server-side configuration or your hosting environment. Do not put the key in HTML, browser JavaScript, or a publicly served PHP file.
  • Do not commit a real key to source control. If a key has been exposed, replace it through the provider’s account controls.
  • Log enough information to diagnose failures—such as HTTP status and a sanitized error message—but avoid logging the secret or forwarding it to a client.

Return the image from a PHP endpoint instead of saving it

If your application needs to stream the result, first perform the same status and content-type checks. Only then send an appropriate image Content-Type header and the image bytes. On an error, return a suitable application error response rather than labeling an error object as PNG. Avoid exposing the access key or raw provider response to an unauthenticated visitor.

Add capture options

The specification documents these useful parameters. PNG is the default format; the provider also describes JPEG and GIF output. Its documented default viewport is 1440 × 900.

Parameter Purpose Example
fullpage Request a full-page capture. fullpage=1
width Set the output or thumbnail width. width=800
viewport Set the viewport dimensions. Use the format specified in the current API documentation.
format Select an output format. PNG is the documented default; JPEG and GIF are also described.

To add an option, add it to the PHP $params array before constructing the URL. For example, add 'fullpage' => 1 or 'width' => 800. Check the live documentation for accepted values and exact formatting, particularly for viewport and format.

Common errors and what to check

Screenshotlayer documents errors for missing or invalid access keys, exhausted usage limits, and invalid URLs. Check the HTTP response and response body in a controlled server-side log; an error response is not an image.

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.
  • Missing or invalid access key: confirm the environment variable is present in the PHP runtime, contains the right key, and is not being sent with extra whitespace. Do not echo it into a page or log.
  • Usage limit reached: check the account’s current allowance and plan. The provider says it notifies users at 75%, 90%, and 100% of the monthly allowance; its FAQ describes overage charges after the quota is exhausted. Confirm the current account terms before relying on overages.
  • Invalid URL: send a complete, correctly encoded URL with its scheme, such as https://example.com/. Ensure the target is not an empty string or malformed value.
  • cURL transport failure or timeout: distinguish a local network/TLS/DNS issue from an API error by checking whether curl_exec() returned false. Set a reasonable timeout for your application and retry only transient failures, with a limit to avoid duplicate usage.
  • Non-image response saved with an image extension: inspect HTTP status and content type before writing. Store or display an error path separately instead of returning the body as PNG.

Choose a plan for the workload

Screenshotlayer’s pricing page, accessed 2026-10-03, lists the following USD prices and quotas. The provider says the free plan is for non-commercial use and paid tiers include commercial use. Prices and included features can change; confirm the plan page and terms before purchase.

Plan Price listed Monthly snapshots Listed features relevant to selection
Free USD 0 per month 100 Non-commercial use
Basic USD 19.99 monthly or USD 215.99 yearly 10,000 Commercial use, Retina/2x and WebP support, 10 dedicated workers
Professional USD 59.99 monthly or USD 629.99 yearly 30,000 20 dedicated workers; FTP/S3 export options
Enterprise USD 149.99 monthly or USD 1,529.99 yearly 75,000 40 dedicated workers; FTP/S3 export options

Compare the plans against your expected monthly captures, whether the use is commercial, whether Retina/2x or WebP is needed, how much concurrent work dedicated workers must handle, and whether exports to FTP or S3 matter. Compare annual and monthly billing on the live pricing page rather than assuming that annual billing is a fixed discount.

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

What Indian developers should verify

The provider’s published prices are in USD. Its FAQ lists Visa, MasterCard, Discover, and Diners Club, but does not establish whether a particular Indian-issued card will work. The reviewed provider pages also do not establish INR billing, local tax treatment, or India-specific API behavior. Check the currency and final amount shown at account checkout, and ask Screenshotlayer about billing and tax details for your situation. Do not assume that the listed USD price is the final amount charged in India.

Or skip the browser setup

If you want a screenshot API with a one-call request, ScreenshotNeo is an alternative. This cURL call returns a WebP screenshot for the target URL; the ScreenshotNeo API documentation covers parameters and response handling.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are not billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.

Sign up for ScreenshotNeo’s free plan.

Frequently Asked Questions

Does Screenshotlayer return PNG by default?

Yes. Its API specification documents PNG as the default and also describes JPEG and GIF output.

Can I use the Screenshotlayer free plan for a commercial PHP application?

The provider’s pricing page describes the free tier as non-commercial use; check its live plan terms for your intended deployment.

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.

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. Shenzhen desk3 min
    HONOR Expands Beyond Smartphones With Humanoid Robot RevealHONOR said it unveiled its first humanoid robot at MWC 2026 and named shopping assistance, workplace inspections, and supportive companionship as intended uses. Later Robotics D1 claims and a reported…
  2. Cupertino desk5 min
    Apple Unveils AirPods Max 2: The Upgrade That Should Have Happened Years AgoAirPods Max 2 adds H2-powered audio features and Apple claims up to 1.5× more effective ANC, but its design, Smart Case, and 20-hour battery rating are unchanged. Wired lossless audio…
  3. Cupertino desk4 min
    Apple’s OLED Touch MacBooks Are Coming—but the Dynamic Island Is the Real GambleApple has not announced an OLED touchscreen MacBook, but reports point to high-end models arriving in late 2026 or early 2027. The reported Mac Dynamic Island could be useful, but…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

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.