favicon-so

favicon.so project API reference — covers the favicon fetch API and image-to-favicon-package convert API. Use when working on API routes, building integrations, debugging favicon fetch/convert behavior, or adding new endpoints to this project.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "favicon-so" with this command: npx skills add favicon.so/favicon-so

favicon.so API

API 1: Favicon Fetch

Fetch any website's favicon by domain.

Endpoints

MethodPathDescription
GET/api/favicon?url={domain}Fetch favicon with full options
GET/{domain}Short URL, returns favicon image directly

Parameters

ParamTypeRequiredDescription
urlstringyesDomain or URL (e.g. github.com)
rawstringnoSet to "true" for JSON metadata instead of image

Response Modes

Image mode (default): Returns binary image data with headers:

  • Content-Type: actual image MIME type
  • Cache-Control: public, max-age=604800
  • Access-Control-Allow-Origin: *

JSON mode (raw=true):

{
  "url": "https://github.githubassets.com/favicons/favicon.svg",
  "format": "image/svg+xml",
  "isDefault": false
}

Implementation

  • Source: app/api/favicon/route.ts and app/[locale]/[domain]/route.ts
  • Core logic: lib/fetchFavicon.ts — tries HTML parsing, /favicon.ico, Google, DuckDuckGo fallbacks
  • Domain validation: lib/utils.tsnormalizeDomain(), isValidDomain()
  • Falls back to a default SVG icon when all sources fail

API 2: Image Convert

Convert any image into a complete favicon package with all sizes.

Endpoint

MethodPathDescription
POST/api/convertUpload image, get favicon package

Request

Content-Type: multipart/form-data

FieldTypeRequiredDescription
imageFileyesImage file (PNG, JPG, WebP, GIF, BMP, TIFF)

Also accepts raw image bytes with Content-Type: image/* or application/octet-stream.

Query Parameters

ParamTypeDefaultDescription
formatstringSet to "json" for base64 JSON output instead of ZIP

Response

ZIP mode (default): Returns application/zip containing 10 files:

  • favicon.ico (multi-resolution: 16, 32, 48, 64, 128)
  • favicon-16x16.png, favicon-32x32.png, favicon-48x48.png, favicon-64x64.png, favicon-128x128.png
  • apple-touch-icon.png (180×180)
  • android-chrome-192x192.png, android-chrome-512x512.png
  • site.webmanifest

JSON mode (format=json):

{
  "files": {
    "favicon-16x16.png": { "size": 1234, "base64": "iVBOR..." },
    "favicon.ico": { "size": 5678, "base64": "AAAB..." },
    ...
  }
}

Implementation

  • Source: app/api/convert/route.ts
  • Image processing: jimp (pure JS, Cloudflare Workers compatible)
  • ICO generation: custom multi-resolution ICO builder
  • ZIP packaging: jszip
  • CORS enabled, no auth required

Architecture Notes

  • All API routes are in app/api/ and skip the i18n middleware
  • The [locale]/[domain]/route.ts catch-all serves as a short URL for favicon fetch
  • Reserved paths (search, convert, api, generator, skill, mcp) are excluded from the domain catch-all
  • Client-side convert page (app/[locale]/convert/page.tsx) uses WASM (Photon + resvg) for browser-native processing
  • Server-side convert API uses jimp for Node.js/Workers compatibility

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Ai Competitor Analyzer

提供AI驱动的竞争对手分析,支持批量自动处理,提升企业和专业团队分析效率与专业度。

Registry SourceRecently Updated
General

Ai Data Visualization

提供自动化AI分析与多格式批量处理,显著提升数据可视化效率,节省成本,适用企业和个人用户。

Registry SourceRecently Updated
General

Ai Cost Optimizer

提供基于预算和任务需求的AI模型成本优化方案,计算节省并指导OpenClaw配置与模型切换策略。

Registry SourceRecently Updated