Search, look up, and randomize ~1,914 emoji at the edge

Emoji API

The Emoji API is a blazing-fast, fully self-contained emoji metadata service. It bundles nearly 1,914 emoji directly into a Cloudflare Worker, so every request is served from memory at the edge with no upstream calls, no rate-limit surprises, and no flaky third parties.

Each emoji is enriched with its name, URL-friendly slug, Unicode group, skin-tone support flag, the Unicode version it was introduced in, and precomputed codepoints — correctly handling multi-codepoint sequences like variation selectors and ZWJ joins. Ideal for emoji pickers, chat products, content pipelines, and any latency-sensitive UI.

Free tier · no credit card · billed on RapidAPI

1,914
Emoji Bundled
<1ms
Compute Time
4
Endpoints

Key features

  • Partial, case-insensitive search by name or slug
  • Exact lookup by emoji character or slug
  • Group index with live per-group counts
  • Random sampling without replacement, varying per call
  • Precomputed codepoints with ZWJ and variation selector support
  • Skin-tone support flag and Unicode version metadata
  • Fully bundled dataset served from the edge — no upstream calls

Perfect for

  • Emoji pickers and autocomplete widgets
  • Chat and messaging product features
  • Content-moderation and parsing pipelines
  • Trivia games and educational apps
  • Mapping slugs like grinning_face to real emoji
  • Slack/Discord bot emoji integrations
  • Localization and Unicode tooling
  • Random emoji generators and creative apps
Documentation

Emoji API Documentation

Everything you need to integrate — base URL, auth, and copy-paste examples.

The Emoji API bundles ~1,914 emoji directly at the edge. It offers four clean endpoints: partial search by name or slug (with optional group filtering), exact lookup by character or slug, a groups index with live counts, and a random sampler that draws without replacement and varies on every call.

Base URL

https://edge-apis.e9736.workers.dev

Authentication

Authenticate your requests by passing your API key as the apikey query parameter on every call:

headers
https://edge-apis.e9736.workers.dev/emoji/v1/search?q=grin&apikey=YOUR_KEY

Request & response

Request
http
GET /emoji/v1/search?q=grin&limit=2&apikey=YOUR_KEY HTTP/1.1
Response
json
{
"query": "grin",
"count": 2,
"limit": 2,
"results": [
  {
    "char": "😀",
    "name": "grinning face",
    "slug": "grinning_face",
    "group": "Smileys & Emotion",
    "skin_tone_support": false,
    "unicode_version": "1.0",
    "codepoints": ["U+1F600"]
  },
  {
    "char": "😃",
    "name": "grinning face with big eyes",
    "slug": "grinning_face_with_big_eyes",
    "group": "Smileys & Emotion",
    "skin_tone_support": false,
    "unicode_version": "0.6",
    "codepoints": ["U+1F603"]
  }
]
}

Code examples

cURL
curl --request GET \
  --url 'https://edge-apis.e9736.workers.dev/emoji/v1/search?q=grin&limit=2&apikey=YOUR_KEY'

Endpoints

GET /emoji/v1/search

Case-insensitive partial match on emoji name OR slug, with an optional exact group filter. Results capped at limit.

/emoji/v1/search?q=grin&limit=2&apikey=YOUR_KEY

GET /emoji/v1/lookup

Resolve full details for a single emoji by exact character (emoji) OR by slug. At least one is required; emoji takes precedence if both are supplied.

/emoji/v1/lookup?slug=smiling_face&apikey=YOUR_KEY

GET /emoji/v1/groups

List distinct emoji groups with per-group counts and the dataset total.

/emoji/v1/groups?apikey=YOUR_KEY

GET /emoji/v1/random

Return random emoji (1-50), sampled without replacement and varying per call. Supports an optional group filter.

/emoji/v1/random?count=1&group=Food%20%26%20Drink&apikey=YOUR_KEY

Parameters

Required Parameters

  • q - Non-empty search string matched against name and slug (required for /v1/search).

Optional Parameters

  • group - Optional case-insensitive group name filter, e.g. "Smileys & Emotion" (search and random).
  • limit - Maximum number of search results, 1-200 (default 50).
  • emoji - The exact emoji character to resolve, URL-encoded (lookup).
  • slug - The emoji slug to resolve, e.g. grinning_face (lookup).
  • count - Number of random emoji to return, 1-50 (default 1) for /v1/random.
Pricing

Emoji API Pricing

Choose the right plan for your emoji needs with flexible pricing options and no hidden fees. All tiers include every endpoint.

No credit card to start · cancel anytime

Basic

Free
1,000 Requests / Month
  • All four endpoints
  • 3 req/sec rate limit
  • Full emoji metadata
Get Started Free
Most popular

Pro

$9/month
250,000 Requests / Month
  • All four endpoints
  • 30 req/sec rate limit
  • Production apps & chat features
Subscribe Now

Ultra

$49/month
5,000,000 Requests / Month
  • All four endpoints
  • 200 req/sec rate limit
  • High-traffic autocomplete at scale
Subscribe

Need higher volume or a custom SLA?

Talk to us about enterprise rates, dedicated support, and compliance docs.

Contact sales
FAQ

Frequently asked questions

The Emoji API bundles approximately 1,914 emoji directly into the edge Worker. Each one comes enriched with its character, human-readable name, URL-friendly slug, Unicode group, a skin-tone support flag, the Unicode version it was introduced in, and precomputed codepoints. The dataset spans all standard Unicode groups including Smileys & Emotion, People & Body, Animals & Nature, Food & Drink, Travel & Places, Activities, Objects, Symbols, and Flags.

Call GET /emoji/v1/search with a q parameter. The match is case-insensitive and partial, applied against both the emoji name and its slug — so q=grin will return grinning_face, grinning_face_with_big_eyes, and more. You can optionally scope results to a single Unicode group with the group parameter and cap the number of results with limit (1-200, default 50). An empty q, an invalid limit, or an unknown group returns a 400 error.

The GET /emoji/v1/lookup endpoint resolves the full record for a single emoji. You can provide either the exact emoji character via the emoji parameter (URL-encoded) or a slug like grinning_face via the slug parameter. At least one is required. If you supply both, the emoji character takes precedence. If neither is provided you get a 400, and if no emoji matches you get a 404 with an explicit error message.

GET /emoji/v1/random returns random emoji using the count parameter (1-50, default 1). Sampling is done without replacement, so you will never get duplicate emoji within a single response, and the selection varies on every call. You can also pass an optional case-insensitive group filter to draw only from a specific category, such as group=Food & Drink. A count outside the 1-50 range or an unknown group returns a 400 error.

The codepoints field is an array of Unicode codepoint strings in U+XXXX form that make up the emoji. Many emoji are not a single codepoint — they may combine a base character with a variation selector (like U+FE0F) or join multiple codepoints with a zero-width joiner (ZWJ). The API precomputes and correctly expands these sequences so you can reconstruct, analyze, or compare emoji precisely without parsing the raw string yourself.

The entire emoji dataset is bundled into a Cloudflare Worker and served from memory at the edge, so there are no upstream calls or third-party hops. Typical compute time is well under a millisecond, and latency is dominated by the network round-trip to the nearest of Cloudflare's 300+ edge locations. This makes the API ideal for high-throughput autocomplete and latency-sensitive UIs. Authentication is a simple apikey query parameter on every request.

Every week you build in-house is a week you don't ship product

2,500+ teams already made the switch. Start with a free tier today, or talk to us about your enterprise needs.

For developers

Free tier, no credit card. Integrate your first API in under 30 minutes.

Get API keys freeRead the docs

For teams and enterprise

Custom volumes, SLA guarantees, dedicated support, and compliance documentation.

Talk to sales

or email sales@apicodex.io