Skip to content

device

Type: <string>
Default: 'macbook pro 13'
It loads a set of options (such as viewport, user agent, etc) to emulate the specified device over the target url.

The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://microlink.io' URL with 'screenshot' & 'device' API parameters:

CLI Microlink API example

microlink https://microlink.io&screenshot&device=iPad

cURL Microlink API example

curl -G "https://api.microlink.io" \
  -d "url=https://microlink.io" \
  -d "screenshot=true" \
  -d "device=iPad"

JavaScript Microlink API example

import mql from '@microlink/mql'

const { data } = await mql('https://microlink.io', {
  screenshot: true,
  device: "iPad"
})

Python Microlink API example

import requests

url = "https://api.microlink.io/"

querystring = {
    "url": "https://microlink.io",
    "screenshot": "true",
    "device": "iPad"
}

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",
  screenshot: "true",
  device: "iPad"
}

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.body

PHP Microlink API example

<?php

$baseUrl = "https://api.microlink.io/";

$params = [
    "url" => "https://microlink.io",
    "screenshot" => "true",
    "device" => "iPad"
];

$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("screenshot", "true")
    q.Set("device", "iPad")
    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))
}
When the divide is defined, it will affect the whole request lifecycle. It doesn't matter if you use uppercase or lowercase.
The following devices names are supported:

Mobile

  • 'iPhone 15 Pro Max'
  • 'iPhone 15 Pro'
  • 'iPhone 14 Pro Max'
  • 'iPhone 13 Pro Max'
  • 'iPhone 15'
  • 'Galaxy S9+'
  • 'iPhone 14'
  • 'Pixel 5'
  • 'iPhone 13'
  • 'Galaxy S8'
  • 'Pixel 4a (5G)'
  • 'iPhone 12'
  • 'Galaxy S5'
  • 'Pixel 4'
  • 'Nexus 6P'

Tablet

  • 'iPad'
  • 'iPad Pro'
  • 'iPad Pro 11'
  • 'iPad (gen 7)'
  • 'iPad (gen 6)'
  • 'iPad Mini'
  • 'Galaxy Tab S4'
  • 'Nexus 7'
  • 'Kindle Fire HDX'
  • 'Nexus 10'
  • 'iPad landscape'
  • 'iPad Pro landscape'
  • 'Galaxy Tab S4 landscape'
  • 'iPad Mini landscape'
  • 'Nexus 7 landscape'

Desktop

  • 'Macbook Pro 13'
  • 'Macbook Pro 16'
  • 'iMac 24 4.5K'
  • 'Macbook Pro 15'
  • 'iMac 27'
  • 'iMac 27 5K'
  • 'iMac 21'
  • 'iMac 21 4K'