Website Thumbnail Services That Shut Down: What to Use Instead
PageLr shut down in June 2026. See which thumbnail services remain documented, how to choose a replacement, and how to migrate safely.
PageLr’s website screenshot API permanently shut down on June 3, 2026. Its endpoints, accounts, and stored data are no longer available, so applications that depended on it need a replacement or a self-hosted capture workflow. PageLr’s official service notice confirms the closure.
For a hosted replacement, ScreenshotNeo is the first option to consider: it removes cookie banners, popups, and chat widgets before capture, bills only clean screenshots, and its lowest paid plan is $5 for 3,000 shots. Other currently documented services include ScreenshotOne, Urlbox, and Microlink. Thumbalizr’s published update describes a backend migration, not a shutdown, and Page2Images still publishes API documentation.
1. What happened to PageLr—and which services are still available?
PageLr’s notice says the screenshot API permanently shut down on June 3, 2026. The notice also says the API endpoints, user accounts, and stored data are no longer available. Treat this as a completed decommissioning, not a temporary outage: plan a migration rather than expecting the old endpoint or account to return.
That does not mean every older thumbnail service has closed. Check the specific service before replacing it:
| Service | What the available official information says | Practical next step |
|---|---|---|
| PageLr | Permanently shut down June 3, 2026; endpoints, accounts, and stored data are unavailable. | Replace the integration and recover any needed configuration from your own records. |
| Thumbalizr | An April 8, 2026 update describes a backend migration from Browshot to ScreenshotCenter and says existing integrations, API calls, embed codes, and settings continue working. | Do not treat the migration notice as a shutdown. Check its current status and documentation before changing a working integration. |
| Page2Images | Its official REST API documentation still describes URL screenshots, dimensions, and full-page capture. | Evaluate it if its documented API matches your needs; documentation alone does not establish uptime or service quality. |
Sources: PageLr’s service notice, Thumbalizr’s migration update, and Page2Images API documentation.
2. Screenshot API alternatives to evaluate first
There is no universal best replacement. Match the provider to your output, rendering behavior, integration style, volume, and failure-handling needs. These are vendor-documented options, not a ranking based on independent testing.
- ScreenshotNeo — first alternative to try. It returns PNG, JPEG, WebP, or PDF from a GET request. Before capture it accepts consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, with verdict and billing information in response headers. It also offers an MCP server for AI agents. Plans include 1,000 free shots per month without a card, then $5 for 3,000, $15 for 15,000, $39 for 60,000, $99 for 250,000, and $249 for 1,000,000. Yearly billing gives two months free; every feature is on every plan.
- ScreenshotOne. Its documentation covers URL screenshots and options, including image width and height controls for thumbnail output while preserving aspect ratio. Its pricing page lists a free allowance and paid tiers. Confirm the current quotas, request rates, and price before committing.
- Urlbox. Its documentation describes screenshots and PDFs from URLs and HTML, using render links or API requests. The pricing page lists tiers and feature differences; confirm which tier supports the capture options and third-party sites in your workflow.
- Microlink. Its screenshot page documents URL capture through an API and describes free and paid plans. Verify current quotas, pricing, and options against your requirements.
- Page2Images. Its REST documentation describes URL capture, output dimensions, and full-page screenshots. Treat it as a candidate to investigate, not as an independently verified reliability recommendation.
Provider capabilities, prices, and quotas change. Check each linked vendor’s live documentation and plans before purchase. This research did not test representative pages or compare provider reliability.
3. Choose by the job your thumbnails must do
Write down the requirements before comparing plan tables. A service that produces a small fixed thumbnail may not suit a workflow that needs full-page images, dynamic pages, or PDFs.
| Question | What to check |
|---|---|
| What output do you need? | Thumbnail dimensions, aspect-ratio behavior, viewport versus full-page capture, supported image formats, and whether PDF output is needed. |
| How do you integrate? | Direct image response, API request, render URL, synchronous response, asynchronous job, or an embeddable image link. Check authentication and URL encoding requirements. |
| How does the page render? | Readiness waits, dynamic content behavior, browser options, and handling for sites that load slowly or require interaction. Verify each needed option in current vendor docs. |
| What does monthly volume cost? | Expected successful captures, included monthly quota, overage rules, rate limits, and how failed captures are treated. Compare the actual workflow, not just the advertised entry price. |
| What happens on failures? | Timeout behavior, error response format, retry guidance, status reporting, and whether failed or blocked pages are billed. |
| How hard is migration? | Request parameters, authentication, response type, output sizing, and error semantics. Estimate code changes and test them against a representative URL set. |
For ScreenshotOne, its documentation specifically describes width and height controls for thumbnail sizing. For Urlbox, its documentation describes API and render-link approaches. For the other requirements, verify the current provider documentation rather than assuming feature parity.
4. Migrate a production integration safely
- Inventory the old integration. Record endpoints, authentication, query parameters, requested dimensions, output format, timeout, retry behavior, and where generated files are stored or cached. PageLr accounts and stored data are unavailable, so use application configuration, logs, and your own backups.
- Define representative URLs. Include static and JavaScript-heavy pages, long pages, pages with consent prompts, redirects, and known blocked or unavailable pages. Keep a small repeatable set for evaluating providers.
- Map request and response behavior. Identify differences in parameter names, image response handling, status codes, error bodies, and asynchronous flows. Do not assume a drop-in replacement based only on similar endpoint names.
- Compare output and failure cases. Check dimensions, aspect ratio, full-page behavior, page readiness, and expected failure handling using the same URLs and settings. No provider comparison in this article is based on a benchmark.
- Run both paths during a controlled transition if feasible. Compare results in staging or on a limited share of traffic, then switch application configuration. Keep the previous generated thumbnails where your own retention policy allows; the former PageLr stored data itself is unavailable.
- Monitor requests and spend after switching. Track successful captures, failures, latency, quota use, and output dimensions. Set sensible timeouts and retry only transient failures to avoid duplicate work and unnecessary expense.
5. Or skip the browser setup
ScreenshotNeo can replace a browser-capture service with one GET request. The example saves a WebP screenshot of Stripe. See the ScreenshotNeo API documentation for request options and configuration.
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,
)
r.raise_for_status()
with open("shot.webp", "wb") as image:
image.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}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const image = Buffer.from(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', image));
Cookie banners, newsletter popups, and chat widgets are removed before the shot. Bot checks, blank pages, timeouts, and failed loads are never billed, and the response identifies the page verdict and billing status in headers. An MCP server lets AI agents—including Claude, Cursor, and any MCP client—take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
Create a free ScreenshotNeo account and get 1,000 screenshots per month without a card.
6. If you run your own browser capture
A self-hosted browser can preserve control over rendering and infrastructure, but you take responsibility for browser installation, concurrency, isolation, timeouts, page readiness, and maintenance. Keep the browser process outside untrusted request contexts where possible, validate target URLs to reduce server-side request forgery risk, and constrain network access when users can submit arbitrary URLs.
A minimal Playwright example in Node.js captures a URL to a file. Install Playwright and its Chromium browser in the project environment first using the commands in the official Playwright getting started guide.
import { chromium } from 'playwright';
const target = process.argv[2];
if (!target) throw new Error('Usage: node capture.mjs https://example.com');
const parsed = new URL(target);
if (!['http:', 'https:'].includes(parsed.protocol)) {
throw new Error('Only http and https URLs are supported');
}
const browser = await chromium.launch({ headless: true });
try {
const page = await browser.newPage({ viewport: { width: 1280, height: 800 } });
await page.goto(parsed.href, { waitUntil: 'networkidle', timeout: 45_000 });
await page.screenshot({ path: 'thumbnail.png', fullPage: false });
} finally {
await browser.close();
}
For production use, decide whether to wait for DOM content, a specific selector, a short delay, or network idle; network idle can be unsuitable for pages with ongoing requests. Add limits for navigation and total job time, cap concurrent browser contexts, and clean up browser processes after exceptions. The minimal sample does not remove consent banners or guarantee that lazy content has loaded.
7. Troubleshooting migration issues
| Symptom | Likely cause | Fix |
|---|---|---|
| Old PageLr request fails or the account is inaccessible | The service was permanently decommissioned, including its endpoints and accounts. | Move to another provider or your own browser workflow. Do not plan around restoring the former API access. |
| Replacement returns an error instead of an image | Authentication, URL encoding, unsupported parameters, quota, or provider-specific error behavior differs. | Inspect status and response body; verify credentials and parameter names in the current docs; encode the target URL correctly. |
| Screenshot is blank or missing dynamic content | Capture occurred before client-side rendering or required content appeared. | Use the provider’s documented readiness control, such as a selector or wait strategy where available. Test the same page repeatedly before selecting a production wait rule. |
| Thumbnail is cropped or the dimensions differ | Viewport dimensions, output resizing, aspect-ratio handling, and full-page settings may be different between services. | Set the desired capture viewport and output size separately where supported; compare a known page and confirm whether dimensions preserve aspect ratio. |
| Some URLs fail while others work | The target may redirect, block automated browsers, require interaction, or be temporarily unavailable. | Record the failing URL and response details, test manually in a browser, and check whether the selected provider supports the needed interaction or site behavior. |
| Costs rise after migration | Retries, duplicate requests, cache settings, or a changed definition of billable capture can increase usage. | Measure successful captures and retry counts; use caching where appropriate; compare billing rules and quotas on current plan pages. |
| Self-hosted browser jobs hang | Navigation never reaches the chosen readiness condition or the page keeps network activity open. | Use an explicit timeout and a readiness condition suitable for the page, and always close the page and browser in cleanup code. |
8. Performance, reliability, and cost
Performance
Screenshot latency depends on target-page response, redirects, JavaScript execution, requested viewport or full-page work, and the readiness condition. Compare providers using the same URL set and settings, and record end-to-end latency rather than relying on a single easy page. Full-page images and dynamic pages may require more rendering work than small static thumbnails; measure the workload you actually serve.
Reliability
No independent reliability testing was performed for the providers discussed here. For a production migration, define acceptable failure handling, log provider status and capture outcomes, and use bounded retries for transient errors. Keep retries idempotent from your application’s perspective and avoid retrying permanent errors such as invalid credentials or unsupported parameters.
Cost
Estimate monthly billable captures, not just page views: one page view can trigger multiple screenshot requests, while cache reuse may reduce captures. Compare the live plan allowance, overage policy, rate limits, and treatment of failed captures. ScreenshotOne, Urlbox, and Microlink publish plan details that can change; verify them on their linked pricing pages before choosing. ScreenshotNeo’s stated plans are 1,000 free per month without a card, then $5 for 3,000, $15 for 15,000, $39 for 60,000, $99 for 250,000, and $249 for 1,000,000; annual billing gives two months free, and all features are available on every plan.
9. Frequently asked questions
Can I recover my PageLr account or stored screenshots?
The decommission notice says accounts and stored data are no longer available. Use copies and configuration retained in your own systems.
Did Thumbalizr shut down?
The cited April 8, 2026 update describes a backend migration and says existing integrations remain working. That evidence does not support calling it shut down.
Is Page2Images confirmed reliable?
No. Its accessible API documentation shows a documented capture interface, but documentation alone is not an uptime or quality assessment.
Should I build a screenshot service myself?
Do so when browser control and infrastructure ownership justify maintaining browser workers, isolation, scaling, and failure handling. Otherwise, compare hosted APIs against your required output and volume.
Are the alternatives interchangeable with PageLr?
Not automatically. Request parameters, image sizing, rendering controls, billing rules, and error responses can differ. Validate those behaviors with your actual URLs before switching production traffic.
