Getting Started with the EmojiFYI API

What Is the EmojiFYI API?

EmojiFYI exposes a free, read-only JSON API that gives programmatic access to the same emoji data that powers the website. You can query individual emojis by slug, search across the full 3,953-emoji dataset, browse emojis by category, and fetch a random emoji — all without any authentication or API key.

The API follows standard REST conventions. Every endpoint returns JSON and supports cross-origin requests, so you can call it directly from a browser, a Node.js script, a Python backend, or a mobile app. The full schema is documented at /api/openapi.json in OpenAPI 3.0 format.

Base URL and Available Endpoints

All API endpoints are served from https://emojifyi.com. The four available endpoints are:

Endpoint Method Description
/api/emoji/{slug}/ GET Fetch a single emoji by its slug
/api/search/?q={query} GET Search emojis by name or keyword
/api/category/{slug}/ GET List all emojis in a category
/api/random/ GET Fetch one random emoji

No API key, no OAuth, no registration. Send an HTTP GET request and receive JSON back.

Fetching a Single Emoji

The emoji detail endpoint takes a slug — the URL-safe version of the emoji's Unicode name — and returns comprehensive data for that emoji.

Request:

GET https://emojifyi.com/api/emoji/grinning-face/

Response (abbreviated):

{
  "name": "Grinning Face",
  "slug": "grinning-face",
  "character": "😀",
  "codepoints": ["U+1F600"],
  "category": "Smileys & Emotion",
  "subcategory": "face-smiling",
  "version": "1.0",
  "keywords": ["face", "grin", "smile", "happy", "joy"],
  "description": "A classic grinning face showing teeth."
}

Finding the Slug

The slug is always visible in the emoji's detail URL on EmojiFYI. For example, the 🔥 Fire emoji lives at /emoji/fire/, so its slug is fire. For compound names like 🤩 Star-Struck, the slug is star-struck.

If you are unsure of a slug, use the search endpoint first.

Searching for Emojis

The search endpoint accepts a query string and returns a list of matching emojis, ranked by relevance. It searches across official Unicode names, keywords, and descriptions.

Request:

GET https://emojifyi.com/api/search/?q=coffee

Response:

{
  "query": "coffee",
  "count": 4,
  "results": [
    {
      "name": "Hot Beverage",
      "slug": "hot-beverage",
      "character": "☕",
      "codepoints": ["U+2615"],
      "category": "Food & Drink"
    },
    {
      "name": "Teacup Without Handle",
      "slug": "teacup-without-handle",
      "character": "🍵",
      "codepoints": ["U+1F375"],
      "category": "Food & Drink"
    }
  ]
}

Search Tips

  • Use broad terms for wider results: "heart" returns more results than "red heart"
  • Searches are case-insensitive: "Pizza" and "pizza" return the same results
  • You can search by Unicode keyword, not just the official name: "face", "hand", "sky"
  • For precise lookups, use the detail endpoint with the known slug instead

Browsing by Category

The category endpoint returns all emojis that belong to a given top-level Unicode category.

Request:

GET https://emojifyi.com/api/category/food-drink/

Response:

{
  "category": "Food & Drink",
  "slug": "food-drink",
  "count": 135,
  "emojis": [
    {
      "name": "Grapes",
      "slug": "grapes",
      "character": "🍇",
      "codepoints": ["U+1F347"],
      "subcategory": "food-fruit"
    }
  ]
}

Available Category Slugs

The ten Unicode categories and their slugs are:

Category Slug
Smileys & Emotion smileys-emotion
People & Body people-body
Animals & Nature animals-nature
Food & Drink food-drink
Travel & Places travel-places
Activities activities
Objects objects
Symbols symbols
Flags flags
Component component

Getting a Random Emoji

The random endpoint returns one emoji chosen at random from the full dataset. It is useful for features like "emoji of the day", random avatar generators, or testing your emoji rendering pipeline with unpredictable inputs.

Request:

GET https://emojifyi.com/api/random/

Response:

{
  "name": "Butterfly",
  "slug": "butterfly",
  "character": "🦋",
  "codepoints": ["U+1F98B"],
  "category": "Animals & Nature",
  "version": "3.0"
}

Each call returns a different emoji. The selection is uniformly random across all 3,953 entries, including ZWJ영폭 결합자 (ZWJ)
여러 이모지를 하나의 합성 이모지로 결합하는 데 사용되는 보이지 않는 유니코드 문자(U+200D).
sequences, skin tone variants, and flags.

OpenAPI Schema

The full API schema is available at /api/openapi.json in OpenAPI 3.0 format. You can load this schema into:

  • Postman — import the URL directly to generate a full collection
  • Insomnia — use the OpenAPI import to create all four endpoints automatically
  • Swagger UI — paste the URL to get an interactive browser-based API explorer
  • Code generators — tools like openapi-generator or kiota can produce typed API clients from the schema

Example: Building a Simple Emoji Lookup

Here is a minimal JavaScript example that fetches the 🌮 Taco emoji and logs its details:

fetch('https://emojifyi.com/api/emoji/taco/')
  .then(res => res.json())
  .then(data => {
    console.log(data.character, data.name);
    console.log('Code points:', data.codepoints.join(', '));
    console.log('Category:', data.category);
    console.log('Keywords:', data.keywords.join(', '));
  });

And the same request in Python using the standard library:

import urllib.request
import json

url = 'https://emojifyi.com/api/emoji/taco/'
with urllib.request.urlopen(url) as response:
    data = json.loads(response.read())

print(data['character'], data['name'])
print('Code points:', ', '.join(data['codepoints']))
print('Keywords:', ', '.join(data['keywords']))

Rate Limits and Usage

The EmojiFYI API is free and publicly accessible. It is intended for reasonable use — lookups, search, and browsing — rather than bulk scraping of the full dataset. If you need the complete dataset for offline use, the OpenAPI schema documents the available resources and you can collect them via the category endpoints.

For high-volume or commercial use cases, consider caching responses locally. The emoji dataset itself changes only when new Unicode versions are adopted, so most responses can be cached for weeks or months.

What the API Does Not Include

The current API does not expose:

  • Platform images — vendor emoji artwork (Apple, Google, Samsung) is not redistributable via API
  • Emoji sequences as a separate endpoint — ZWJ sequences appear within search and category results
  • Multilingual names — the API returns English names; CLDRCLDR (CLDR)
    100개 이상의 언어로 이모지 이름과 검색 키워드를 포함한 로케일 데이터를 제공하는 유니코드 프로젝트.
    multilingual data is available on emoji detail pages on the site

These are potential additions in future API versions.

Explore More on EmojiFYI

Once you have the API running in your project, these tools can help you explore the underlying data:

  • Stats Dashboard — visualize the dataset your API queries are pulling from
  • Emoji Keyboard — quickly find slugs and code points for emoji you want to query
  • Sequence Analyzer — understand the code point structure of complex ZWJ sequences before querying them
  • Compare Tool — verify how an emoji you retrieved via API will render for your users on different platforms

관련 도구

🔀 플랫폼 비교 플랫폼 비교
Apple, Google, Samsung, Microsoft 등 다양한 플랫폼에서 이모지가 어떻게 표시되는지 비교해 보세요. 시각적 차이를 나란히 확인할 수 있습니다.
⌨️ 이모지 키보드 이모지 키보드
카테고리별로 정리된 3,953개의 이모지를 탐색하고 복사해 보세요. 어떤 브라우저에서도 작동하며 설치가 필요 없습니다.
🔍 시퀀스 분석기 시퀀스 분석기
ZWJ 시퀀스, 피부톤 수정자, 키캡 시퀀스, 국기 쌍을 개별 구성 요소로 분해합니다.
📊 이모지 통계 이모지 통계
Unicode 이모지 세트에 관한 통계를 탐색하세요 — 카테고리 분포, 버전별 증가 추이, 유형별 분류.

용어 사전 항목

이모지 이모지
일본어 '그림 문자(絵文字)'를 뜻하며, 디지털 커뮤니케이션에서 감정과 개념을 표현하는 작은 그래픽 기호.
유니코드 유니코드
모든 문자 체계와 이모지를 포함하여 각 문자에 고유한 번호를 부여하는 범용 문자 인코딩 표준.
영폭 결합자 (ZWJ) 영폭 결합자 (ZWJ)
여러 이모지를 하나의 합성 이모지로 결합하는 데 사용되는 보이지 않는 유니코드 문자(U+200D).
코드 포인트 코드 포인트
유니코드 표준에서 각 문자에 부여되는 고유한 숫자 값으로, U+XXXX 형식으로 표기됩니다.
CLDR (CLDR) CLDR (CLDR)
100개 이상의 언어로 이모지 이름과 검색 키워드를 포함한 로케일 데이터를 제공하는 유니코드 프로젝트.

관련 이모지

관련 스토리