v2026-07-21 · 3,816 emojis · 79 collections

The emoji database, grouped for developers

Every emoji list you were about to hand-build: food, flags, cozy, kid-safe. 79 collections covering all 3,816 emojis, served as static JSON from a CDN. No key, no SDK, one GET.

Browse 79 collections See the API →
🕯️🛋️🧸cozy22🌭🌮🌯food103🇦🇨🇦🇩🇦🇪flags270🎃👻🧛spooky60🤖🧠🦾ai15🎉👀👍️reactions53🏖️🏝️🌞summer58blue320🀄️🅰️🅱️kid-safe3,778🚌🚗🏍️vehicle51💌💓💔hearts25👨‍🚀👨🏻‍🚀👨🏼‍🚀space37🌈🌙🌟fun104💾📼📟️retro20🐀🐁🐂animals130🎉🎄🎊festive45🕯️🛋️🧸cozy22🌭🌮🌯food103🇦🇨🇦🇩🇦🇪flags270🎃👻🧛spooky60🤖🧠🦾ai15🎉👀👍️reactions53🏖️🏝️🌞summer58blue320🀄️🅰️🅱️kid-safe3,778🚌🚗🏍️vehicle51💌💓💔hearts25👨‍🚀👨🏻‍🚀👨🏼‍🚀space37🌈🌙🌟fun104💾📼📟️retro20🐀🐁🐂animals130🎉🎄🎊festive45
COLLECTIONS

Sorted by how people actually use them

DEVELOPERS

No SDK. No API key. Just JSON.

GET https://emoji.group/cozy.json
{
  "slug": "cozy",
  "tag": "cozy",
  "title": "Cozy",
  "facet": "vibe",
  "mode": "include",
  "emojis": [
    "☕️",
    "🌙",
    "🌧️",
    "🍞",
    "🍪",
    "🍲",
    "🍵",
    "🏡",
    "…"
  ],
  "count": 22,
  "version": "2026-07-21"
}
GET https://emoji.group/collections/index.json
{
  "version": "2026-07-21",
  "count": 79,
  "collections": [
    {
      "slug": "activities",
      "tag": "activities",
      "title": "Activities",
      "facet": "category",
      "mode": "include",
      "count": 85,
      "version": "2026-07-21"
    },
    {
      "slug": "aesthetic",
      "tag": "aesthetic",
      "title": "Aesthetic",
      "facet": "vibe",
      "mode": "include",
      "count": 23,
      "count_default": 18,
      "version": "2026-07-21"
    },
    {
      "slug": "ai",
      "tag": "ai",
      "title": "Ai",
      "facet": "theme",
      "mode": "include",
      "count": 15,
      "version": "2026-07-21"
    },
    {
      "slug": "animals",
      "tag": "animals",
      "title": "Animals",
      "facet": "category",
      "mode": "include",
      "count": 130,
      "version": "2026-07-21"
    },
    {
      "…": "75 more"
    }
  ]
}
GET https://emoji.group/blocklists/violent.json
{
  "slug": "violent",
  "tag": "violent",
  "title": "Violent",
  "facet": "safety",
  "mode": "exclude",
  "emojis": [
    "☠️",
    "⚔️",
    "🏹",
    "💣️",
    "🔪",
    "🔫",
    "🗡️",
    "🩸",
    "🪓"
  ],
  "count": 9,
  "version": "2026-07-21"
}
GET https://emoji.group/emojis.json
[
  {
    "char": "🕯️",
    "name": "candle",
    "slug": "candle",
    "codepoints": [
      128367
    ],
    "unicode_version": "0.7",
    "base": null,
    "skin_tone": null,
    "gender": null,
    "tags": [
      {
        "tag": "cozy",
        "facet": "vibe",
        "confidence": 0.85,
        "source": "llm"
      },
      {
        "tag": "spooky",
        "facet": "vibe",
        "confidence": 0.6,
        "source": "llm"
      }
    ]
  },
  {
    "…": "3,815 more records"
  }
]
A person opens it
emoji.group/cozy → the page, with copy buttons
add .json
A program requests it
emoji.group/cozy.json → the raw collection

Deterministic

Same input, same output. Stable codepoint order, byte for byte reproducible builds.

Versioned by date

Pin a build and nothing changes underneath you. Upgrade when you choose.

Cache forever

Static files on a CDN with open CORS. Ship it to the client, bundle it, or mirror everything.

SAFETY

Blocklists a human signed off on

Suggestive, violent, substances, gambling. Every safety tag passes three gates before it ships, and the build fails if one hasn't.

STEP 1

Programmatic pass

Codepoints, ZWJ sequences and artwork analysis tag everything a rule can prove.

STEP 2

Model proposals

An LLM tags against a closed vocabulary with a confidence score. It can propose, never publish.

STEP 3

Human review

A person approves every safety tag. The compiler rejects any that a human hasn't seen.

🧒

Kid-safe is derived, not tagged. It is everything minus the safety blocklists, computed at build time, so it can never drift out of sync.

kid-safe.json · 3,778 emojis
We want emoji to be boring.

Every app rebuilds the same lists. Which emojis are food. Which are safe for kids. Which ones are actually purple. Then Unicode ships a new version, and the lists quietly rot.

emoji.group is that work done once, in the open: deterministic builds, human reviewed safety tags, and static JSON that will still resolve in ten years.

Pin a version and forget about us. That is the point.

· the emoji.group team 🫶
Start with one GET
Fork on GitHub Open source under MIT. The data, the pipeline and this site live in one repo, so you can change any list and rebuild the whole thing.
Copied