Iconaut · Mission Control
Lat v0.1 All systems nominal Star
Favicon API · Self-hosted · Cached on S3

Type a domain.Get its favicon.

A single HTTP endpoint that resolves the favicon for any domain on the internet

Live demo Real /icon calls
zerodha.com
GET  /icon?domain=zerodha.com
No API key Cached ~4ms warm
01 / Demo

Point at any domain.

Type a host. We'll fetch the icon live, walk parent domains if needed, and fall back to Google's S2 service if the origin is hostile.

Target host ↵ to launch
Try
Latency
Source
Format
Awaiting
coordinates
STATUS · STANDBY
02 / Mission profiles

Where iconaut is useful.

Anywhere a tiny picture next to a URL makes the experience feel real.

A · LINK PREVIEWS

Chat & comment unfurls

When someone pastes a URL, surface its favicon next to the title. Your team's chat, your CMS's link cards, your RSS reader.

anthropics/claude-code
github.com/anthropics/claude-code
Show HN: a thing I built this weekend
news.ycombinator.com
B · CREDENTIALS

Password manager vault

Show the right brand mark next to each saved login so users can scan their vault by sight, not by reading every label.

Zerodha finance@ ●●●●●●●●
Cloudflare ops@ ●●●●●●●●
1Password me@ ●●●●●●●●
Linear work@ ●●●●●●●●
C · DASHBOARDS

Bookmarks & speed-dials

Build a new-tab page, a startpage, a homelab dashboard. Iconaut hands you crisp icons for every tile without you committing PNGs to a repo.

Figma
Notion
Vercel
Spotify
YouTube
Discord
Reddit
Wiki
03 / Flight manual

One endpoint. One parameter.

No SDK to install, no key to rotate. It's a GET request and a URL.

~/iconaut · zsh
# Fetch a favicon and save it to disk
$ curl -o github.png \
    "https://iconaut.xyz/icon?domain=github.com"

  % Total    % Received    Time    Speed
  100   3742    100  3742    --      4.1M  ✓

# Or just embed it directly in HTML
$ echo '<img src="https://iconaut.xyz/icon?domain=zerodha.com" />'

# Inspect headers — note the long cache lifetime & CSP for SVG
$ curl -I "https://iconaut.xyz/icon?domain=hey.com"
HTTP/1.1 200 OK
Content-Type: image/png
X-Content-Type-Options: nosniff
Cache-Control: public, max-age=31536000

The endpoint

GET /icon?domain={host}

Accepts bare hosts, full URLs, or hosts with paths. Iconaut strips the noise and resolves the bare host.

github.com→ ok
https://github.com→ ok, scheme stripped
github.com/foo→ ok, path stripped
portal.azure.com→ ok, walks up to azure.com if needed

What you get back

image/png · image/svg+xml · image/x-icon

Whatever the origin serves, passed through with content-type intact. SVGs come with a strict CSP so a hostile <script> inside one can't run on your origin.

200image bytes
400missing or invalid domain
502nothing usable found upstream