proxyPRO
Type:
<string> | <object>
It sets the proxy HTTP server for resolving any internal sub-requests over the target url.
We provide an automatic proxy resolution included for any pro plan to handle IP blocking, CAPTCHAs, banners, or any other scraping shield protection.
Our automatic proxy resolution is well-tested against Top 500 most popular worldwide websites.
Additionally, you can provide your own proxy server:
The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://geolocation.microlink.io' URL with 'proxy' API parameter:
CLI Microlink API example
microlink https://geolocation.microlink.io&proxy=https://myproxy:603f60f5@superproxy.cool:8001cURL Microlink API example
curl -G "https://api.microlink.io" \
-d "url=https://geolocation.microlink.io" \
-d "proxy=https://myproxy:603f60f5@superproxy.cool:8001"JavaScript Microlink API example
import mql from '@microlink/mql'
const { data } = await mql('https://geolocation.microlink.io', {
proxy: "https://myproxy:603f60f5@superproxy.cool:8001"
})Python Microlink API example
import requests
url = "https://api.microlink.io/"
querystring = {
"url": "https://geolocation.microlink.io",
"proxy": "https://myproxy:603f60f5@superproxy.cool:8001"
}
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://geolocation.microlink.io",
proxy: "https://myproxy:603f60f5@superproxy.cool:8001"
}
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://geolocation.microlink.io",
"proxy" => "https://myproxy:603f60f5@superproxy.cool:8001"
];
$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://geolocation.microlink.io")
q.Set("proxy", "https://myproxy:603f60f5@superproxy.cool:8001")
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://geolocation.microlink.io', {
proxy: "https://myproxy:603f60f5@superproxy.cool:8001"
})The proxy server string provided should be
WHATWG URL
.You can ensure proxy is properly used checking
x-fetch-mode header on response, whose value should be prefixed by 'proxy-*'.HTTP/2 200
content-type: application/json; charset=utf-8
x-response-time: 1.7s
x-pricing-plan: pro
x-fetch-mode: prerender-proxy
x-cache-ttl: 86400000
x-request-id: iad:2eb66538-0a16-4c56-b613-511d99507c9f
x-cache-status: BYPASS
cache-control: public, must-revalidate, max-age=0
x-fetch-time: 0ms