Emoji Shortcodes
Every emoji shortcode in GitHub's gemoji database (as of October 2026), covering 1870 emoji glyphs across nine categories: Smileys & Emotion, People & Body, Animals & Nature, Food & Drink, Travel & Places, Activities, Objects, Symbols, and Flags. Each record includes the emoji glyph itself, one or more :colon-delimited: alias names, a plain-English description, the Unicode category, and a list of searchable tags — making the dataset ideal for emoji pickers, autocomplete, search indexing, and chat applications.
Quick fetch
Stable URL. CORS-enabled. No auth.
curl https://staticdata.dev/v1/emoji-shortcodes.json
Or use as a typed import:
import { emojiShortcodes } from "https://staticdata.dev/v1/emoji-shortcodes.ts"
Formats
- JSON 300.2 KB
/v1/emoji-shortcodes.json
min: 205.2 KB · /v1/emoji-shortcodes.min.json
- CSV 88.8 KB
/v1/emoji-shortcodes.csv
- TypeScript 300.4 KB
/v1/emoji-shortcodes.ts
export const emojiShortcodes
type EmojiShortcode = (typeof emojiShortcodes)[number]
Schema
Each record in the dataset has the following shape.
| Field | Type | Description | Example |
|---|---|---|---|
| emoji | string | The emoji glyph as a Unicode character | 😀 |
| aliases | string[] | One or more :colon-style: shortcode names for the emoji | ["grinning"] |
| description | string | null | Plain-English name or description of the emoji | grinning face |
| category | string | null | Unicode/gemoji category grouping the emoji belongs to | Smileys & Emotion |
| tags | string[] | Searchable tag keywords associated with the emoji | ["smile","happy"] |
Preview
First 10 records.
| emoji | description | category |
|---|---|---|
| 🥇 | 1st place medal | Activities |
| 🥈 | 2nd place medal | Activities |
| 🥉 | 3rd place medal | Activities |
| 🎄 | Christmas tree | Activities |
| 🎎 | Japanese dolls | Activities |
| 🎟️ | admission tickets | Activities |
| 🏈 | american football | Activities |
| 🎨 | artist palette | Activities |
| 🏸 | badminton | Activities |
| 🎈 | balloon | Activities |
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/emoji-shortcodes.json | jq '.[0]' import type { EmojiShortcode } from "https://staticdata.dev/v1/emoji-shortcodes.ts";
const res = await fetch("https://staticdata.dev/v1/emoji-shortcodes.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const emojiShortcodes: EmojiShortcode[] = await res.json();
console.log(emojiShortcodes[0]); import urllib.request, json
with urllib.request.urlopen("https://staticdata.dev/v1/emoji-shortcodes.min.json") as r:
emojiShortcodes = json.load(r)
print(emojiShortcodes[0]) package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://staticdata.dev/v1/emoji-shortcodes.min.json")
if err != nil { panic(err) }
defer resp.Body.Close()
var data []map[string]any
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
panic(err)
}
fmt.Println(data[0])
} use serde_json::Value;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let body = ureq::get("https://staticdata.dev/v1/emoji-shortcodes.min.json").call()?.into_string()?;
let data: Vec<Value> = serde_json::from_str(&body)?;
println!("{:?}", data.first());
Ok(())
} Sources and methodology
The data is sourced directly from the GitHub gemoji database, the canonical reference for emoji shortcodes used across GitHub, Slack, and many other platforms. The gemoji project is maintained by GitHub and tracks the Unicode emoji standard, providing stable :shortcode: aliases that developers can use in Markdown, chat interfaces, and emoji picker components.
Each record in this dataset maps an emoji glyph to one or more shortcode aliases (e.g., grinning for 😀), along with its Unicode description, high-level category, and a set of searchable tags. The aliases field contains the primary shortcode name first; some emoji have multiple aliases to support legacy names and regional variants. The tags field provides informal keywords useful for fuzzy search and autocomplete features.
The dataset includes 1870 emoji records spanning nine categories. Records are sorted by category and then description (plain code-unit string comparison, so uppercase sorts before lowercase) for consistent ordering.
gemoji does not track every Unicode release: as of October 2026 its database covers emoji introduced up to Unicode/Emoji 15.0 and lists base glyphs only (skin-tone variants are not separate records), so newer emoji from Emoji 15.1–18.0 have no shortcode here. Use the emoji dataset for the full Unicode list.
The emoji field contains the raw Unicode glyph, which may render differently across operating systems, fonts, and rendering contexts — applications should test rendering against their target environments, particularly for newer emoji sequences involving zero-width joiners (ZWJ) and skin-tone modifiers.
Versioning
URLs under /v1/ are stable: field names and types will not change in a way
that breaks consumers. Values can be corrected or records added when the upstream source
changes; schema-incompatible updates ship under a new version path. See the
emoji-shortcodes changelog for this dataset's history.
Related datasets
More Web datasets
- aria-attributes
- aria-roles
- character-encodings
- csp-directives
- credit-card-types
- dns-record-types
- dom-events
- emoji
- html-elements
- html-attributes
- input-types
- http-auth-schemes
- http-cache-directives
- http-content-codings
- http-headers
- http-methods
- http-status-codes
- http-versions
- iframe-sandbox-tokens
- ip-protocol-numbers
- keyboard-event-codes
- link-relations
- media-type-suffixes
- mime-types
- oauth-grant-types
- ports
- referrer-policies
- ip-special-blocks
- svg-elements
- tcp-flags
- tlds
- tls-cipher-suites
- tls-versions
- uri-schemes
- well-known-uris