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 emojiEmoji
A Japanese word (็ตตๆ–‡ๅญ—) meaning 'picture character' โ€” small graphical symbols used in digital communication to express ideas, emotions, and objects.
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 UnicodeUnicode
Universal character encoding standard that assigns a unique number to every character across all writing systems and symbol sets, including emoji.
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 ZWJZero Width Joiner (ZWJ)
An invisible Unicode character (U+200D) used to join multiple emoji into a single composite emoji, such as combining people and objects into profession emoji.
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)
    The Common Locale Data Repository, a Unicode project providing locale-specific data including emoji names and search keywords in 100+ languages.
    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 pointCode Point
    A unique numerical value assigned to each character in the Unicode standard, written in the format U+XXXX (e.g., U+1F600 for ๐Ÿ˜€).
    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

Related Tools

๐Ÿ”€ Platform Compare Platform Compare
Compare how emojis render across Apple, Google, Samsung, Microsoft, and more. See visual differences side by side.
โŒจ๏ธ Emoji Keyboard Emoji Keyboard
Browse and copy any of 3,953 emojis organized by category. Works in any browser, no install needed.
๐Ÿ” Sequence Analyzer Sequence Analyzer
Decode ZWJ sequences, skin tone modifiers, keycap sequences, and flag pairs into individual components.
๐Ÿ“Š Emoji Stats Emoji Stats
Explore statistics about the Unicode emoji set โ€” category distribution, version growth, type breakdown.

Glossary Terms

CLDR (CLDR) CLDR (CLDR)
The Common Locale Data Repository, a Unicode project providing locale-specific data including emoji names and search keywords in 100+ languages.
Code Point Code Point
A unique numerical value assigned to each character in the Unicode standard, written in the format U+XXXX (e.g., U+1F600 for ๐Ÿ˜€).
Emoji Emoji
A Japanese word (็ตตๆ–‡ๅญ—) meaning 'picture character' โ€” small graphical symbols used in digital communication to express ideas, emotions, and objects.
Unicode Unicode
Universal character encoding standard that assigns a unique number to every character across all writing systems and symbol sets, including emoji.
Zero Width Joiner (ZWJ) Zero Width Joiner (ZWJ)
An invisible Unicode character (U+200D) used to join multiple emoji into a single composite emoji, such as combining people and objects into profession emoji.

Related Stories