無料ファビコン API

GET リクエスト 1 回で、URL からあらゆるサイトのファビコンを取得。API キー不要、登録不要。

クイックスタート

favicondl のファビコン API は、GET リクエスト 1 回であらゆるドメインや URL をそのファビコンに変換します。API キーもアカウントも SDK も不要です。<img> タグにそのまま書けます。

<img src="https://favicondl.com/api/extract?url=github.com" width="32" height="32" alt="GitHub のファビコン">

JSON をリクエストすれば、どのファイルが見つかり、どこから取得したかを確認できます。

curl "https://favicondl.com/api/extract?url=github.com&format=json"
{
  "ok": true,
  "domain": "github.com",
  "size": 128,
  "iconUrl": "https://github.githubassets.com/favicons/favicon.svg",
  "proxyUrl": "https://favicondl.com/api/proxy?url=https%3A%2F%2Fgithub.githubassets.com%2Ffavicons%2Ffavicon.svg",
  "source": "html",
  "rel": "icon",
  "format": "svg",
  "width": null,
  "height": null,
  "pageUrl": "https://github.com/",
  "candidates": [
    { "url": "https://github.githubassets.com/favicons/favicon.svg", "format": "svg", "vector": true, "source": "html", "rel": "icon", "proxyUrl": "…" },
    { "url": "https://github.githubassets.com/assets/app-icon-512-7f9c4ff2e960.png", "format": "png", "width": 512, "height": 512, "source": "manifest", "rel": "manifest", "proxyUrl": "…" },
    { "url": "https://github.com/favicon.ico", "format": "ico", "width": 32, "height": 32, "source": "direct", "rel": "favicon.ico", "proxyUrl": "…" }
  ]
}

iconUrl はサイト上の元ファイルです。proxyUrl は同じ画像を当社のプロキシ経由で Access-Control-Allow-Origin: * 付きで返すので、canvas に描画したりブラウザのコードから fetch したりできます。

format、width、height は、選ばれたファイルを当社で実測した値です(SVG の場合 width/height は null)。candidates には、同じサイトで検証済みのほかのアイコン(サイズや形式が異なるもの)が最大 8 個並ぶので、別のものを選べます。上の例は一部を省略しています。Google や DuckDuckGo にフォールバックした場合は空になります。

API がアイコンを選ぶ仕組み

  1. トップページを通常のブラウザと同じようにリクエストし、リダイレクト(www ↔ 素のドメインを含む)を追跡します。アイコン関連の <link> をすべて読み取ります:icon、shortcut icon、apple-touch-icon、apple-touch-icon-precomposed、mask-icon。相対リンクやプロトコル相対リンク(//cdn…)は、最終的なページ URL またはその <base> タグを基準に解決します(source: "html")。
  2. Web App Manifest:ページからリンクされた manifest を開いてアイコン一覧を読みます。192px や 512px のアイコンはここにあることが多いです(source: "manifest")。
  3. 定番のパス /favicon.ico と /apple-touch-icon.png も試します(source: "direct")。
  4. 候補はすべてダウンロードして確認します。中身が本当に画像(PNG、ICO、SVG、WebP、JPEG、GIF など)であることを確かめ、ファイル名を信じるのではなく実際のピクセルサイズを測ります。
  5. Google のファビコンサービス、次いで DuckDuckGo は、サイト上のアイコンがどれも使えなかったときだけ、リクエストした size で使用します(source: "google_s2" または "duckduckgo")。

検証済みの候補は、最も鮮明なファイルが選ばれるように順位付けされます。フルカラーの SVG が最優先で、次に最も大きい正方形の PNG/ICO/WebP です。Safari の単色 mask-icon や、maskable とだけ指定された manifest アイコンは、通常のファビコンとは見た目が異なるため順位を下げています。サイトで見つかったアイコンは元のサイズのまま返され、size パラメーターはフォールバックにのみ影響します。

google_s2 が返ってきた場合、そのサイトには当社から取得できるアイコンがないか、リクエストがブロックされています(ボット確認ページが返された場合など)。1 サイトだけなら、トップページのファビコンダウンローダーがブラウザから直接いくつかの取得元も試し、見つかったすべてのサイズを表示するので、そこから選べます。

ファビコン API 比較:favicondl・Google S2・DuckDuckGo・Icon Horse

4 つのサービスはいずれも無料で使い始められ、API キーも不要です。違いは返ってくる内容です。

favicondlGoogle S2DuckDuckGoIcon Horse
エンドポイント/api/extract?url=example.comgoogle.com/s2/favicons?domain=example.com&sz=64icons.duckduckgo.com/ip3/example.com.icoicon.horse/icon/example.com
API キー不要不要不要不要(無料プラン)
公開されている無料枠なし(フェアユース)非公開非公開無料プランで月 1,000 アイコン
サイズ指定size(16〜512、Google フォールバック用)szなし記載なし
返ってくるもの見つかればサイトの元ファイル(SVG、PNG、ICO など)PNG または JPEG(実測)ICO(実測)PNG(実測)
JSON メタデータあり(format=json:アイコン URL、取得元、形式、実測ピクセルサイズ、最大 8 個の代替アイコン)なしなしなし
github.com のテスト結果favicon.svg(ベクター)sz=16 で 16×16 PNG、sz=256 で 180×18016×16 と 32×32 を含む ICO256×256 PNG

結果は 2026 年 10 月 12 日に当社が実際にリクエストしたものです。Icon Horse の無料枠は料金ページによります。外部サービスは予告なく変わることがあるため、本番環境で利用する前に各サービスの規約を確認してください。

概要

Mzu favicondl は、コピーして使えるファビコン URL テンプレートとファビコン抽出 UI を提供しています。独自の抽出 API がサイトの公開している実際のアイコンを見つけ、画像プロキシによってブラウザのコードからもダウンロードできるようにします。

高速

高速プレビューのための最適化

無料

登録不要

安定

高可用性を設計

認証

本プロジェクトは無料のファビコンサービスURLテンプレートを使用しており、認証やAPIキーは不要です。

注意: APIキーは不要ですが、過度なリクエストを避け、合理的にご利用ください。

エンドポイント

GET FaviconDL Extract API

ドメインや URL から使えるファビコンを見つけてダウンロード

ベースURL:

https://favicondl.com/api/extract

完全な例:

https://favicondl.com/api/extract?url=example.com&size=128

パラメーター

パラメーター名 型 必須 デフォルト値 説明
url string はい - 対象のドメインまたは URL(例:example.com)
size number いいえ 128 フォールバック時のサイズ(16〜512ピクセル)。Google のファビコンサービスにフォールバックする場合のみ使用され、サイト自体で見つかったアイコンは元のサイズのまま返されます。
format string いいえ redirect メタデータが必要なら json を指定。省略するとダウンロード可能な画像へリダイレクトします

パラメーター詳細:

url

ドメインとサイトの完全な URL の両方に対応:

  • • example.com
  • • www.example.com
  • • https://example.com/docs
  • • sub.example.com
size

Google ファビコンサービス用のフォールバックサイズ(16〜512ピクセル):

  • • 16 - 16x16
  • • 32 - 32x32
  • • 128 - 128x128
  • • 512 - 512x512

レスポンス

成功レスポンス(JSON形式)

JSONレスポンス
{
  "ok": true,
  "domain": "example.com",
  "size": 128,
  "iconUrl": "https://example.com/favicon.svg",
  "proxyUrl": "https://favicondl.com/api/proxy?url=...",
  "source": "html",
  "rel": "icon",
  "format": "svg",
  "width": null,
  "height": null,
  "pageUrl": "https://example.com/",
  "candidates": [ ... ]
}

エラーレスポンス

エラーレスポンス
{
  "ok": false,
  "error": "Missing url"
}

注意: format=redirect使用時、APIはJSONレスポンスを返さず、ファビコンURLに直接リダイレクトします。

使用例

JavaScript (Fetch)

JavaScript
async function getFavicon(url, size = 128) {
  const endpoint = new URL('https://favicondl.com/api/extract');
  endpoint.searchParams.set('url', url);
  endpoint.searchParams.set('size', String(size));
  const response = await fetch(endpoint);
  if (!response.ok) throw new Error(`Favicon request failed: ${response.status}`);
  return await response.blob();
}

const icon = await getFavicon('example.com', 128);
const imageUrl = URL.createObjectURL(icon);
document.querySelector('#favicon-preview').src = imageUrl;

Python (Requests)

Python
import requests

def get_favicon(url: str, size: int = 128) -> bytes:
    response = requests.get(
        "https://favicondl.com/api/extract",
        params={"url": url, "size": size},
        timeout=15,
    )
    response.raise_for_status()
    return response.content

icon_bytes = get_favicon("example.com", 128)
with open("example-favicon", "wb") as output:
    output.write(icon_bytes)

PHP (cURL)

PHP
<?php
function getFavicon(string $url, int $size = 128): string {
    $endpoint = 'https://favicondl.com/api/extract?url=' . urlencode($url) . '&size=' . $size;
    $context = stream_context_create(['http' => ['follow_location' => 1, 'timeout' => 15]]);
    $icon = file_get_contents($endpoint, false, $context);
    if ($icon === false) {
        throw new RuntimeException('Favicon request failed');
    }
    return $icon;
}

file_put_contents('example-favicon', getFavicon('example.com', 128));
?>

HTML直接参照

HTML
<!-- Show a site icon next to a link -->
<img src="https://favicondl.com/api/extract?url=example.com" alt="example.com favicon" width="32" height="32">

<!-- Larger Google fallback size, if the site has no icon of its own -->
<img src="https://favicondl.com/api/extract?url=example.com&size=128" alt="example.com favicon" width="128" height="128">

エラー

エラー時は HTTP ステータスコードと、ok が false でエラーメッセージを含む短い JSON を返します。

HTTPステータスコード エラーメッセージ 説明 解決策
400 Missing url url または domain パラメーターが送信されていません リクエストに ?url=example.com を追加してください
400 Invalid format format が json でも redirect でもありません format=json を指定するか、省略してリダイレクトを受け取ってください
400 Invalid domain 値をホスト名として解析できません example.com のようなドメインか、完全な https:// URL を送信してください
405 Method not allowed GET リクエストのみ対応しています GET リクエストを送信してください
502 Favicon extraction failed 抽出処理がアイコンを返せませんでした しばらくしてから再試行してください
415 Target is not an image /api/proxy のみ:その URL は実際の画像データを返しませんでした /api/extract が返した iconUrl または candidates[].url を使ってください

OpenAPI spec and MCP server

  • OpenAPI 3 spec: https://favicondl.com/openapi.yaml — import it into Postman, Insomnia or a client generator.
  • MCP server: favicondl MCP (registry name io.github.sweesama/favicondl) exposes an extract_favicon tool so Claude, Cursor and other MCP clients can fetch icons.

レート制限

無料

登録不要、すべての機能を完全無料で利用可能

フェアユース

  • • API キーはなく、公開された固定の上限もありません
  • • サイトで見つかったアイコンはエッジで 24 時間、Google/DuckDuckGo へのフォールバックは 10 分間キャッシュされます
  • • アイコンはご自身の側でキャッシュし、大量のクロールは避けてください

商用利用

有料プランや SLA はありません。大量利用や業務上重要な用途では、必要なアイコンをご自身のストレージに保存してください。

コピーしました!