Brand logo API for developers
Get the logo behind any URL. Microlink walks the page markup, checks the BIMI record in DNS and falls back to the favicon — returning the best asset with its format, dimensions and brand palette.
The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://www.cloudflare.com' URL with 'palette' & 'filter' API parameters:
CLI Microlink API example
microlink https://www.cloudflare.com&palette&filter=logocURL Microlink API example
curl -G "https://api.microlink.io" \
-d "url=https://www.cloudflare.com" \
-d "palette=true" \
-d "filter=logo"JavaScript Microlink API example
import mql from '@microlink/mql'
const { data } = await mql('https://www.cloudflare.com', {
palette: true,
filter: "logo"
})Python Microlink API example
import requests
url = "https://api.microlink.io/"
querystring = {
"url": "https://www.cloudflare.com",
"palette": "true",
"filter": "logo"
}
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://www.cloudflare.com",
palette: "true",
filter: "logo"
}
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://www.cloudflare.com",
"palette" => "true",
"filter" => "logo"
];
$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://www.cloudflare.com")
q.Set("palette", "true")
q.Set("filter", "logo")
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://www.cloudflare.com', {
palette: true,
filter: "logo"
})Send the URL Get the brand back
2.0
secs
P95 cold response
99.9
%
SLA Guaranteed
More than a favicon.
Markup conventions, walked in order
og:logo, itemprop="logo" and the JSON-LD marks for brands, organizations and publishers are probed one by one — the first match wins.
The logo hiding in DNS
Domains publish an official square SVG as a BIMI record — the same logo your mailbox shows next to authenticated email, resolved without downloading the page.
Favicon as the safety net
Nearly every site serves a favicon, so when markup and DNS are empty the tab icon keeps coverage from dropping to zero.
Palette in the same call
palette adds the dominant colors plus background and foreground pairs picked for WCAG contrast — ready to theme UI with.
Start free, scale when ready
No signup, no API key, no credit card. The logo API is free to start — point it at a domain and get the brand back.
Free
Try the API in seconds. No card.
$0/month
25 requests per day
- 25 requests / day
- Screenshot, PDF, SDK
- Metadata, Logo, Insights
- Global edge cache
- Adblock & cookie banners
- Community support
Pro
For production workloads.
$49/month
≈ $1.07 per 1,000 requests
46,000 requests / month
- Everything in Free
- Automatic proxy resolution
- Configurable TTL
- Custom HTTP headers
- Custom cache key
- Priority email support
Cancel anytime · No setup fees
Enterprise
Dedicated infra for high-volume.
Custom
Tailored to your volume
- Everything in Pro
- Custom API endpoint
- Dedicated CDN distribution
- S3-like storage integration
- Custom SLA & DPA available
Built on open source,
trusted by developers
The Microlink logo pipeline is powered by battle-tested open source libraries used by thousands of developers worldwide. Our logo API is built on an open source foundation: explore the code, contribute, or run it yourself.
The web never standardized the logo. We standardized finding it.
One request checks every markup convention, the DNS record and the favicon via the metadata API, then returns the winner with its colors.
Three Detection Sources
Page markup, the DNS BIMI record and the favicon are checked in order, so the best available asset wins and coverage never drops to zero.
Brand Palette Extraction
Dominant colors arrive ordered by presence, plus background and foreground pairs picked for WCAG contrast — ready to theme UI with.
Complete Image Metadata
Format, file size and exact dimensions ship with every logo, so layouts render without a probe request or a layout shift.
Hotlink-Ready Embedding
One query parameter turns the response into the image itself, so the logo drops straight into an image tag with nothing to store.
Real Browser Detection
Markup injected by JavaScript is still found, because detection happens after the page has fully rendered.
No HTML Required
The DNS source resolves without touching the page, so a logo still comes back when a site is rate-limited or answers with a 403.
Edge Cached Responses
Configurable TTL from 1 minute to 31 days. Cache hits are free, return instantly, and never boot a browser.
Enterprise-Grade Reliability
Production-ready infrastructure with a 99.9% uptime SLA and guaranteed performance for business-critical brand pipelines.
Generous Free Tier
Start immediately with 25 requests/day. No setup fees, no credit card, and pay-as-you-grow pricing that scales with your usage.
Three Detection Sources
Page markup, the DNS BIMI record and the favicon are checked in order, so the best available asset wins and coverage never drops to zero.Brand Palette Extraction
Dominant colors arrive ordered by presence, plus background and foreground pairs picked for WCAG contrast — ready to theme UI with.Complete Image Metadata
Format, file size and exact dimensions ship with every logo, so layouts render without a probe request or a layout shift.
Hotlink-Ready Embedding
One query parameter turns the response into the image itself, so the logo drops straight into an image tag with nothing to store.Real Browser Detection
Markup injected by JavaScript is still found, because detection happens after the page has fully rendered.No HTML Required
The DNS source resolves without touching the page, so a logo still comes back when a site is rate-limited or answers with a 403.
Edge Cached Responses
Configurable TTL from 1 minute to 31 days. Cache hits are free, return instantly, and never boot a browser.Enterprise-Grade Reliability
Production-ready infrastructure with a 99.9% uptime SLA and guaranteed performance for business-critical brand pipelines.Generous Free Tier
Start immediately with 25 requests/day. No setup fees, no credit card, and pay-as-you-grow pricing that scales with your usage.
Start now
Get 25 requests/day with zero commitment. The logo API is free to use, with no account and no credit card. Send a URL and get the logo, its metadata and the brand palette back in one call.
No login needed
25 reqs/day free
No credit card
Product Information
Everything you need to know about the Microlink logo API.
Where does the logo come from?
The page markup is walked first — og:logo, itemprop="logo" and the structured data for brands, organizations and publishers. The first match wins.
When markup is empty, the BIMI record published in DNS is checked, and the favicon is the last resort — so a result comes back for nearly every site.
What is a BIMI logo?
BIMI (Brand Indicators for Message Identification) lets a domain publish its official logo in DNS as a square SVG — the same logo Gmail and Apple Mail show next to authenticated email.
When a domain publishes one it is the best source available: intentional, script-free and square by design. Read how Microlink uses it.
How do I get the brand colors?
Enable the palette parameter and every detected image gains a palette array ordered from most dominant color to least.
You also get background_color, color and alternative_color — pairs picked for good WCAG contrast, so you can build accessible UI directly on the response.
Can I embed the logo directly in an image tag?
Yes. Add embed=logo.url to the query string and the API URL becomes the image itself.
Hotlink it from an <img> tag or a CSS background with no JSON parsing and nothing to store on your side.
What happens when a site has no logo?
Nearly every site serves a favicon, so the fallback keeps coverage close to universal. When not even a favicon exists the logo field is null — easy to detect so you can render your own placeholder, such as an initials avatar.
How fresh are the responses?
Responses are cached at the edge with a configurable TTL from 1 minute to 31 days. Cache hits are free and served instantly, and once the TTL expires the logo is fetched again, so a rebrand propagates without you doing anything.




