Structured Markdown
built for Agents
Convert any URL to clean markdown with 80% fewer tokens than raw HTML. Built for AI agent crawling, LLM ingestion, and RAG pipelines without parsers or custom scrapers.
The following examples show how to use the Microlink API:
# Browser as API ## **Microlink** turns any link into screenshots, PDFs, previews, or structured data. No more Puppeteer clusters. Open source roots. [](https://microlink.io/logo) ## Logo ### Get and embed favicons from any web [](https://microlink.io/screenshot) ## Screenshot ### Turn websites into screenshots [](https://microlink.io/sdk) ## SDK ### Create beautiful link previews [](https://microlink.io/insights) ## Insights ### Performance metrics powered by Lighthouse [](https://microlink.io/metadata) ## Metadata ### Get unified metadata [](https://microlink.io/pdf) ## PDF ### PDF made simple 240 ### CDN Edges 1B ### reqs per month 46TB ### data served 99.9% ### uptime 240 ### CDN Edges 1B ### reqs per month 46TB ### data served ## Production ready, browser as a service ### There are hidden costs to run your own infrastructure — Give your team an extra boost in performance, ease of use, browser automation made simple at cost pricing, full control via . - #### Powerful & Scalable Cloud-based solution with superior operational performance. - #### Costless Solution Starts free. No upfront costs, scalable pricing as you go, growing with your business. - #### Global CDN Edge storage distributed over +240 nodes backed by CloudFlare Network. - #### Developer First For developers, with top-notch industry technologies, language-agnostic. - #### Fully programmable Easy to integrate with any existing stack or cloud in just a few minutes. - #### Declarative Usage Simple documentation and interactive code examples that enable quick implementations. - #### Optimized hardware No servers to maintain; no shared browsers between requests. - #### Built-in cache Enabled by default, no additional caching setup required. - #### Security compliance Request isolation with no shared browsers between requests. - #### Powerful & Scalable Cloud-based solution with superior operational performance. - #### Costless Solution Starts free. No upfront costs, scalable pricing as you go, growing with your business. - #### Global CDN Edge storage distributed over +240 nodes backed by CloudFlare Network. - #### Developer First For developers, with top-notch industry technologies, language-agnostic. - #### Fully programmable Easy to integrate with any existing stack or cloud in just a few minutes. - #### Declarative Usage Simple documentation and interactive code examples that enable quick implementations. - #### Optimized hardware No servers to maintain; no shared browsers between requests. - #### Built-in cache Enabled by default, no additional caching setup required. - #### Security compliance Request isolation with no shared browsers between requests. ## Pricing ### Every plan comes with API access & 24/7 tech support. Use the forever free plan to try the service, no credit-card required. ## Free 50 - [](https://microlink.io/sdk) ### Microlink SDK - [](https://microlink.io/pdf) ### Microlink PDF - [](https://microlink.io/insights) ### Microlink insights - [](https://microlink.io/recipes) ### Microlink recipes - [](https://microlink.io/metadata) ### Microlink metadata - [](https://microlink.io/screenshot) ### Microlink screenshot [Get started](https://microlink.io/docs/api/getting-started/overview) ## Pro - Everything in Free - [](https://microlink.io/docs/api/parameters/ttl) ### Configurable TTL - [](https://microlink.io/docs/api/parameters/headers) ### Custom HTTP headers - [](https://microlink.io/docs/api/parameters/proxy) ### Automatic proxy resolution ## Enterprise Starts from - Everything in Pro - [](https://microlink.io/enterprise) ### Custom API endpoint - [](https://microlink.io/enterprise) ### Dedicated CDN distribution - [](https://microlink.io/enterprise) ### S3 like storage integration [See details](https://microlink.io/enterprise) ## FAQs ### Frequently asked questions. ### [Can I use microlink for free?](https://microlink.io/#can-i-use-microlink-for-free) Absolutely. We have a forever free [endpoint](https://microlink.io/docs/api/basics/endpoint) you can use. It’s the best way to start using the service. The free plan runs under some limitations to avoid abusive usage of the platform, like burst rate, limited concurrency rate and daily rate limit. The free plan should be enough for small projects or low API quota. ### [How different is the free plan compared with the Pro plan?](https://microlink.io/#how-different-is-the-free-plan-compared-with-the-pro-plan) The pro plan is ready to be used at scale, with better performance and unlocked features such as [headers](https://microlink.io/docs/api/parameters/headers), [ttl](https://microlink.io/docs/api/parameters/ttl) or [proxy](https://microlink.io/docs/api/parameters/proxy). A Pro plan comes with an associated API key and configurable quota. You only pay as you need. ### [What if I don't know how much API quota I need?](https://microlink.io/#what-if-i-dont-know-how-much-api-quota-i-need) No problem, just start with the smallest pro plan, and at the moment you need more, you can upgrade your plan. ### [How do I get an API key?](https://microlink.io/#how-do-i-get-an-api-key) After your payment, we send you the API key associated with the email you signed up. The API key needs to be attached to all your requests: - In [Microlink SDK](https://microlink.io/docs/sdk/getting-started/overview), attach it as [apiKey](https://microlink.io/docs/sdk/parameters/api-key). - In [Microlink API](https://microlink.io/docs/api/getting-started/overview), attach it as a [header](https://microlink.io/docs/api/basics/authentication). ### [What's your SLA level?](https://microlink.io/#whats-your-sla-level) Our Service-Level Agreements commitment is 99.9% (three nines). You can see the live [status](https://microlink.io/status) of the service. ### [How do I know my plan usage?](https://microlink.io/#how-do-i-know-my-plan-usage) We notify you automatically when you reach 80% or more of your usage plan, offering to upgrade your plan to one more suitable based on your plan usage. ### [What if I want to change my plan?](https://microlink.io/#what-if-i-want-to-change-my-plan) You can upgrade, downgrade, or cancel your monthly account at any time with no further obligation by sending an email to [](mailto:[email protected]) [email protected] with the email you signed up. ### [How is the payment processed?](https://microlink.io/#how-is-the-payment-processed) We use Stripe to process your payment. It’s the same payment provider used in products such as Twitter, Pinterest, and Lyft. We do not handle your credit card information directly. ### [Can I update my card details?](https://microlink.io/#can-i-update-my-card-details) Yes, send an email to [](mailto:[email protected]) [email protected] requesting the change. You will receive a link where you'll be able to securely update your details. ### [Can I cancel my subscription?](https://microlink.io/#can-i-cancel-my-subscription) Yes, by sending an email to [](mailto:[email protected]) [email protected] . Your request will be processed within 24hrs. ### [Other questions?](https://microlink.io/#other-questions) We’re always available at [](mailto:[email protected]) [email protected] .
HTML into markdown
for AI pipelines
Any URL. Any site. No target-site setup required.
One API call. Clean markdown out.
A typical page: 20,000 HTML tokens → 4,000 markdown tokens
The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://microlink.io' URL with 'force', 'data', 'embed' & 'meta' API parameters:
CLI Microlink API example
microlink https://microlink.io&force&data.markdown.attr=markdown&embed=markdowncURL Microlink API example
curl -G "https://api.microlink.io" \
-d "url=https://microlink.io" \
-d "force=true" \
-d "data.markdown.attr=markdown" \
-d "embed=markdown" \
-d "meta=false"JavaScript Microlink API example
import mql from '@microlink/mql'
const { data } = await mql('https://microlink.io', {
force: true,
data: {
markdown: {
attr: "markdown"
}
},
embed: "markdown",
meta: false
})Python Microlink API example
import requests
url = "https://api.microlink.io/"
querystring = {
"url": "https://microlink.io",
"force": "true",
"data.markdown.attr": "markdown",
"embed": "markdown",
"meta": "false"
}
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://microlink.io",
force: "true",
data.markdown.attr: "markdown",
embed: "markdown",
meta: "false"
}
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://microlink.io",
"force" => "true",
"data.markdown.attr" => "markdown",
"embed" => "markdown",
"meta" => "false"
];
$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://microlink.io")
q.Set("force", "true")
q.Set("data.markdown.attr", "markdown")
q.Set("embed", "markdown")
q.Set("meta", "false")
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://microlink.io', {
force: true,
data: {
markdown: {
attr: "markdown"
}
},
embed: "markdown",
meta: false
})Structured content for agents, without brittle scraping logic.
Convert any URL to markdown on the same API surface your team already uses for metadata, screenshots, and PDFs — no new infrastructure, no target-site setup. Start with Microlink API docs and ship in minutes.
Token efficient by default
Return clean markdown instead of HTML noise so your agents spend context budget on meaning, not markup. 80% fewer tokens on average.
Works on any website
Convert any public URL to markdown without the target site needing CDN opt-in or special configuration. The entire web is your dataset.
Built for agent workloads
Purpose-built for AI crawling, summarization, RAG indexing, LangChain, LlamaIndex, and large-scale LLM data preparation.
Streaming friendly
Compact markdown payloads move cleanly through queues, workers, and inference services with lower latency than HTML.
Metadata included
Pair markdown content with structured metadata — title, description, author, date — for better chunking, ranking, and traceability.
Fast integration
Ship quickly from browser demos, server workers, or SDK clients. One URL in, clean markdown out. Minimal glue code.
Token efficient by default
Return clean markdown instead of HTML noise so your agents spend context budget on meaning, not markup. 80% fewer tokens on average.Works on any website
Convert any public URL to markdown without the target site needing CDN opt-in or special configuration. The entire web is your dataset.Built for agent workloads
Purpose-built for AI crawling, summarization, RAG indexing, LangChain, LlamaIndex, and large-scale LLM data preparation.
Streaming friendly
Compact markdown payloads move cleanly through queues, workers, and inference services with lower latency than HTML.Metadata included
Pair markdown content with structured metadata — title, description, author, date — for better chunking, ranking, and traceability.Fast integration
Ship quickly from browser demos, server workers, or SDK clients. One URL in, clean markdown out. Minimal glue code.
HTML to markdown API, production-ready
Microlink Markdown converts any URL to clean markdown. Feed LLM workflows with cleaner inputs for chunking, summarization, RAG indexing, and retrieval without brittle parsing layers.
Better token economics
A typical page drops from 20,000 HTML tokens to 4,000 markdown tokens. Fit 5x more content into every LLM context window and cut your inference costs at scale.
Drop-in for existing pipelines
Feed clean markdown directly into LangChain, LlamaIndex, RAG pipelines, and orchestration flows. No HTML cleanup steps, no custom parsers, no transformation overhead.
Less infrastructure to maintain
Skip custom scrapers, HTML cleanup jobs, and brittle parsing layers. One API call extracts clean markdown from any URL — no target-site setup, no maintenance as the web changes.
Product Information
Answers to common questions about Microlink Markdown.
What is Microlink Markdown?
Microlink Markdown is an extraction API that takes any URL and returns clean markdown content ready for AI workflows.
Use it for crawling, summarization, and RAG ingestion where clean text beats noisy HTML.
Why do AI agents prefer markdown over HTML?
Markdown's explicit structure lets AI models focus on meaning, not markup, which improves comprehension and reduces LLM API costs at scale. Avoid handling HTML noise and focus on the content.
How much do I save on tokens by converting to markdown?
On average, markdown reduces token usage by 80% compared to raw HTML. A page costing 20,000 tokens as HTML costs around 4,000 tokens as markdown. Giving you 5x more content per context window.
This directly lowers your LLM API costs and increases how much information you can process per request.
Does it work on any website?
Yes. Microlink extracts markdown from any public URL. The target website does not need to natively serve markdown or have any special CDN or server-level configuration.
Unlike solutions that require opt-in at the infrastructure layer, Microlink works on the entire web immediately.
How do I integrate it?
Integration is straightforward: send a URL through the API client and read the markdown field from the response.
For production, run it server-side to keep credentials safe and control throughput.
Where can I see all parameters?
Visit Microlink API documentation for parameter details, request examples, and SDK usage guides.
You will find examples for metadata, screenshots, PDFs, and markdown extraction in one consistent API surface.