Developer Documentation

Integrate EmojiFYI data into your applications. Access 3,953 Unicode emojis with encoding info, keywords, categories, collections, and platform images through our JSON APIs, data feeds, and machine-readable endpoints.

Gratuit Aucune authentification requise JSON OpenAPI 3.0 CORS Enabled

API Endpoints

All API endpoints return JSON with Content-Type: application/json. No authentication is required. Base URL:

https://emojifyi.com/api/
Endpoint Description Cache
GET /api/emoji/{slug}/ Full emoji detail with encoding, keywords, shortcodes none
GET /api/emoji/{slug}/similar/ Related emojis by subcategory and shared keywords none
GET /api/search/?q= Search emojis by name, keywords, character, or codepoint none
GET /api/autocomplete/?q= Fast autocomplete suggestions (max 8 results) none
GET /api/v2/search/?q= Unified search across emojis, stories, glossary, and tools none
GET /api/category/{slug}/ List all emojis in a category none
GET /api/categories/ List all 10 emoji categories with counts 1h
GET /api/collections/ List all curated emoji collections 1h
GET /api/collection/{slug}/ Collection detail with all emojis none
GET /api/types/ Emoji types (basic, ZWJ, flag, keycap, skin tone) with counts 1h
GET /api/versions/ All emoji versions (Emoji 0.6 to 16.0) with release dates 1h
GET /api/years/ Emoji timeline by year with highlights 1h
GET /api/random/ Random emoji — great for bots, widgets, or emoji of the day none
GET /api/emoji-image/{slug}/ List available image formats and sizes for an emoji none
GET /api/emoji-image/{slug}/{platform}.{fmt} Download emoji image (PNG, WebP, SVG at 32-256px) 1y
GET /api/openapi.json OpenAPI 3.0 specification (CORS enabled) none

Emoji Detail

GET /api/emoji/{slug}/
curl https://emojifyi.com/api/emoji/grinning-face/
Show response
{
  "character": "\ud83d\ude00",
  "cldr_name": "grinning face",
  "slug": "grinning-face",
  "codepoint": "U+1F600",
  "category": "smileys-emotion",
  "subcategory": "face-smiling",
  "emoji_version": "1.0",
  "unicode_version": "6.1",
  "emoji_type": "basic",
  "keywords": ["face", "grin", "grinning face"],
  "shortcodes": [":grinning:"],
  "encoding": {
    "utf8": "F0 9F 98 80",
    "utf16": "D83D DE00",
    "codepoints": ["U+1F600"]
  },
  "has_skin_tones": false,
  "is_zwj": false,
  "url": "https://emojifyi.com/emoji/grinning-face/"
}

Search API

GET /api/search/?q={query}

Search by name, keywords, character, or codepoint (e.g. U+1F600). Returns up to 50 results.

curl "https://emojifyi.com/api/search/?q=heart"
Show response
{
  "query": "heart",
  "results": [
    {
      "character": "\u2764\ufe0f",
      "cldr_name": "red heart",
      "slug": "red-heart",
      "codepoint": "U+2764 U+FE0F",
      "category": "smileys-emotion"
    },
    {
      "character": "\ud83e\ude77",
      "cldr_name": "pink heart",
      "slug": "pink-heart",
      "codepoint": "U+1FA77",
      "category": "smileys-emotion"
    }
  ]
}

Unified Search (v2)

GET /api/v2/search/?q={query}&limit={n}

Search across emojis, stories, glossary terms, and tools in a single request. Min 2 characters.

curl "https://emojifyi.com/api/v2/search/?q=unicode&limit=20"
Show response
{
  "emojis": [
    {"character": "\u00a9\ufe0f", "cldr_name": "copyright", "slug": "copyright", "codepoint": "U+00A9 U+FE0F", "category": "symbols"}
  ],
  "stories": [
    {"title": "What Is Unicode?", "slug": "what-is-unicode", "meta_description": "...", "category": "technical"}
  ],
  "glossary": [
    {"term": "Unicode", "slug": "unicode", "definition": "A universal character encoding standard...", "abbreviation": "", "category": "standards"}
  ],
  "tools": [
    {"name": "Unicode Lookup", "slug": "unicode-lookup", "description": "Look up any codepoint...", "icon": "\ud83d\udd0d"}
  ]
}

Category List

GET /api/category/{slug}/
curl https://emojifyi.com/api/category/smileys-emotion/
Show response
{
  "category": "Smileys & Emotion",
  "slug": "smileys-emotion",
  "icon": "\ud83d\ude00",
  "emojis": [
    {"character": "\ud83d\ude00", "cldr_name": "grinning face", "slug": "grinning-face"},
    {"character": "\ud83d\ude03", "cldr_name": "grinning face with big eyes", "slug": "grinning-face-with-big-eyes"}
  ]
}

Similar Emojis

GET /api/emoji/{slug}/similar/

Find related emojis by subcategory and keyword overlap. Returns up to 20 results with shared keywords.

curl https://emojifyi.com/api/emoji/grinning-face/similar/
Show response
{
  "emoji": {"character": "\ud83d\ude00", "cldr_name": "grinning face", "slug": "grinning-face"},
  "similar": [
    {"character": "\ud83d\ude03", "cldr_name": "grinning face with big eyes", "slug": "grinning-face-with-big-eyes", "shared_keywords": ["face", "grin"]},
    {"character": "\ud83d\ude04", "cldr_name": "grinning face with smiling eyes", "slug": "grinning-face-with-smiling-eyes", "shared_keywords": ["face", "grin"]}
  ]
}

Emoji Image API

GET /api/emoji-image/{slug}/{platform}.{fmt}?w={size}

Download pre-generated emoji images. Platforms: noto, twemoji, openmoji. Formats: png, webp, svg. Sizes: 32, 64, 72 (default), 128, 256px.

# PNG at 128px (Google Noto)
curl "https://emojifyi.com/api/emoji-image/grinning-face/noto.png?w=128" -o grinning.png

# SVG (Twemoji)
curl "https://emojifyi.com/api/emoji-image/grinning-face/twemoji.svg" -o grinning.svg

# WebP at 256px with download header
curl "https://emojifyi.com/api/emoji-image/red-heart/openmoji.webp?w=256&download=1" -O

# List available formats for an emoji
curl "https://emojifyi.com/api/emoji-image/grinning-face/"

Random Emoji

GET /api/random/
curl https://emojifyi.com/api/random/
Show response
{
  "character": "\ud83c\udf55",
  "cldr_name": "pizza",
  "slug": "pizza",
  "codepoint": "U+1F355",
  "url": "https://emojifyi.com/emoji/pizza/"
}

Exemples de code

Python

import requests

# Search for heart emojis
resp = requests.get("https://emojifyi.com/api/search/", params={"q": "heart"})
data = resp.json()

for emoji in data["results"]:
    print(f"{emoji['character']} {emoji['cldr_name']}")

# Get specific emoji details
resp = requests.get("https://emojifyi.com/api/emoji/red-heart/")
emoji = resp.json()
print(f"UTF-8: {emoji['encoding']['utf8']}")
print(f"Keywords: {', '.join(emoji['keywords'])}")

JavaScript

// Search emojis
const resp = await fetch("https://emojifyi.com/api/search/?q=fire");
const { results } = await resp.json();
results.forEach(e => console.log(`${e.character} ${e.cldr_name}`));

// Unified search (v2) — emojis, stories, glossary, tools
const v2 = await fetch("https://emojifyi.com/api/v2/search/?q=unicode&limit=20");
const data = await v2.json();
console.log(`Found: ${data.emojis.length} emojis, ${data.stories.length} stories`);

// Random emoji
const random = await fetch("https://emojifyi.com/api/random/");
const emoji = await random.json();
console.log(`Random: ${emoji.character} (${emoji.cldr_name})`);

cURL

# Search
curl -s "https://emojifyi.com/api/search/?q=cat" | python3 -m json.tool

# Emoji detail
curl -s https://emojifyi.com/api/emoji/cat-face/ | python3 -m json.tool

# List all categories with counts
curl -s https://emojifyi.com/api/categories/ | python3 -m json.tool

# Curated collections
curl -s https://emojifyi.com/api/collections/ | python3 -m json.tool

# Download emoji image (Noto, 128px PNG)
curl "https://emojifyi.com/api/emoji-image/cat-face/noto.png?w=128" -o cat.png

# Random emoji
curl -s https://emojifyi.com/api/random/ | python3 -m json.tool

Packages & SDKs

Python Package

Pure Python emoji engine with all 3,953 emojis bundled. Zero dependencies. Available on PyPI.

Install
pip install emojifyi                # Core engine (zero deps)
pip install "emojifyi[cli]"         # + CLI
pip install "emojifyi[mcp]"         # + MCP server
pip install "emojifyi[all]"         # Everything
Exemple
from emojifyi import get_emoji, search_emoji, encode_emoji

emoji = get_emoji("red-heart")     # Metadata + keywords
results = search_emoji("fire")     # Search 3,953 emojis
enc = encode_emoji("\u2764\ufe0f")           # UTF-8, HTML, CSS, JS, Java

PyPI · GitHub

npm Package

Emoji toolkit for JavaScript and TypeScript. 3,781 emojis bundled, zero dependencies. Available on npm.

Install
npm install emojifyi
Exemple
import { getEmoji, searchEmoji, encodeEmoji } from "emojifyi";

const emoji = getEmoji("grinning-face"); // Full metadata
const results = searchEmoji("fire");     // Search by keyword
const enc = encodeEmoji("\ud83d\ude00");           // All 8 encodings
emojifyi npm demo — Node.js REPL with emoji lookup and encoding

npm · GitHub

Command-Line Interface

Emoji tools in your terminal. Rich tables and formatted output.

Install & Use
pip install "emojifyi[cli]"

emojifyi lookup "\ud83d\ude00"        # Emoji info + encodings
emojifyi search "fire"      # Search emojis by keyword
emojifyi encode "\u2764\ufe0f"        # All encoding formats
EmojiFYI CLI demo

MCP Server

Add emoji tools to AI assistants via Model Context Protocol.

Install
pip install "emojifyi[mcp]"
claude_desktop_config.json
{
  "mcpServers": {
    "emojifyi": {
      "command": "python",
      "args": ["-m", "emojifyi.mcp_server"]
    }
  }
}
emoji_lookup emoji_search emoji_encode

Data Feeds

Subscribe to our story feeds to receive updates when new emoji guides and articles are published. We provide both RSS 2.0 and Atom 1.0 formats.

Subscribe via command line

# RSS
curl "https://emojifyi.com/stories/feed/rss/"

# Atom
curl "https://emojifyi.com/stories/feed/atom/"

HTML auto-discovery

Feed readers automatically discover our feeds via <link> tags in every page:

<link rel="alternate" type="application/rss+xml"
      title="EmojiFYI Stories (RSS)" href="/stories/feed/rss/">
<link rel="alternate" type="application/atom+xml"
      title="EmojiFYI Stories (Atom)" href="/stories/feed/atom/">

AI / LLM Integration

EmojiFYI provides machine-readable content summaries following the llms.txt standard. These endpoints help AI models understand and reference our content.

/llms.txt text/plain

A concise summary of EmojiFYI's content structure and key pages. Designed for AI models to quickly understand what the site offers and how it is organized.

# EmojiFYI.com

> Comprehensive emoji reference — 3,953 Unicode emojis with
  encoding, keywords, categories, and platform images in 15 languages.

## Browse
- [Emojis](https://emojifyi.com/) — 3,953 emoji entries
- [Categories](https://emojifyi.com/category/) — 10 categories
  ...
/llms-full.txt text/plain

Extended version with complete URL patterns, i18n language codes, and page-level structure. Use this for deeper indexing and cross-referencing of EmojiFYI content.

*.md text/markdown

Append .md to any content page URL to get a machine-readable Markdown version:

# Emoji detail in Markdown
curl https://emojifyi.com/emoji/grinning-face.md

# Stories index
curl https://emojifyi.com/stories.md

# Glossary index
curl https://emojifyi.com/glossary.md

AI Crawler Policy: Our robots.txt explicitly allows GPTBot, ClaudeBot, and Google-Extended crawlers.

SEO & Standards

Standard endpoints for search engines, crawlers, and security researchers.

Endpoint Standard Description
/sitemap.xml Sitemaps 0.9 Sitemap index with per-section sitemaps covering all content types
/robots.txt REP Crawler directives with explicit AI bot permissions
/.well-known/security.txt RFC 9116 Security vulnerability reporting contact

Structured Data

Every page includes JSON-LD structured data for rich search results:

  • WebSite — with SearchAction for sitelinks search box
  • CollectionPage — category and index pages with item counts
  • Article — story pages with author, dates, and word count
  • DefinedTerm — glossary terms with definitions
  • WebApplication — interactive tools with free pricing
  • BreadcrumbList — navigation breadcrumbs on all pages

Internationalization

All content pages include hreflang alternate links for 15 languages: English (default), Korean, Japanese, Chinese (Simplified), Spanish, French, German, Portuguese, Russian, Arabic, Hindi, Thai, Vietnamese, Indonesian, and Turkish.

OpenAPI Specification

A machine-readable OpenAPI 3.0 specification is available for our JSON APIs. Use it with tools like Swagger UI, Postman, or code generators.

Download openapi.json

Fetch via command line

# Download the OpenAPI spec
curl "https://emojifyi.com/api/openapi.json" -o openapi.json

# Pretty-print
curl -s "https://emojifyi.com/api/openapi.json" | python3 -m json.tool

Rate Limits & Usage

Our APIs are free to use with no authentication required. To ensure fair access for everyone, please follow these guidelines:

  • Keep requests under 60 requests per minute per IP address
  • Include a descriptive User-Agent header identifying your application
  • Cache responses locally when possible — our API responses include Cache-Control headers
  • All responses include an X-Request-ID header for debugging
  • Les données emoji proviennent du CLDR Unicode. Pensez à inclure un lien vers EmojiFYI lorsque vous utilisez les données.
  • For bulk data access, use the sitemap to discover all URLs, then use .md endpoints

If you need higher-volume access or have integration questions, reach out via the contact in our security.txt.

Quick Reference

Emoji Detail /api/emoji/{slug}/
Similar Emojis /api/emoji/{slug}/similar/
Rechercher /api/search/?q=...
Unified Search (v2) /api/v2/search/?q=...
Autocomplete /api/autocomplete/?q=...
Category Emojis /api/category/{slug}/
Toutes les catégories /api/categories/
Collections /api/collections/
Collection Detail /api/collection/{slug}/
Emoji Types /api/types/
Versions /api/versions/
Years Timeline /api/years/
Random Emoji /api/random/
Emoji Images /api/emoji-image/{slug}/
OpenAPI Spec /api/openapi.json
Flux RSS /stories/feed/rss/
Atom Feed /stories/feed/atom/
llms.txt /llms.txt
PyPI Package pip install emojifyi
npm Package npm install emojifyi