Overview
Microlink API provides a powerful API for automating any browser action.
The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://github.com/microlinkhq' URL:
CLI Microlink API example
microlink https://github.com/microlinkhqcURL Microlink API example
curl -G "https://api.microlink.io" \
-d "url=https://github.com/microlinkhq"JavaScript Microlink API example
import mql from '@microlink/mql'
const { data } = await mql('https://github.com/microlinkhq')Python Microlink API example
import requests
url = "https://api.microlink.io/"
querystring = {
"url": "https://github.com/microlinkhq"
}
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/microlinkhq"
}
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/microlinkhq"
];
$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/microlinkhq")
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/microlinkhq')You can hit the API directly from your browser or any environment that allows you to perform a simple HTTP GET request. From JavaScript, the Microlink SDK wraps the same API into one method per product.
The Microlink CLI is helpful to explore the API under local development.
Giving a url as input, you get structured data as output.
{
"status": "success",
"data": {
"title": "microlink.io",
"description": "Turn websites into data. microlink.io has 34 repositories available. Follow their code on GitHub.",
"lang": "en",
"author": null,
"publisher": "GitHub",
"image": {
"url": "https://avatars0.githubusercontent.com/u/29799436?s=280&v=4",
"type": "png",
"size": 4118,
"height": 280,
"width": 280,
"size_pretty": "4.12 kB"
},
"date": "2020-09-22T09:33:36.000Z",
"url": "https://github.com/microlinkhq",
"logo": {
"url": "https://logo.clearbit.com/github.com",
"type": "png",
"size": 6313,
"height": 128,
"width": 128,
"size_pretty": "6.31 kB"
}
}
}There are some of the most common workflow you can do with Microlink API:
- Retrieve meta data from any link.
- Take a screenshot or generate a pdf of the target website.
- Get a predominant color palette per each image detected.
- Make easy embed content directly in your HTML markup.
- Identify technologies behind a target URL.
- prerender mode, useful for getting more information from websites that use client-side frameworks.
The following documentation is going to teach you all these things and more.
Prefer not to compose query strings by hand? The Microlink SDK — the microlink.io package — exposes every workflow above as a method, such as
microlink.screenshot(url), for Node.js, browsers, and Deno.