Web page to Markdown
attr: 'markdown' to serialize a page as Markdown. This is the direct recipe for LLM ingestion, RAG pipelines, docs imports, and any workflow that should not carry raw HTML.The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://stripe.com/docs/api' URL with 'data' & 'meta' API parameters:
CLI Microlink API example
microlink https://stripe.com/docs/api&data.markdown.attr=markdowncURL Microlink API example
curl -G "https://api.microlink.io" \
-d "url=https://stripe.com/docs/api" \
-d "data.markdown.attr=markdown" \
-d "meta=false"JavaScript Microlink API example
import mql from '@microlink/mql'
const { data } = await mql('https://stripe.com/docs/api', {
data: {
markdown: {
attr: "markdown"
}
},
meta: false
})Python Microlink API example
import requests
url = "https://api.microlink.io/"
querystring = {
"url": "https://stripe.com/docs/api",
"data.markdown.attr": "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://stripe.com/docs/api",
data.markdown.attr: "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://stripe.com/docs/api",
"data.markdown.attr" => "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://stripe.com/docs/api")
q.Set("data.markdown.attr", "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://stripe.com/docs/api', {
data: {
markdown: {
attr: "markdown"
}
},
meta: false
})data.markdown.Return markdown directly
embed: 'markdown' when the API URL should return Markdown instead of JSON:The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://stripe.com/docs/api' URL with 'data', 'meta' & 'embed' API parameters:
CLI Microlink API example
microlink https://stripe.com/docs/api&data.markdown.attr=markdown&embed=markdowncURL Microlink API example
curl -G "https://api.microlink.io" \
-d "url=https://stripe.com/docs/api" \
-d "data.markdown.attr=markdown" \
-d "meta=false" \
-d "embed=markdown"JavaScript Microlink API example
import mql from '@microlink/mql'
const { data } = await mql('https://stripe.com/docs/api', {
data: {
markdown: {
attr: "markdown"
}
},
meta: false,
embed: "markdown"
})Python Microlink API example
import requests
url = "https://api.microlink.io/"
querystring = {
"url": "https://stripe.com/docs/api",
"data.markdown.attr": "markdown",
"meta": "false",
"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://stripe.com/docs/api",
data.markdown.attr: "markdown",
meta: "false",
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://stripe.com/docs/api",
"data.markdown.attr" => "markdown",
"meta" => "false",
"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://stripe.com/docs/api")
q.Set("data.markdown.attr", "markdown")
q.Set("meta", "false")
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://stripe.com/docs/api', {
data: {
markdown: {
attr: "markdown"
}
},
meta: false,
embed: "markdown"
})text/markdown.https://api.microlink.io?url=https://stripe.com/docs/api&data.markdown.attr=markdown&meta=false&embed=markdownScope noisy pages
The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://microlink.io/docs/api/getting-started/overview' URL with 'data', 'meta' & 'embed' API parameters:
CLI Microlink API example
microlink https://microlink.io/docs/api/getting-started/overview&data.markdown.selector=main&data.markdown.attr=markdown&embed=markdowncURL Microlink API example
curl -G "https://api.microlink.io" \
-d "url=https://microlink.io/docs/api/getting-started/overview" \
-d "data.markdown.selector=main" \
-d "data.markdown.attr=markdown" \
-d "meta=false" \
-d "embed=markdown"JavaScript Microlink API example
import mql from '@microlink/mql'
const { data } = await mql('https://microlink.io/docs/api/getting-started/overview', {
data: {
markdown: {
selector: "main",
attr: "markdown"
}
},
meta: false,
embed: "markdown"
})Python Microlink API example
import requests
url = "https://api.microlink.io/"
querystring = {
"url": "https://microlink.io/docs/api/getting-started/overview",
"data.markdown.selector": "main",
"data.markdown.attr": "markdown",
"meta": "false",
"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://microlink.io/docs/api/getting-started/overview",
data.markdown.selector: "main",
data.markdown.attr: "markdown",
meta: "false",
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://microlink.io/docs/api/getting-started/overview",
"data.markdown.selector" => "main",
"data.markdown.attr" => "markdown",
"meta" => "false",
"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://microlink.io/docs/api/getting-started/overview")
q.Set("data.markdown.selector", "main")
q.Set("data.markdown.attr", "markdown")
q.Set("meta", "false")
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://microlink.io/docs/api/getting-started/overview', {
data: {
markdown: {
selector: "main",
attr: "markdown"
}
},
meta: false,
embed: "markdown"
})main, article, or a page-specific selector when the full page is too noisy.Keep metadata when useful
meta: true prepends YAML frontmatter with normalized fields such as title, description, author, publisher, date, word count, and reading time. Keep meta: false when you only want the Markdown body.