{
  "schema_version": "1.0",
  "metadata": {
    "name": "emoji_favicon",
    "display_name": "Emoji Favicon",
    "description": "Emoji infrastructure service. Get any emoji as a favicon, badge, avatar, banner, status icon, or OG image. Search 3,773 emojis by 11,550 keywords. Suggest emojis for any topic or URL.",
    "author": "FindUtils",
    "version": "6.0.0",
    "website": "https://emoji.findutils.com",
    "documentation": "https://emoji.findutils.com/docs",
    "logo": "https://emoji.findutils.com/fire?size=512&bg=0a0a0a&shape=rounded",
    "contact": "contact@findutils.com",
    "license": "Free, no API key required",
    "tags": [
      "emoji",
      "favicon",
      "badge",
      "avatar",
      "icon",
      "svg",
      "developer-tools"
    ],
    "category": "developer-tools"
  },
  "auth": {
    "type": "none"
  },
  "base_url": "https://emoji.findutils.com",
  "functions": [
    {
      "name": "search_emojis",
      "description": "Search emojis by name or keyword. Returns up to 20 results with name, slug, category, and direct URL.",
      "endpoint": "/api/search",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query (name or keyword, e.g. \"fire\", \"happy\", \"food\")",
            "maxLength": 100
          }
        },
        "required": [
          "q"
        ]
      },
      "returns": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "emoji": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "examples": [
        {
          "input": {
            "q": "fire"
          },
          "description": "Find fire-related emojis"
        },
        {
          "input": {
            "q": "happy"
          },
          "description": "Find happy/smiling emojis"
        }
      ]
    },
    {
      "name": "suggest_emoji",
      "description": "Suggest the best emojis for a topic or URL. Analyzes text content and returns ranked emoji suggestions.",
      "endpoint": "/api/suggest",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text or topic to analyze (e.g. \"cooking blog recipes\")"
          },
          "url": {
            "type": "string",
            "description": "URL to fetch and analyze for emoji suggestions"
          }
        }
      },
      "returns": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "suggestions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "emoji": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                },
                "score": {
                  "type": "integer"
                }
              }
            }
          }
        }
      },
      "examples": [
        {
          "input": {
            "text": "cooking blog recipes"
          },
          "description": "Get emojis for a cooking website"
        },
        {
          "input": {
            "url": "https://github.com"
          },
          "description": "Suggest emojis based on a URL"
        }
      ]
    },
    {
      "name": "get_emoji_of_the_day",
      "description": "Get today's featured emoji. Deterministic: same emoji worldwide for the same day.",
      "endpoint": "/api/eotd",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {}
      },
      "returns": {
        "type": "object",
        "properties": {
          "emoji": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "svg_url": {
            "type": "string"
          },
          "badge_url": {
            "type": "string"
          }
        }
      }
    },
    {
      "name": "get_favicon_url",
      "description": "Generate a favicon URL for any emoji with optional customization (size, background, shape, animation).",
      "endpoint": "/{emoji}",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "emoji": {
            "type": "string",
            "description": "Emoji name, keyword, or character (e.g. \"fire\", \"rocket\", \"US\")"
          },
          "size": {
            "type": "integer",
            "description": "Size in pixels (16-512)",
            "default": 48
          },
          "bg": {
            "type": "string",
            "description": "Background color hex without # (e.g. \"1a1a2e\")"
          },
          "darkbg": {
            "type": "string",
            "description": "Dark mode background color hex"
          },
          "shape": {
            "type": "string",
            "enum": [
              "square",
              "circle",
              "rounded",
              "hexagon",
              "diamond",
              "shield",
              "star",
              "heart",
              "triangle",
              "pentagon",
              "octagon",
              "drop",
              "egg",
              "cross",
              "cloud",
              "badge"
            ],
            "default": "square",
            "description": "16 background shapes"
          },
          "animate": {
            "type": "string",
            "enum": [
              "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"
            ],
            "description": "27 animation types"
          }
        },
        "required": [
          "emoji"
        ]
      },
      "returns": {
        "type": "string",
        "description": "SVG or PNG image"
      },
      "examples": [
        {
          "input": {
            "emoji": "fire"
          },
          "description": "Simple fire emoji favicon"
        },
        {
          "input": {
            "emoji": "rocket",
            "size": 64,
            "bg": "1a1a2e",
            "shape": "circle",
            "animate": "pulse"
          },
          "description": "Animated rocket with dark background"
        }
      ]
    },
    {
      "name": "get_badge_url",
      "description": "Generate a shields.io-style SVG badge with an emoji. Use in GitHub READMEs, docs, or status pages.",
      "endpoint": "/badge/{emoji}",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "emoji": {
            "type": "string",
            "description": "Emoji name or keyword"
          },
          "label": {
            "type": "string",
            "description": "Left side text (e.g. \"build\")"
          },
          "status": {
            "type": "string",
            "description": "Right side text (e.g. \"passing\")"
          },
          "color": {
            "type": "string",
            "description": "Right side color: green, red, yellow, blue, or hex",
            "default": "blue"
          },
          "labelColor": {
            "type": "string",
            "description": "Left side background hex"
          },
          "style": {
            "type": "string",
            "enum": [
              "rounded",
              "flat"
            ],
            "default": "rounded"
          }
        },
        "required": [
          "emoji"
        ]
      },
      "returns": {
        "type": "string",
        "description": "SVG badge image"
      },
      "examples": [
        {
          "input": {
            "emoji": "rocket",
            "label": "build",
            "status": "passing",
            "color": "green"
          },
          "description": "Build status badge"
        },
        {
          "input": {
            "emoji": "package",
            "label": "version",
            "status": "2.1.0",
            "color": "blue"
          },
          "description": "Version badge"
        }
      ]
    },
    {
      "name": "get_avatar_url",
      "description": "Generate a deterministic emoji avatar from any identifier (email, username). Same input always produces the same avatar.",
      "endpoint": "/avatar/{identifier}",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Email, username, or any string"
          },
          "size": {
            "type": "integer",
            "description": "Size in pixels",
            "default": 128
          },
          "shape": {
            "type": "string",
            "enum": [
              "square",
              "circle",
              "rounded"
            ],
            "default": "square"
          }
        },
        "required": [
          "identifier"
        ]
      },
      "returns": {
        "type": "string",
        "description": "SVG avatar image"
      },
      "examples": [
        {
          "input": {
            "identifier": "user@example.com",
            "shape": "circle"
          },
          "description": "Profile picture for an email"
        }
      ]
    },
    {
      "name": "get_readme_banner_url",
      "description": "Generate an 800x200 SVG banner for GitHub READMEs with emoji and project title.",
      "endpoint": "/readme/{emoji}",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "emoji": {
            "type": "string",
            "description": "Emoji name or keyword"
          },
          "title": {
            "type": "string",
            "description": "Project title"
          },
          "subtitle": {
            "type": "string",
            "description": "Subtitle text"
          },
          "theme": {
            "type": "string",
            "enum": [
              "dark",
              "light"
            ],
            "default": "dark"
          }
        },
        "required": [
          "emoji"
        ]
      },
      "returns": {
        "type": "string",
        "description": "SVG banner image"
      }
    },
    {
      "name": "get_status_icon_url",
      "description": "Get a status icon for monitoring dashboards. Predefined states: up (green), down (red), degraded (yellow), maintenance (wrench).",
      "endpoint": "/status/{state}",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "enum": [
              "up",
              "down",
              "degraded",
              "maintenance"
            ],
            "description": "Status state"
          },
          "emoji": {
            "type": "string",
            "description": "Override default emoji"
          },
          "size": {
            "type": "integer",
            "default": 32
          }
        },
        "required": [
          "state"
        ]
      },
      "returns": {
        "type": "string",
        "description": "SVG status icon"
      }
    },
    {
      "name": "get_stats",
      "description": "Get public usage statistics: top emojis, country flags, referrer domains, country distribution.",
      "endpoint": "/api/stats",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {}
      },
      "returns": {
        "type": "object",
        "properties": {
          "topEmojis": {
            "type": "array"
          },
          "countryEmojis": {
            "type": "array"
          },
          "totalServed": {
            "type": "integer"
          },
          "topReferrers": {
            "type": "array"
          },
          "topCountries": {
            "type": "array"
          }
        }
      }
    },
    {
      "name": "get_text_favicon",
      "description": "Generate a favicon from 1-3 text characters (initials, version numbers, labels).",
      "endpoint": "/text/{chars}",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "chars": {
            "type": "string",
            "description": "1-3 characters",
            "maxLength": 3
          },
          "bg": {
            "type": "string",
            "description": "Background color hex"
          },
          "color": {
            "type": "string",
            "description": "Text color hex"
          }
        },
        "required": [
          "chars"
        ]
      },
      "returns": {
        "type": "string",
        "description": "SVG text favicon"
      }
    },
    {
      "name": "get_stacked_emoji",
      "description": "Layer one emoji on top of another (background + foreground).",
      "endpoint": "/stack/{bg}+{fg}",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "bg": {
            "type": "string",
            "description": "Background emoji (larger)"
          },
          "fg": {
            "type": "string",
            "description": "Foreground emoji (smaller, overlaid)"
          }
        },
        "required": [
          "bg",
          "fg"
        ]
      },
      "returns": {
        "type": "string",
        "description": "SVG stacked emoji"
      }
    },
    {
      "name": "get_trending",
      "description": "Get top trending emojis with usage counts and sparkline SVG charts.",
      "endpoint": "/api/trending",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {}
      },
      "returns": {
        "type": "object",
        "properties": {
          "trending": {
            "type": "array"
          },
          "period": {
            "type": "string"
          }
        }
      }
    },
    {
      "name": "download_favicon",
      "description": "Download a ZIP package with all standard favicon sizes for an emoji.",
      "endpoint": "/download/{emoji}",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "emoji": {
            "type": "string",
            "description": "Emoji name or keyword"
          }
        },
        "required": [
          "emoji"
        ]
      },
      "returns": {
        "type": "string",
        "description": "ZIP file with favicon images"
      }
    },
    {
      "name": "get_ab_test",
      "description": "Serve one of two random emoji variants for A/B testing.",
      "endpoint": "/ab/{emojiA}/{emojiB}",
      "method": "GET",
      "parameters": {
        "type": "object",
        "properties": {
          "emojiA": {
            "type": "string",
            "description": "First emoji variant"
          },
          "emojiB": {
            "type": "string",
            "description": "Second emoji variant"
          }
        },
        "required": [
          "emojiA",
          "emojiB"
        ]
      },
      "returns": {
        "type": "string",
        "description": "SVG of randomly selected variant"
      }
    }
  ]
}