The ScreenshotAPI alternative
for broader browser workflows
ScreenshotAPI already covers screenshots, PDFs, bulk capture, and scraping workflows. When you need metadata, link previews, and a broader browser API from the same key, Microlink covers all of that and is 33% faster than ScreenshotAPI on average.
Measuring cold-start speed across 2 screenshot APIs
Microlink
ScreenshotAPI
Up to 4× faster response times
Same request. Same URL. Same output format.
We tested 7 real-world URLs with true cold starts (no caching) from a New York server. All providers were triggered simultaneously, the benchmark ran 10 times at different hours, the single slowest run was dropped to remove outliers, and non-200 responses were excluded. Averaged across the suite, Microlink is 33% faster; on lighter pages the gap reaches 4×.
Cold-start latency by URL
| URL | Microlink | ScreenshotAPI |
|---|---|---|
| vercel.com | 6,361 | 6,143 |
| example.com | 968 | 4,988 |
| stripe.com | 3,217 | 5,614 |
| screenshotone.com | 5,474 | 6,805 |
| news.ycombinator.com | 3,435 | 5,385 |
| github.com | 3,060 | 6,174 |
| framer.com | 6,267 | 6,301 |
| Total | 28.8 s | 41.4 s |
vercel.com
Microlink6,361 ms
ScreenshotAPI6,143 ms
example.com
Microlink968 ms
ScreenshotAPI4,988 ms
stripe.com
Microlink3,217 ms
ScreenshotAPI5,614 ms
screenshotone.com
Microlink5,474 ms
ScreenshotAPI6,805 ms
news.ycombinator.com
Microlink3,435 ms
ScreenshotAPI5,385 ms
github.com
Microlink3,060 ms
ScreenshotAPI6,174 ms
framer.com
Microlink6,267 ms
ScreenshotAPI6,301 ms
Average cold-start latency
| Provider | Avg Cold Duration | vs. Microlink |
|---|---|---|
| Microlink | 4,111.84 ms | — |
| ScreenshotAPI | 5,915.71 ms | +44% slower |
See the full benchmark with all 6 providers and 7 URLs on the Screenshot API Benchmark page.
Averages from 10 benchmark runs taken from a New York server at different hours. The
benchmark repo
is open — run it yourself and see. Last run: March 2026.Why Developers Switch
The top reasons teams move from ScreenshotAPI to Microlink.
Latency compounds at scale
At 100k screenshots/month, 1.9 s saved per request adds up to 53 hours of recovered pipeline time. Microlink is 33% faster on average, up to 4× faster on simple pages.
One API key, not five
Screenshots, PDFs, metadata extraction, link previews, and remote JS in one integration. One bill, one set of docs, no glue code.
4.6× more requests for $16 more
ScreenshotAPI Startup: 10,000 screenshots for $29/month. Microlink: 46,000 requests for $45. Just $16 more, 4.6× the volume, and every request covers screenshots, PDF, metadata, and more.
Open source, fully auditable
Metascraper, MQL, and Browserless are MIT-licensed on GitHub. Read the code, fork it, or self-host. ScreenshotAPI is closed-source, with no way to inspect what runs against your URLs.
Proxy and antibot built‑in, zero config
Microlink auto-rotates residential proxies and detects 30+ antibot providers (Cloudflare, DataDome, Akamai…) on every request. No middleware, no extra parameter — make a query and it just works.
Marketing-ready screenshots in one call
screenshot.overlay wraps any capture in a browser chrome frame with a custom gradient or image background. Presentation-ready visuals straight from the API, no Figma needed.
More requests. One broader API.
Get 4.6× more for just $16 more.
Microlink
$45/mo
46,000 requests/month
- Screenshots, PDF, metadata, link previews, remote JS
- Free: 50 requests/day, no credit card, no expiry
- No rate limit on any paid plan
- 240+ edge nodes, 99.9% SLA
- Open-source core (MIT licensed)
- ~$0.00098/request — 9× cheaper than ScreenshotAPI Essentials
ScreenshotAPI
$29/mo
10,000 screenshots/month
- 40 req/min rate limit on Startup
- $0.008 per extra screenshot
- Screenshots, PDF, bulk capture, and scraping
- Official Zapier, Make, and n8n workflows
- BYOB storage (S3/Wasabi/GCS)
We can keep prices this low because our enterprise clients cover the infrastructure cost. We want to help indie devs and startups squeeze every drop of value out of their budget.
Bring richer browser outputs into the same integration
Your first 50 requests/day are free — no credit card, no commitment.
Feature-by-Feature Comparison
An honest look at what each API offers.
| Feature | Microlink | ScreenshotAPI |
|---|---|---|
| Screenshot capture | ✓ | ✓ |
| Full-page screenshots | ✓ | ✓ |
| Element-level capture (CSS selector) | ✓ | ✓ |
| PDF generation | ✓ | ✓ |
| HTML rendering | ✓ | ✓ |
| Dark/light mode capture | ✓ | ✓ |
| Device emulation presets | ✓ | ✓ |
| Custom JS/CSS injection | ✓ | ✓ |
| Custom HTTP headers | ✓ | ✓ |
| Custom cookies | ✓ | ✓ |
| Hide/remove elements (CSS selectors) | ✓ | ✓ |
| Click interactions | ✓ | ✓ |
| Wait for selector | ✓ | ✓ |
| Cookie banner blocking | ✓ | ✓ |
| Ad blocking | ✓ | ✓ |
| Built-in response cache | ✓ | ✓ |
| Custom proxy support | ✓ | ✓ |
| Built-in proxy | ✓ | ✕ |
| Antibot detection (30+ providers) | ✓ | ✕ |
| Metadata extraction | ✓ | ✕ |
| Link previews SDK | ✓ | ✕ |
| Browser chrome overlay | ✓ | ✕ |
| Direct embed (no backend) | ✓ | ✕ |
| Open-source core | ✓ | ✕ |
| Remote JS execution (return values) | ✓ | ✕ |
| 240+ CDN edge nodes | ✓ | ✕ |
| MQL (structured data extraction) | ✓ | ✕ |
| MCP server | ✓ | ✕ |
| Markdown conversion | ✓ | ✕ |
| Lighthouse audits | ✓ | ✕ |
| Technology detection | ✓ | ✕ |
| Color palette extraction | ✓ | ✕ |
| Typed SDKs (React/Vue/JS) | ✓ | ✕ |
| Video output (page content) | ✓ | ✕ |
| Animated screenshots | ✓ | ✓ |
| Scheduled screenshot workflows Official automation guides exist for Zapier, Make, and n8n workflows. | ✕ | ✓ |
| Bulk screenshots (JSON/CSV) | ✕ | ✓ |
| BYOB storage (S3/Wasabi/GCS) | ✕ | ✓ |
| Scrolling video capture (WebM/MP4/GIF) | ✕ | ✓ |
| Geolocation targeting | ✕ | ✓ |
| Text/HTML extraction | ✕ | ✓ |
| Granular resource blocking (15+ toggles) | Partial | ✓ |
| No-code integrations (Zapier, Make, n8n…) | Partial | ✓ |
Last verified: April 2026. See each product's docs for the latest.
Where ScreenshotAPI
Might Be the Right Choice
Scheduled screenshot workflows
ScreenshotAPI has a dedicated scheduling surface and publishes official automation guides for Zapier, Make, and n8n. Microlink handles on-demand captures and does not include a built-in scheduler.
Bulk URL processing
ScreenshotAPI accepts JSON payloads or CSV uploads for batch jobs, with pause, resume, and cancel controls, plus an email notification when the run finishes. Microlink does not have native bulk processing.
Page-scroll video output
ScreenshotAPI records a scrolling page as WebM, MP4, or GIF with configurable speed, direction, and duration across multiple viewports. Microlink does not produce scrolling video captures.
Fine-grained resource control
ScreenshotAPI lets you block JS, stylesheets, images, fonts, XHR, fetch, WebSockets, and more, each with its own toggle. Microlink covers ad blocking and CSS-selector hiding but not per-resource-type controls.
Zapier, Make, or n8n integrations
ScreenshotAPI publishes official integrations and workflow guides for Zapier, Make.com, n8n, Google Sheets, viaSocket, and Pipedream. Microlink has fewer no-code connectors today.
Screenshots sent to your own bucket
ScreenshotAPI supports BYOB storage integrations for Amazon S3, Wasabi, and Google Cloud Storage. Microlink returns the image in the API response and does not include native storage upload.
Ship faster screenshots
50 requests/day free — no account, no credit card. Start capturing screenshots at the speed your users deserve.
The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://www.apple.com' URL with 'screenshot' API parameter:
CLI Microlink API example
microlink https://www.apple.com&screenshotcURL Microlink API example
curl -G "https://api.microlink.io" \
-d "url=https://www.apple.com" \
-d "screenshot=true"JavaScript Microlink API example
import mql from '@microlink/mql'
const { data } = await mql('https://www.apple.com', {
screenshot: true
})Python Microlink API example
import requests
url = "https://api.microlink.io/"
querystring = {
"url": "https://www.apple.com",
"screenshot": "true"
}
response = requests.get(url, params=querystring)
print(response.json())Ruby Microlink API example
require 'uri'
require 'net/http'
base_url = "https://api.microlink.io/"
params = {
url: "https://www.apple.com",
screenshot: "true"
}
uri = URI(base_url)
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
response = http.request(request)
puts response.bodyPHP Microlink API example
<?php
$baseUrl = "https://api.microlink.io/";
$params = [
"url" => "https://www.apple.com",
"screenshot" => "true"
];
$query = http_build_query($params);
$url = $baseUrl . '?' . $query;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET"
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #: " . $err;
} else {
echo $response;
}Golang Microlink API example
package main
import (
"fmt"
"net/http"
"net/url"
"io"
)
func main() {
baseURL := "https://api.microlink.io"
u, err := url.Parse(baseURL)
if err != nil {
panic(err)
}
q := u.Query()
q.Set("url", "https://www.apple.com")
q.Set("screenshot", "true")
u.RawQuery = q.Encode()
req, err := http.NewRequest("GET", u.String(), nil)
if err != nil {
panic(err)
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}import mql from '@microlink/mql'
const { data } = await mql('https://www.apple.com', {
screenshot: true
})Is there a free ScreenshotAPI.net alternative?
Yes. Microlink's free tier gives you 50 requests/day with no credit card and no expiry date. Same API, same quality, same 240+ edge network as paid plans.
ScreenshotAPI's free trial is 100 screenshots that expire after 7 days. After just 2 days on Microlink's free tier, you've already passed that total, and the counter resets every morning.
Does Microlink produce the same screenshot quality as ScreenshotAPI?
Both use Chromium under the hood. Microlink applies optimal compression by default so output quality is high without manual tuning. ScreenshotAPI also produces good results and supports retina 2× captures up to 5K resolution for pixel-dense output.
How do I migrate from ScreenshotAPI to Microlink?
ScreenshotAPI sends GET requests with query params: token, url, width, height, output, full_page. Microlink accepts the same concepts under its own parameter names. Change the host and the key, and most integrations keep working. The screenshot docs cover every parameter with examples.
Paste your existing code into any LLM and ask it to migrate to Microlink. Or email
[email protected]
and we'll help directly.Does Microlink do more than screenshots?
Yes. One API key gives you screenshots, PDF generation, Open Graph and metadata extraction, link previews (via the React/Vue/JS SDK), remote JavaScript execution, and Lighthouse audits. ScreenshotAPI already handles screenshots, PDFs, bulk capture, and scraping workflows, but metadata extraction, link previews, and remote JS all still sit outside its core surface.
Is Microlink really open source?
The core engine components are MIT-licensed on GitHub:
Metascraper
(metadata extraction), MQL
(query language), and Browserless
(headless browser). Read the code, fork it, or run it yourself.ScreenshotAPI is closed-source. There is no way to inspect the code that handles your URLs.
How does ScreenshotAPI pricing compare to Microlink?
ScreenshotAPI Essentials: $9/month for 1,000 screenshots at $0.009 each. Startup: $29/month for 10,000 with a 40 req/min cap. Microlink: $45/month for 46,000 requests at ~$0.00098 each, no per-minute cap.
Per request, Microlink is 9× cheaper than ScreenshotAPI Essentials and 3× cheaper than Startup. Enterprise clients running millions of requests fund the infrastructure, which is how indie devs get the same global edge network at these prices.
Does Microlink throttle requests?
Paid plans have no requests-per-minute cap. Burst as high as your concurrency allows. The only limit is your monthly quota.
ScreenshotAPI enforces rate limits on every plan: 20 req/min on Essentials, 40 on Startup, 80 on Business. That cap can bottleneck batch jobs or high-traffic embed workflows.
How does Microlink handle cookie banners and ads?
Both Microlink and ScreenshotAPI block ads and remove cookie banners. ScreenshotAPI gives you 15+ resource-type toggles: block JS, stylesheets, fonts, XHR, fetch, WebSockets, and more, individually. Microlink uses the adblock parameter and custom CSS/JS injection to dismiss consent dialogs before capture.
What SLA does Microlink offer?
Microlink guarantees 99.9% uptime with a formal SLA. Requests are served from 240+ Cloudflare edge nodes, so latency stays low regardless of where your users are located. ScreenshotAPI runs on Google Cloud Platform and does not publish a formal SLA or CDN edge distribution.