The Firecrawl alternative
without the credit math
Firecrawl bills in credits that multiply — 5× for the stealth proxy, spent even when the target page errors, gone if unused. Microlink turns URLs into LLM-ready markdown, metadata, and screenshots at one flat request price, residential proxy included.
Microlink
1 request
Markdown + metadata + logo + screenshot, from the same call
Residential proxy included · cache hits free
✓ Flat — always the same price
Firecrawl
1–5 credits
1 basic · 5 with the stealth proxy
+2 credits per browser-minute of interaction
Depends on the page — unused credits expire monthly
No key, no signup — try that one request right now on firecrawl.dev itself:
Why Developers Switch
The top reasons teams pick Microlink over Firecrawl for per-URL workloads.
Every request costs exactly one request
Firecrawl's credit menu multiplies: 5 credits for the stealth proxy, 2 per 10 search results, 2 per browser-minute — and a successful fetch bills even when the page itself errors, while unused credits expire monthly. On Microlink, a request is a request: one flat price, whatever it returns.
The proxy is included, not a 5× surcharge
When a target blocks datacenter traffic, Microlink Pro reroutes through auto-rotating residential IPs with antibot detection for 30+ providers — at the same flat request price. The share of protected pages in your workload never changes your bill.
A free tier that refills every day
Firecrawl's free plan is 1,000 one-time credits — spend them and it's over. Microlink resets 25 free requests every day, forever: over 9,000 requests a year, no credit card, no API key, testable from the browser address bar.
Markdown from pages, PDFs, and office files
The same GET request converts a web page, a PDF, or a docx, xlsx, or pptx document into clean markdown — about 80% fewer tokens than raw HTML — with adblock stripping ads, trackers, and cookie banners before conversion by default.
Caching that pays you back
Microlink caches responses with a TTL of up to 31 days on paid plans, and cache hits don't spend your quota. Firecrawl credits work the other way around: they don't roll over — capacity you paid for disappears at the end of the month.
MIT-licensed core, no copyleft strings
Firecrawl's core is AGPL-3.0 — copyleft that requires publishing your modifications if you serve it to users. Microlink's engine — Browserless, Metascraper, MQL — is MIT licensed: embed it, fork it, or self-host it with no obligations.
One request price.
No credit multipliers.
Microlink bills requests. Firecrawl bills credits — and the multipliers decide what a credit is worth.
Microlink
$49/mo
46,000 requests/month
- One request can return markdown, metadata, logo, and screenshot together
- Adblock and cookie-banner removal on by default
- Residential proxy and antibot detection included — no 5× multiplier
- TTL caching up to 31 days — cache hits don't spend your quota
- No concurrency limit* and no per-minute cap
- Free: 25 requests/day, renews forever, no credit card
- 330+ edge nodes, 99.9% SLA
- ~$0.00107/request on this tier
Firecrawl
$83/mo
100,000 credits/month (Standard)
- 1 credit per basic scrape page; stealth proxy pages cost 5
- Search: 2 credits per 10 results · Interact: 2 per browser-minute
- 50 concurrent requests on this tier
- Credits don't roll over; successful fetches bill even if the page errors
- Free plan: 1,000 one-time credits
The credit math: same 46,000 pages, very different bills
Firecrawl's default auto proxy escalates to enhanced when the basic attempt fails — and enhanced bills 5 credits. The mix of protected pages, not your volume, decides the bill.
| Scenario | What happens | Monthly bill |
|---|---|---|
| Firecrawl — every page is easy | 46,000 pages × 1 credit fits the 100,000-credit Standard plan | $83/mo |
| Firecrawl — 30% behind bot walls | 32,200 × 1 + 13,800 × 5 = 101,200 credits — past Standard, into the Growth tier | ≈ $333/mo |
| Microlink — any mix | 46,000 requests with the residential proxy included* | $49/mo |
Estimates use Firecrawl's published credit rates. Light, unprotected workloads fit Firecrawl's cheaper tiers well — the gap opens when stealth pages, search calls, and browser minutes start multiplying, or when unused credits expire while Microlink cache hits stay free.
* Microlink never bills or caps concurrency on legitimate usage. We only restrict usage that is fraudulent or illegal — for example, traffic aimed at attacking other people's sites.
Ship markdown, not credit spreadsheets
Your first 25 requests/day are free — renewed daily, no credit card, no API key.
Feature-by-Feature Comparison
A flat-priced data API and a credit-billed scraping platform, side by side.
| Feature | Microlink | Firecrawl |
|---|---|---|
| URL to LLM-ready markdown | ✓ | ✓ |
| Metadata extraction | ✓ | ✓ |
| Screenshot capture | ✓ | ✓ |
| Full-page screenshots | ✓ | ✓ |
| PDF parsing (PDF → markdown) Microlink also converts docx, xlsx, and pptx documents with the same request. | ✓ | ✓ |
| Structured data extraction Firecrawl uses AI prompts or JSON Schema; Microlink uses MQL CSS-selector rules at the flat request price. | ✓ | ✓ |
| Browser automation (click / scroll / wait) | ✓ | ✓ |
| Custom HTTP headers | ✓ | ✓ |
| Response caching (TTL) Microlink cache hits are free and do not count against your plan. | ✓ | ✓ |
| Residential / stealth proxy Firecrawl enhanced proxy bills 5 credits per request; Microlink Pro includes it at the flat request price. | ✓ | ✓ |
| MCP server | ✓ | ✓ |
| CLI | ✓ | ✓ |
| Open-source core Firecrawl is AGPL-3.0 (copyleft); Microlink components are MIT licensed. | ✓ | ✓ |
| Flat pricing (no credit multipliers) Firecrawl: search 2 credits per 10 results, browser interaction 2 per minute, enhanced proxy 5 per request. | ✓ | ✕ |
| Free tier that renews daily Firecrawl free plan is 1,000 one-time credits; Microlink resets 25 free requests every day. | ✓ | ✕ |
| No concurrency limit* Firecrawl caps concurrency per plan: 2 free, 50 Standard, 150 Scale. | ✓ | ✕ |
| PDF generation (URL → PDF) | ✓ | ✕ |
| Link previews SDK (React/Vue/JS) | ✓ | ✕ |
| Browser chrome overlay | ✓ | ✕ |
| Animated capture (MP4/WebM) | ✓ | ✕ |
| Dark/light mode capture | ✓ | ✕ |
| Direct embed (no backend) | ✓ | ✕ |
| Self-hostable platform The MIT components (Browserless, Metascraper, MQL) can be self-hosted; the hosted API is managed. | Partial | ✓ |
| Web search endpoint Microlink Search is a paid workflow from the first request; results expose lazy .markdown() content expansion. | ✓ | ✓ |
| One-line GET endpoint (markdown.microlink.io/{url}) | ✓ | ✕ |
| Multi-page crawling | ✕ | ✓ |
| Site mapping | ✕ | ✓ |
| Change monitoring & alerts | ✕ | ✓ |
| AI-prompt extraction (natural language) | ✕ | ✓ |
| Async jobs + webhooks | ✕ | ✓ |
Last verified: August 2026. See each product's docs for the latest.
Where Firecrawl
Might Be the Right Choice
You need discovery, not just extraction
Firecrawl bundles search-and-scrape in one call, crawls whole sites, and maps URL structures. Microlink assumes you already know which URLs you need — if discovery is part of the job, Firecrawl covers it natively.
Change monitoring with alerts
The monitor endpoint watches pages for changes with webhook and email alerts, plus AI-powered goal filtering. Microlink has no monitoring capability — you would schedule and diff captures yourself.
Natural-language extraction
Firecrawl extracts structured data from a plain-English prompt or a JSON Schema. Microlink MQL is CSS-selector based — precise and deterministic, but you write the selectors.
Self-hosting the whole platform
Firecrawl is AGPL-3.0 and self-hostable as a complete product. Microlink open-sources its MIT core libraries, but the hosted API itself is a managed service.
A large agent ecosystem
SDKs for Python, Node.js, Go, Rust, and Java, a first-class CLI, an agent-onboarding flow, and a widely adopted MCP server make Firecrawl a familiar default in AI tooling stacks.
Ship lighter markdown
25 requests/day free — no account, no credit card. 20,000 HTML tokens in, 4,000 markdown tokens out.
The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://github.com/trending' URL with 'data' & 'embed' API parameters:
CLI Microlink API example
microlink https://github.com/trending&data.markdown.attr=markdown&embed=markdowncURL Microlink API example
curl -G "https://api.microlink.io" \
-d "url=https://github.com/trending" \
-d "data.markdown.attr=markdown" \
-d "embed=markdown"JavaScript Microlink API example
import mql from '@microlink/mql'
const { data } = await mql('https://github.com/trending', {
data: {
markdown: {
attr: "markdown"
}
},
embed: "markdown"
})Python Microlink API example
import requests
url = "https://api.microlink.io/"
querystring = {
"url": "https://github.com/trending",
"data.markdown.attr": "markdown",
"embed": "markdown"
}
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://github.com/trending",
data.markdown.attr: "markdown",
embed: "markdown"
}
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://github.com/trending",
"data.markdown.attr" => "markdown",
"embed" => "markdown"
];
$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://github.com/trending")
q.Set("data.markdown.attr", "markdown")
q.Set("embed", "markdown")
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://github.com/trending', {
data: {
markdown: {
attr: "markdown"
}
},
embed: "markdown"
})Is there a Firecrawl alternative with flat per-request pricing?
Yes — Microlink charges one flat price per request, whatever the request does. Firecrawl bills in credits that multiply: a basic scrape is 1 credit, the enhanced (stealth) proxy is 5, search costs 2 per 10 results, and browser interaction costs 2 per minute.
On Microlink, routing through the residential proxy, extracting metadata, or returning markdown never changes what a request costs. Cache hits are free on top.
How much does Firecrawl's stealth proxy actually cost at scale?
Five credits per request instead of one, per Firecrawl's own proxy docs — and auto mode escalates to it whenever the basic attempt fails. If 30% of 46,000 monthly pages sit behind bot walls, that is 32,200 + (13,800 × 5) = 101,200 credits — past the 100,000-credit Standard plan and into the $333 Growth tier.
Microlink Pro includes residential proxy routing and antibot detection at the flat request price, so the protected-page ratio never changes your bill.
Does Microlink return LLM-ready markdown like Firecrawl?
Yes. One GET request returns any URL as clean markdown — see the URL to markdown guide. Because adblock ships enabled by default, ads, trackers, and cookie banners are stripped before conversion, so the markdown arrives free of consent noise.
The token math matters for LLM workloads: a typical page that costs 20,000 HTML tokens becomes about 4,000 markdown tokens — roughly 80% fewer tokens per page.
Can Microlink convert PDFs and office documents like Firecrawl?
Yes. Point the same request at a web page, a PDF, or a docx, xlsx, or pptx file — Microlink converts the document to an HTML DOM at fetch time, so the identical markdown request works across all of them. A YouTube URL even returns the video's caption transcript as the markdown body.
Firecrawl parses web-hosted and local PDFs too; the difference is that on Microlink the document case needs no separate endpoint or parameter — it is the same GET request.
What about crawling, search, and monitoring?
Crawling and monitoring are genuinely Firecrawl's territory: Microlink converts one URL per call and does not watch pages for changes — you own the queue and the diffing.
Search is covered: Microlink Search is a Google SERP API for AI agents returning normalized JSON across 10 surfaces, where every result exposes a lazy .markdown() helper to expand top matches into LLM-ready content. It is a paid workflow from the first request, since public-result collection runs on managed proxy capacity.
How do the open-source licenses compare (MIT vs AGPL)?
Both companies develop in the open, with different licenses. Firecrawl's core is AGPL-3.0 — a copyleft license that requires publishing your modifications if you serve the software to users.
Microlink's core libraries — Browserless, Metascraper, and MQL — are MIT licensed: read, fork, embed, or self-host them with no copyleft obligations.
How do I migrate from Firecrawl's scrape endpoint to Microlink?
Swap the authenticated POST for a plain GET. Firecrawl's formats: ["markdown"] becomes data.markdown.attr=markdown (add embed=markdown to receive raw markdown instead of JSON), and the metadata Firecrawl returns alongside the content is included in Microlink's standard response by default.
Screenshots, headers, and browser automation map to query parameters too — start from the markdown guide and adapt one request at a time.
How do the free tiers compare?
Firecrawl's free plan is 1,000 one-time credits with 2 concurrent requests — once spent, it is gone. Microlink gives you 25 free requests per day, every day, with no credit card and no expiry — over 9,000 requests per year for evaluating in real conditions.
Microlink's free tier also needs no API key at all: paste the URL in a browser address bar and the response comes back.