EmojiFavicons is a URL-based favicon API. Instead of downloading favicon files and uploading them to your server, you point a standard HTML link tag at the EmojiFavicons URL for any emoji. The API returns an SVG image (under 200 bytes) served from 300+ Cloudflare edge locations with a 7-day cache. No signup, no API key, no build step required.
Add an emoji favicon to any website with a single HTML tag:
<link rel="icon" href="https://emojifavicons.com/fire">The browser fetches the emoji as an SVG favicon. Works in Chrome, Firefox, Edge, and Safari (auto-serves PNG for Safari).
https://emojifavicons.com/rockethttps://emojifavicons.com/hothttps://emojifavicons.com/%F0%9F%94%A5Covers all 3,773 emojis in Unicode, searchable by 11,550 keywords.
Every EmojiFavicons endpoint accepts optional URL parameters for customization. Parameters control the size (16-512px), background color (any hex value), shape (16 options including circle, hexagon, shield, and star), animation (27 CSS animations), branded theme (18 presets for GitHub, Vercel, Tailwind, etc.), notification badge overlay, and output format. All parameters can be combined freely.
| Parameter | Type | Default | Description |
|---|---|---|---|
size | number | 48 | SVG size in pixels (16-512) |
bg | hex | none | Background color, e.g. ff6b6b |
darkbg | hex | none | Dark mode background color |
shape | string | square | 16 shapes: square, circle, rounded, hexagon, diamond, shield, star, heart, triangle, pentagon, octagon, drop, egg, cross, cloud, badge |
animate | string | none | 27 animations: pulse, bounce, spin, shake, float, flip, tada, swing, wobble, heartbeat, jello, rubberband, flash, pop, squeeze, nod, glitch, breathe, rotate360, wave, zoom, blink, slide-in, rainbow, typing, bounce-in, attention |
align | string | center | 9 positions: center, top-left, top, top-right, left, right, bottom-left, bottom, bottom-right |
badge | string | none | Notification badge: number (1-99) or dot |
theme | string | none | 18 branded themes: github-dark, github-light, vercel-dark, stripe-blue, tailwind, react, vue, svelte, nextjs, nuxt, laravel, cloudflare, supabase, firebase, aws, dracula, nord, catppuccin |
darkmode | string | none | Emoji to show in dark mode (auto-detected via prefers-color-scheme) |
daytime | string | none | Emoji to show during daytime (6am-6pm based on user timezone) |
random | string | none | Comma-separated emojis to randomly rotate between |
svg | flag | - | Force SVG format |
png | flag | - | Force PNG format (Twemoji) |
og | flag | - | Return 1200x630 OG image |
Example:
https://emojifavicons.com/fire?size=128&bg=1a1a2e&shape=hexagon&animate=tada/:emojiThe favicon endpoint is the core of EmojiFavicons. It accepts an emoji name, keyword, or Unicode character and returns an SVG image optimized for use as a browser favicon. The response is typically under 200 bytes, making it one of the lightest favicon solutions available. Safari users automatically receive a PNG (Twemoji) fallback since Safari has limited SVG favicon support.
# By name
https://emojifavicons.com/fire
https://emojifavicons.com/red-heart
https://emojifavicons.com/rocket
# Country flags
https://emojifavicons.com/US
https://emojifavicons.com/TR
# With customization
https://emojifavicons.com/star?size=64&bg=ffd700&shape=circleResponse: image/svg+xml (or image/png for Safari).
Cache: CDN 7 days, browser 24 hours.
Try it/:emoji1+:emoji2+...+:emojiNThe combo endpoint renders 2 to 10 emojis side by side in a single SVG favicon. Each emoji is sized equally within the viewport. Combo favicons are useful for representing tech stacks (e.g., fire+rocket for a fast project), multi-concept brands, or compound ideas. Separate emoji names with a plus sign in the URL. All standard customization parameters (shape, size, background, animation) work with combos.
# Two emojis
https://emojifavicons.com/fire+rocket
# Three emojis
https://emojifavicons.com/heart+sparkles+star
# Five emojis
https://emojifavicons.com/fire+rocket+star+heart+sparkles
# Up to 10 emojis max
https://emojifavicons.com/coffee+laptop+gear+rocket+star+fire+bulb+chart+check+partyAll URL parameters (shape, animation, background) work with combos:
https://emojifavicons.com/fire+rocket+star?bg=1a1a2e&shape=rounded&animate=pulse/:emoji?badge=NThe notification badge endpoint overlays a red count indicator (1-99) or dot on any emoji favicon. This is the same visual pattern used by iOS and Android for unread notifications. Notification badges are particularly useful for chat applications, email inboxes, project dashboards, and any web app that needs to signal unread activity in the browser tab. The badge is rendered as part of the SVG, so it works everywhere without JavaScript.
| Parameter | Type | Default | Description |
|---|---|---|---|
badge | string | - | Badge content: number (1-99) or dot |
# Numeric badge
https://emojifavicons.com/bell?badge=3
# Dot indicator
https://emojifavicons.com/mail?badge=dot
# Works with all customization
https://emojifavicons.com/chat?badge=12&shape=circle&bg=1a1a2e/pixel/:emojiThe pixel art endpoint renders emojis as retro 8-bit pixel art favicons. EmojiFavicons includes 168 hand-crafted pixel art icons in 16 named color palettes (sunset, ocean, neon, cyber, fire, nature, mono, candy, gold, synth, retro, pastel, matrix, vapor, earth, arctic). Each palette maps to a curated set of 4-8 colors. Pixel art favicons support grid sizes of 8, 12, or 16, adjustable gap and rounding, mirror symmetry, and 4 pixel-specific animations. Every emoji generates a unique, deterministic pattern.
| Parameter | Type | Default | Description |
|---|---|---|---|
:emoji | string | - | Emoji name or slug |
palette | string | retro | Color palette: sunset, ocean, neon, cyber, fire, nature, mono, candy, gold, synth, retro, pastel, matrix, vapor, earth, arctic |
grid | number | 8 | Grid size: 8, 12, or 16 |
gap | number | 1 | Pixel gap: 0-3 |
rounded | boolean | true | Round pixel corners |
mirror | boolean | true | Horizontal mirror symmetry |
animate | string | none | pixel-cycle, pixel-wave, pixel-rain, pixel-glitch |
bg | hex | none | Background color |
size | number | 48 | Output size in pixels |
# Basic pixel art
https://emojifavicons.com/pixel/fire
# Neon palette, 16x16 grid
https://emojifavicons.com/pixel/rocket?palette=neon&grid=16
# Matrix theme with glitch animation
https://emojifavicons.com/pixel/alien?palette=matrix&animate=pixel-glitch
# Vaporwave with no gaps
https://emojifavicons.com/pixel/star?palette=vapor&gap=0&rounded=false/text/:charsThe text favicon endpoint generates favicons from 1-3 text characters instead of emojis. This is useful for displaying initials (AB, JD), version numbers (v2, 3.1), status labels (OK, NEW), or any short text. The text is rendered as white characters on a customizable background color and shape. Unlike emoji favicons, text favicons let you use any letters or numbers.
| Parameter | Type | Default | Description |
|---|---|---|---|
:chars | string | - | 1-3 characters (letters, numbers) |
bg | hex | none | Background color |
color | hex | fff | Text color |
shape | string | rounded | Background shape |
# Initials
https://emojifavicons.com/text/AB
# Version number
https://emojifavicons.com/text/v2
# With styling
https://emojifavicons.com/text/OK?bg=22c55e&shape=circle/stack/:bg+:fgLayer one emoji on top of another. The first emoji is the background (larger), the second is the foreground (smaller, offset).
# Globe with fire overlay
https://emojifavicons.com/stack/globe+fire
# Heart with star
https://emojifavicons.com/stack/heart+star
# With customization
https://emojifavicons.com/stack/circle+check?size=64&shape=rounded/:emoji?theme=:nameApply one of 18 developer brand presets. Each theme sets background color, shape, and styling to match the brand.
| Parameter | Type | Default | Description |
|---|---|---|---|
theme | string | none | Brand preset name |
Available themes: github-dark, github-light, vercel-dark, stripe-blue, tailwind, react, vue, svelte, nextjs, nuxt, laravel, cloudflare, supabase, firebase, aws, dracula, nord, catppuccin
https://emojifavicons.com/rocket?theme=github-dark
https://emojifavicons.com/fire?theme=vercel-dark
https://emojifavicons.com/star?theme=tailwind
https://emojifavicons.com/heart?theme=dracula/:emoji?darkmode=:emoji2Automatically switch favicons based on user conditions: dark mode, time of day, or random selection.
| Parameter | Type | Default | Description |
|---|---|---|---|
darkmode | string | - | Emoji to show in dark mode (detected via prefers-color-scheme) |
daytime | string | - | Emoji to show during daytime (6am-6pm user timezone) |
random | string | - | Comma-separated emojis to randomly rotate between |
# Dark mode: sun by default, moon in dark mode
https://emojifavicons.com/sun?darkmode=moon
# Time-based: moon at night, sun during day
https://emojifavicons.com/moon?daytime=sun
# Random rotation on each page load
https://emojifavicons.com/fire?random=fire,rocket,star,heart/badge/:emojiThe badge endpoint generates shields.io-compatible SVG badges with an emoji icon. Badges are commonly used in GitHub READMEs, documentation sites, and status pages to display build status, deployment state, or version numbers. Each badge has a left label, a right status value, and a configurable color. The output is a scalable SVG that renders crisply at any size.
| Parameter | Type | Default | Description |
|---|---|---|---|
:emoji | string | - | Emoji name or keyword |
label | string | emoji name | Left side text |
status | string | emoji name | Right side text |
color | string | blue | green, red, yellow, blue, or hex |
labelColor | string | #555 | Left side background hex |
style | string | rounded | rounded or flat |


Cache: 5 minutes.
Try it/avatar/:identifierGravatar-style emoji avatars. Hash any string to a deterministic emoji + color. Same input always produces the same avatar.
| Parameter | Type | Default | Description |
|---|---|---|---|
:identifier | string | - | Email, username, or any string |
size | number | 128 | Size in pixels |
shape | string | square | square, circle, or rounded |
<img src="https://emojifavicons.com/avatar/user@example.com?shape=circle&size=64" />
<img src="https://emojifavicons.com/avatar/deploy-bot?shape=rounded" />
<img src="https://emojifavicons.com/avatar/jane.doe?size=32&shape=circle" />Cache: CDN 30 days, browser 7 days (deterministic, never changes).
Try it/status/:statePredefined status icons for status pages and dashboards.
| Parameter | Type | Default | Description |
|---|---|---|---|
:state | string | - | up, down, degraded, maintenance |
emoji | string | default | Override the default emoji |
size | number | 32 | Icon size in pixels |
/status/up Green circle/status/down Red circle/status/degraded Yellow circle/status/maintenance Wrench<img src="https://emojifavicons.com/status/up" /> All systems operational
https://emojifavicons.com/status/up?emoji=rocketCache: 1 minute.
Try it/:emoji?og=true1200x630 SVG images for social media sharing (Twitter, Facebook, LinkedIn).
<meta property="og:image" content="https://emojifavicons.com/fire?og=true" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />/sig/:emojiPNG emoji for email signatures. Email clients can't render SVG, so this forces PNG via Twemoji.
<img src="https://emojifavicons.com/sig/fire" width="20" height="20" style="vertical-align:middle" />Cache: 24 hours.
Try it/embed/:emojiMinimal HTML page with centered emoji. For Notion embeds or iframes.
<iframe src="https://emojifavicons.com/embed/fire" width="200" height="200" frameborder="0"></iframe>/oembed?url=...oEmbed discovery for rich embed previews:
https://emojifavicons.com/oembed?url=https://emojifavicons.com/embed/fire{
"version": "1.0",
"type": "rich",
"provider_name": "Emoji Favicon",
"title": "Fire",
"width": 200,
"height": 200
}/badge/powered-by"Powered by EmojiFavicons" pill badge SVG. Use for attribution in your project.
<img src="https://emojifavicons.com/badge/powered-by" alt="Powered by EmojiFavicons" />/apple-touch-icon/:emojiGenerate a 180x180 PNG icon for iOS home screen. Add to your HTML head for iOS bookmark icons.
<link rel="apple-touch-icon" href="https://emojifavicons.com/apple-touch-icon/rocket">/manifest/:emojiAuto-generate a manifest.json with all required icon sizes (192x192, 512x512). Link it in your HTML for instant PWA support.
<link rel="manifest" href="https://emojifavicons.com/manifest/rocket">{
"name": "Rocket",
"icons": [
{ "src": "https://emojifavicons.com/rocket?size=192", "sizes": "192x192", "type": "image/svg+xml" },
{ "src": "https://emojifavicons.com/rocket?size=512", "sizes": "512x512", "type": "image/svg+xml" }
]
}/download/:emojiDownload a ZIP package containing all standard favicon sizes: 16x16, 32x32, 48x48, 64x64, 128x128, 192x192, and 512x512.
https://emojifavicons.com/download/rocketResponse: application/zip with Content-Disposition: attachment.
/sprite?emojis=:listGenerate a multi-emoji grid SVG sprite sheet. Useful for icon sets and batch rendering.
| Parameter | Type | Default | Description |
|---|---|---|---|
emojis | string | - | Comma-separated emoji names |
size | number | 48 | Size of each emoji cell |
cols | number | auto | Number of columns in the grid |
https://emojifavicons.com/sprite?emojis=fire,rocket,star,heart,sparkles/react/:emojiEmbeddable reaction widget with per-domain click counters. Each website gets its own independent count. Domain is automatically detected from the Referer header, or you can set it explicitly with the ?site= parameter.
<!-- Add to any page — domain is auto-detected from Referer -->
<iframe src="https://emojifavicons.com/react/thumbsup" width="80" height="100" frameborder="0"></iframe>
<iframe src="https://emojifavicons.com/react/heart" width="80" height="100" frameborder="0"></iframe>
<iframe src="https://emojifavicons.com/react/fire" width="80" height="100" frameborder="0"></iframe>If Referer is not available (e.g. sandboxed iframes), pass the domain explicitly:
<iframe src="https://emojifavicons.com/react/thumbsup?site=myblog.com" width="80" height="100" frameborder="0"></iframe>/react/:emoji/count?site=domainGet the current click count for an emoji on a specific domain.
curl https://emojifavicons.com/react/thumbsup/count?site=myblog.com
# {"emoji_slug":"thumbsup","domain":"myblog.com","count":42}/react/:emoji/click?site=domainIncrement the click count. Rate-limited to 1 click per IP, per emoji, per domain, per hour.
curl -X POST https://emojifavicons.com/react/thumbsup/click?site=myblog.com
# {"emoji":"👍","slug":"thumbsup","domain":"myblog.com","count":43}Referer header, or explicit via ?site=/preview/:urlGenerate an OG-image-style preview card with emoji for any URL. Returns an SVG card with the site title and favicon.
https://emojifavicons.com/preview/https://github.com/ab/:emojiA/:emojiBRandomly serve one of two emoji variants. Tracks which variant was served for analytics comparison.
# 50/50 split between fire and rocket
https://emojifavicons.com/ab/fire/rocketResponse headers include X-Variant: A or X-Variant: B for tracking.
/api/search?q=:querySearch emojis by name or keyword. Returns up to 20 results.
| Parameter | Type | Default | Description |
|---|---|---|---|
q | string | - | Search query (max 100 chars) |
https://emojifavicons.com/api/search?q=fire{
"query": "fire",
"results": [
{
"emoji": "\ud83d\udd25",
"name": "Fire",
"slug": "fire",
"score": 100,
"url": "https://emojifavicons.com/fire"
}
]
}Cache: 1 hour.
Try it/api/suggestGet emoji suggestions for text or a URL. Analyzes content and returns the best matches.
| Parameter | Type | Default | Description |
|---|---|---|---|
text | string | - | Text to analyze |
url | string | - | URL to fetch and analyze |
# From text
https://emojifavicons.com/api/suggest?text=cooking+blog+recipes
# From URL
https://emojifavicons.com/api/suggest?url=https://example.com{
"query": "cooking blog recipes",
"suggestions": [
{ "emoji": "\ud83c\udf73", "name": "Cooking", "slug": "cooking", "score": 6 },
{ "emoji": "\ud83c\udf72", "name": "Pot of Food", "slug": "pot-of-food", "score": 4 }
]
}/api/eotdDeterministic "emoji of the day". Changes daily, same for everyone worldwide.
https://emojifavicons.com/api/eotd{
"emoji": "\ud83d\ude80",
"name": "Rocket",
"slug": "rocket",
"category": "Travel & Places",
"date": "2026-04-03",
"svg_url": "https://emojifavicons.com/rocket",
"badge_url": "https://emojifavicons.com/badge/rocket?label=emoji+of+the+day&status=Rocket&color=blue"
}Algorithm: Knuth multiplicative hash. Cache: 1 hour.
Try it/api/statsPublic usage statistics: top emojis, country flags, referrers, countries.
https://emojifavicons.com/api/stats{
"topEmojis": [{ "emoji": "\ud83d\udd25", "name": "Fire", "count": 1234 }],
"countryEmojis": [...],
"totalServed": 45678,
"topReferrers": [{ "domain": "github.com", "count": 500 }],
"topCountries": [{ "country": "US", "count": 300 }]
}Cache: 1 minute.
Try it/api/trendingTop emojis ranked by recent usage. Includes sparkline SVG charts for each emoji's usage trend.
https://emojifavicons.com/api/trending{
"trending": [
{
"emoji": "\ud83d\udd25",
"name": "Fire",
"slug": "fire",
"count": 1234,
"sparkline": "https://emojifavicons.com/api/trending/fire.svg"
}
],
"period": "24h"
}Cache: 5 minutes.
Try it/api/webhooksSubscribe to emoji events: usage spikes, new trending emojis, milestone counts.
# Subscribe to events
curl -X POST https://emojifavicons.com/api/webhooks \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/hook", "events": ["trending", "milestone"]}'/api/webhooksList active webhook subscriptions.
/api/webhooks/:idRemove a webhook subscription.
{
"id": "wh_abc123",
"url": "https://example.com/hook",
"events": ["trending", "milestone"],
"created_at": "2026-04-04T12: 00: 00Z"
}Drop-in SDK for dynamic emoji favicons.
<script src="https://emojifavicons.com/sdk.js"></script>Usage:
// Simple
EmojiFavicon.set('fire');
// With options
EmojiFavicon.set('rocket', {
size: 64,
bg: '1a1a2e',
darkbg: '0a0a0a',
shape: 'circle',
animate: 'pulse'
});
// Combo
EmojiFavicon.combo('fire', 'rocket');
// Emoji of the Day
EmojiFavicon.eotd();
// Search
const results = await EmojiFavicon.search('happy');Methods:
| Parameter | Type | Default | Description |
|---|---|---|---|
set(emoji, opts?) | function | - | Set favicon to an emoji |
combo(e1, e2, opts?) | function | - | Two emojis side by side |
eotd() | function | - | Set to emoji of the day |
search(query) | async | - | Search emojis, returns array |
suggest(text) | async | - | Get emoji suggestions for text |
onBlur(emoji) | function | - | Change favicon when tab loses focus |
onFocus(emoji) | function | - | Change favicon when tab gains focus |
onVisibilityChange(visible, hidden) | function | - | Toggle favicon on visibility change |
cycle(emojis, interval?) | function | - | Cycle through emojis (default 2s interval) |
countdown(n, emoji?) | function | - | Count down from n, updating favicon text |
status(state) | function | - | Set favicon to a status icon (up/down/degraded) |
random(emojis) | function | - | Set a random emoji from the list |
matchMedia(light, dark) | function | - | Auto-switch emoji based on color scheme |
setBadge(n) | function | - | Add notification badge to current favicon |
clearBadge() | function | - | Remove notification badge |
destroy() | function | - | Remove favicon and clean up listeners |
Callable by ChatGPT, GPT Actions, MCP agents, Semantic Kernel, Copilot, and AI tools via standard manifests.
/llms.txt
The /skill.json manifest describes 9 callable functions with full JSON Schema parameters, return types, and usage examples. Compatible with any AI agent framework.
/feed.xmlAtom feed of trending emojis. Top 20 most-used as feed entries.
https://emojifavicons.com/feed.xmlCache: 1 hour.
Try itAdd gradient backgrounds to any emoji favicon. Use named presets or custom colors.
| Parameter | Type | Default | Description |
|---|---|---|---|
gradient | string | - | Preset name or two hex colors: ff6b6b,feca57 |
gradient-dir | number | 135 | Direction in degrees (0-360) |
gradient-type | string | linear | linear or radial |
Presets: sunset, ocean, forest, aurora, candy, midnight, neon, lavender, fire, ice, rainbow, twilight
<link rel="icon" href="https://emojifavicons.com/fire?gradient=sunset&shape=circle">Use any emoji as a CSS cursor. Returns a complete CSS rule with embedded data URI.
| Parameter | Type | Default | Description |
|---|---|---|---|
format | string | css | css (full rule) or url (data URI only) |
size | number | 32 | Cursor size in pixels (max 128) |
hotspot | string | center | center, top-left, or x,y coordinates |
/* Usage */
<link rel="stylesheet" href="https://emojifavicons.com/cursor/fire">Show days remaining (or elapsed) as a badge on any emoji. Great for launches and events.
| Parameter | Type | Default | Description |
|---|---|---|---|
emoji | string | party-popper | Emoji slug to display |
size | number | 48 | Output size in pixels |
SDK:
EmojiFavicon.countdown({ target: '2026-12-31', emoji: 'fire' });
EmojiFavicon.countup({ start: '2026-01-01', emoji: 'fire' });Analyze any website's favicon setup. Returns a score out of 100 with actionable recommendations.
Rate limit: 10 checks per IP per hour. SSRF protection: private IPs blocked, 5s timeout.
{
"url": "github.com",
"score": 75,
"checks": [...],
"recommendations": [...]
}Show progress (0-100%) as a circular ring or horizontal bar around an emoji.
| Parameter | Type | Default | Description |
|---|---|---|---|
emoji | string | rocket | Emoji slug to display |
style | string | ring | ring (circular) or bar (horizontal) |
color | hex | auto | Custom color. Auto: red(0-33), yellow(34-66), green(67-100) |
size | number | 48 | Output size |
EmojiFavicon.progress(75, { emoji: 'rocket', style: 'ring' });Get any emoji as a .ico file with multiple sizes for legacy browser support.
Returns a multi-size ICO containing 16x16, 32x32, and 48x48 PNG frames. Content-Type: image/x-icon.
<link rel="icon" href="https://emojifavicons.com/fire.ico" type="image/x-icon">Visually blend two emojis together using SVG clip paths. Unlike combo (side-by-side) or stack (overlay), mashup creates visual fusions.
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | split | split, blend, diagonal, or circle |
Modes: split = left/right halves, blend = both at 50% opacity, diagonal = diagonal split, circle = circular mask
Try itSmooth animated transitions between favicon states. Uses canvas for frame-by-frame rendering.
// Smooth fade transition
EmojiFavicon.transition('fire', 'rocket', { effect: 'fade', duration: 500 });
// Sequence with transitions
EmojiFavicon.sequence(['fire','rocket','star'], {
interval: 2000,
transition: 'fade'
});
// Stop running transition
EmojiFavicon.stopTransition();Effects: fade, slide-left, slide-right, flip
Track favicon usage by campaign. Add ?track=campaign-name to any emoji URL.
Campaign names must be alphanumeric with hyphens/underscores. Data is in-memory and flushed to Laravel on cron.
{
"campaign": "launch-2026",
"total": 142,
"emojis": [...],
"referrers": [...]
}Extract dominant colors from any emoji. Returns hex, RGB, HSL, CSS variables, and Tailwind classes.
{
"emoji": "fire",
"name": "Fire",
"colors": [
{ "hex": "#ff6b35", "rgb": [255,107,53], "hsl": "...", "tailwind": "bg-amber-400" }
]
}Get accessibility metadata for any emoji: ARIA labels, Unicode name, colorblind safety, and descriptions.
{
"emoji": "fire",
"aria_label": "Fire",
"unicode_name": "FIRE",
"colorblind_safe": true,
"description": "A fire object"
}See which emoji were added between Unicode versions. Great for tracking what's new.
Supported versions: 12.0, 13.0, 13.1, 14.0, 15.0, 15.1, 16.0
Try itGenerate QR codes with an emoji in the center. Supports URLs, WiFi, vCards, email, phone, SMS, calendar events, geo locations, and plain text. Pure TypeScript encoder with error correction level H (30%).
| Parameter | Type | Default | Description |
|---|---|---|---|
type | string | url | Data type: url, wifi, vcard, email, phone, sms, text, geo, event |
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | - | Target URL (required). Only http/https allowed |
| Parameter | Type | Default | Description |
|---|---|---|---|
ssid | string | - | Network name (required) |
pass | string | - | Network password |
enc | string | WPA | Encryption: WPA, WEP, nopass |
hidden | string | false | Hidden network: true/false |
| Parameter | Type | Default | Description |
|---|---|---|---|
name | string | - | Full name (required) |
phone | string | - | Phone number |
email | string | - | Email address |
org | string | - | Organization |
title | string | - | Job title |
website | string | - | Website URL |
addr | string | - | Street address |
| Parameter | Type | Default | Description |
|---|---|---|---|
to | string | - | Email address (type=email) |
subject | string | - | Email subject (type=email) |
body | string | - | Email/SMS body (type=email, type=sms) |
tel | string | - | Phone number (type=phone, type=sms) |
text | string | - | Plain text content (type=text) |
lat | string | - | Latitude (type=geo) |
lng | string | - | Longitude (type=geo) |
title | string | - | Event title (type=event) |
start | string | - | Event start: YYYYMMDDTHHMMSS (type=event) |
end | string | - | Event end: YYYYMMDDTHHMMSS (type=event) |
location | string | - | Event location (type=event) |
| Parameter | Type | Default | Description |
|---|---|---|---|
size | number | 256 | SVG size in pixels (128-512) |
fg | hex | 000000 | QR code foreground color |
qr-bg | hex | ffffff | QR code background color |
dot | string | square | Dot style: square, rounded, dots, diamond, star |
corner | string | square | Corner finder style: square, rounded, dot |
corner-color | hex | - | Separate color for corner finder patterns |
margin | number | 2 | Quiet zone margin in modules (0-4) |
grad-from | hex | - | Gradient start color |
grad-to | hex | - | Gradient end color |
grad-dir | string | diagonal | Gradient direction: vertical, horizontal, diagonal |
# URL QR code
/qr/fire?url=https://findutils.com
# WiFi QR code
/qr/wifi?type=wifi&ssid=MyNetwork&pass=secret123&enc=WPA
# vCard (contact card)
/qr/briefcase?type=vcard&name=John Doe&phone=+1234567890&email=john@example.com&org=Acme Inc
# Email with subject
/qr/envelope?type=email&to=hello@example.com&subject=Hello&body=Nice to meet you
# Phone number
/qr/phone?type=phone&tel=+1234567890
# SMS
/qr/speech-balloon?type=sms&tel=+1234567890&body=Hello!
# Calendar event
/qr/calendar?type=event&title=Team Meeting&start=20260415T100000&end=20260415T110000&location=Office
# Geo location
/qr/round-pushpin?type=geo&lat=40.7128&lng=-74.0060
# Plain text
/qr/memo?type=text&text=Hello World
# Styled WiFi QR with gradient
/qr/wifi?type=wifi&ssid=Home&pass=mypass&dot=rounded&corner=rounded&grad-from=6366f1&grad-to=ec4899Opt-in attribution parameter. Append ?ref=yourdomain.com to any emoji URL to register your domain as a verified user of the service.
<link rel="icon" href="https://emojifavicons.com/fire?ref=mysite.com">When the ref parameter is present, the service records your domain alongside the emoji usage. This enables:
The ref value must be a valid domain (e.g. example.com, docs.myapp.io). Invalid domains are silently ignored. The parameter is compatible with all other query parameters.
# Combine ref with other params
https://emojifavicons.com/rocket?ref=mysite.com&size=64&bg=1a1a2e&shape=circleA public directory of verified domains using the emoji favicon service. Browse who is using which emoji at /showcase.
The HTML page displays a grid of registered domains with their chosen emoji, domain name, and registration date.
Returns the showcase directory as JSON. Supports optional query parameters for filtering.
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | number | 50 | Number of entries to return (max 100) |
offset | number | 0 | Pagination offset |
{
"domains": [
{
"domain": "example.com",
"emoji": "fire",
"emoji_char": "\ud83d\udd25",
"registered_at": "2026-04-01T12: 00: 00Z"
}
],
"total": 42
}Validate that a domain exists and resolves via DNS-over-HTTPS. Used internally by the SmartCopyDialog registration flow, but available as a public endpoint.
| Parameter | Type | Default | Description |
|---|---|---|---|
domain | string | - | Domain to validate (required, e.g. example.com) |
Performs a DNS lookup using Cloudflare DNS-over-HTTPS (1.1.1.1). Returns whether the domain resolves and has valid DNS records.
{
"valid": true,
"domain": "example.com"
}Register your domain in the showcase directory. Called by the SmartCopyDialog after a user copies an emoji URL.
Request body (JSON):
{
"domain": "example.com",
"emoji": "fire"
}Rate limit: 5 requests per minute per IP.
The domain must pass DNS validation before registration is accepted. Duplicate registrations for the same domain update the emoji choice.
{
"ok": true,
"showcase_url": "/showcase"
}Browse all 168 hand-crafted pixel art icons (43 at 24x24 + 102 at 8x8 + 57 at 11x11) across 16 color palettes. Search, switch palettes live, and click any icon to see details.
The gallery page shows every curated pixel icon with gradient-mask rendering. Use the palette dropdown to preview all icons in any of the 16 palettes, or use "Auto" to color by emoji name.
Each curated icon is a hand-crafted binary matrix (24x24, 8x8, or 11x11). Emojis without a curated icon use a deterministic hash-generated pattern.
Try itAPI: Get the full list of curated icons and palettes:
{
"palettes": { "retro": [...], "neon": [...], ... },
"count": 16,
"curated_icons": ["heart", "star", "rocket", ...],
"curated_count": 168,
"grid_sizes": [8, 11, 12, 16, 24],
"animations": ["pixel-cycle", "pixel-wave", "pixel-rain", "pixel-glitch"]
}44 pre-configured emoji favicon recipes across 8 categories. Each preset bundles emoji + shape + background + animation into a copy-ready HTML snippet.
Categories: SaaS, Blog, Documentation, Portfolio, E-commerce, Gaming, Developer Tool, Startup
Try itAPI:
List all categories with preset counts.
Get all presets for a category with ready-to-paste HTML.
{
"id": "saas",
"name": "SaaS / Web App",
"presets": [
{
"name": "Tech Rocket",
"emoji": "rocket",
"url": "https://emojifavicons.com/rocket?shape=rounded-square&bg=1a1a2e&animate=float",
"html": "<link rel=\"icon\" href=\"https://emojifavicons.com/rocket?shape=rounded-square&bg=1a1a2e&animate=float\">"
}
]
}Generate a tileable SVG pattern with repeating emoji. Perfect for slide decks, placeholder backgrounds, and design mockups.
| Parameter | Type | Default | Description |
|---|---|---|---|
opacity | number | 15 | Emoji opacity: 3-80 |
spacing | number | 80 | Pattern spacing in px: 20-300 |
rotate | number | -30 | Pattern rotation in degrees: -90 to 90 |
font | number | 24 | Emoji font size: 8-96 |
size | number | 400 | SVG output size: 100-2000 |
bg | hex | transparent | Background color hex |
/* Use as CSS background */
background-image: url("https://emojifavicons.com/watermark/fire?opacity=10&spacing=60");
background-repeat: repeat;Preview how an emoji favicon would look on any website. Drag the bookmarklet to your bookmarks bar, visit any site, and click it.
The bookmarklet is a tiny JavaScript snippet that finds all <link rel="icon"> tags on the current page and replaces their href with an emojifavicons.com URL. The change is temporary and resets on reload.
You can customize the bookmarklet with query params:
https://emojifavicons.com/bookmarklet/rocket?shape=circle&bg=1a1a2eGet any emoji as a CSS custom property containing an SVG data URI. Use in background-image, list-style-image, or pseudo-elements.
Returns CSS text with a --emoji-{name} custom property and usage examples.
Returns JSON with the CSS variable, data URI, URL, and usage snippets.
All URL params (shape, bg, size, animate) carry through to the generated SVG.
/* Response from /css/fire */
:root {
--emoji-fire: url("data:image/svg+xml,...");
}
.icon-fire {
background: var(--emoji-fire) no-repeat center / contain;
}Define a multi-frame emoji animation as pure SVG. Cycles between 2-8 emoji using CSS keyframes. No JavaScript needed.
| Parameter | Type | Default | Description |
|---|---|---|---|
interval | number | 1000 | Frame duration in ms: 200-5000 |
size | number | 48 | SVG output size: 16-512 |
bg | hex | transparent | Background color hex |
Works in GitHub READMEs, static HTML, email, Notion, anywhere SVG is supported.
<link rel="icon" href="https://emojifavicons.com/sequence/fire+rocket+star?interval=800">/sequence/fire+rocket+star
Apply CSS filter effects to tint any emoji with a custom hex color or one of 10 named presets.
| Parameter | Type | Default | Description |
|---|---|---|---|
color / tint | hex or preset | grayscale | Target color hex (e.g., ff6b35) or preset name |
size | number | 48 | SVG output size: 16-512 |
bg | hex | transparent | Background color hex |
Named presets:
grayscale · sepia · invert · saturate · muted · warm · cool · neon · vintage · pastel
API: