BYTETOOLS

Icon Horse API

Free favicon API with no key: fetches the highest-quality icon for any domain and always returns something, generating a letter-mark fallback when a site has none. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Icon Horse API?

Icon Horse is a free, key-free favicon API. Given a domain it finds the best available icon — checking the web app manifest, Apple touch icons, declared link tags and the root favicon — and always returns an image, generating a coloured letter-mark when a site has no icon at all.

Every favicon service has to solve the same discovery problem, because sites declare icons in half a dozen incompatible ways. Icon Horse's angle is quality and guaranteed output: it prefers the largest, highest-fidelity icon it can find rather than the 16-pixel `favicon.ico`, and it never returns nothing.

That last part is the practical difference from Google's favicon endpoint, which falls back to a generic globe for every unknown site — so a link list ends up showing the same grey globe a dozen times. Icon Horse instead generates a distinct coloured letter-mark from the domain name, which keeps entries visually distinguishable. It is a small thing that matters a lot in a dense list of links.

Quick facts

Base URL
https://icon.horse
Authentication
No API key for standard use. A paid tier exists for high volume and adds an SLA, but the free endpoint needs no account.
Rate limit
Fair-use throttling on the free tier. Icons are cached aggressively on their side.
Pricing
Free tier with no key; paid plans for high-volume commercial use.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Icon Horse API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Fetch the best available icon for github.com

GET https://icon.horse/icon/github.com

curl
curl 'https://icon.horse/icon/github.com'
JavaScript (fetch)
const res = await fetch("https://icon.horse/icon/github.com");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://icon.horse/icon/github.com", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
# This endpoint returns image/png, not JSON.
# The response body is the image itself, so it can be used directly as an
# <img src="..."> or saved to a file — there is nothing to parse.
#
# Verified: HTTP 200, Content-Type: image/png

Parameters

ParameterTypeRequiredDescription
domainpath segmentRequiredThe domain to fetch an icon for, appended to `/icon/`. A bare hostname, not a full URL. github.com
sizequeryOptionalPreferred icon size. Icon Horse returns the closest match it holds rather than upscaling aggressively. large
fallbackqueryOptionalControl the behaviour when no icon is found. The default generates a letter-mark from the domain.

Response fields

(body)image
The icon itself as raw bytes, usually PNG. The URL works directly in an `img` tag with no JSON step.
Content-Typeheader
Image MIME type, typically `image/png`.
(fallback letter-mark)image
When a site has no discoverable icon, a coloured letter-mark derived from the domain is generated — distinct per domain, unlike a shared generic globe.

What you can build with the Icon Horse API

  • Show site icons in a bookmark manager, link directory or read-later app
  • Add recognisable favicons to an RSS or news aggregator
  • Display icons next to entries in a browser-history or analytics dashboard
  • Build a link-preview card component that always has an icon

Common errors and how to fix them

Letter-mark instead of a real icon

The site has no discoverable favicon.

Fix: This is the intended behaviour, not a failure. If you need to detect it, compare against a known letter-mark or check the image dimensions.

429

Fair-use throttling on the free tier.

Fix: Cache icons on your own storage. Favicons change very rarely, so a multi-week cache is safe and removes nearly all traffic.

Timeout on first request

Icon Horse is fetching and analysing the target site live.

Fix: The first request for a new domain is slow; subsequent ones are served from their cache. Prefetch icons rather than blocking a page render on them.

Icon Horse API — frequently asked questions

Is the Icon Horse API free?

Yes, the standard endpoint is free with no API key or account. A paid tier exists for high-volume commercial use and adds an SLA, but you do not need it to start.

How is Icon Horse different from Google's favicon service?

Two things. It prefers the highest-quality icon available — checking the web app manifest and Apple touch icons rather than settling for a 16-pixel favicon.ico — and when a site has no icon it generates a distinct coloured letter-mark instead of returning the same generic globe for everything.

What happens if a website has no favicon?

You get a generated letter-mark based on the domain name, with a colour derived from it. That keeps entries in a link list visually distinguishable, which a shared fallback icon does not.

Should I cache the icons?

Yes. Favicons change very rarely, and the first request for an unseen domain is slow because Icon Horse fetches and analyses the target site live. Prefetch and store them rather than calling on every page render.

Tools that pair with this API

Icon Horse is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.