Dev Docs
Emoji Intelligence
Emoji Developer Platform

Emoji intelligence for API, CLI, MCP, and agent workflows

The developer platform behind the emoji catalog exposes resolve, search, normalize, lint, suggest, fixtures, intents, export, and compare features through one shared engine. Resolve, search, normalize, fixtures, intents, and compare stay public with IP-based limits, while lint, suggest, export, and hosted MCP require API-key scopes.

EU languages
24

One locale layer for search, intents, and fallbacks

API surface
6 + 4

Six public endpoints with IP limits, four protected endpoints behind scoped keys

Package + MCP
Hosted

Installable package and hosted MCP endpoint expose the same semantics

Resolve + Search

From `:rocket:` to `U+1F680` and localized search.

Lint + Normalize

For CI, accessibility, and consistent content pipelines.

MCP + Agents

Directly usable in agent workflows for changelogs, PRs, and support.

EU-24 Locales

One shared semantics layer across all 24 EU languages.

What this is good for
Release notes and PRs

Intents such as deploy, warning, breaking-change, or security return suitable emojis plus fallback text.

CI, QA, and linting

Unicode edge cases, mixed formats, and missing text fallbacks can be validated automatically.

Content and CMS pipelines

Shortcodes, glyphs, entities, and slugs can be normalized and exported deterministically.

Agents and MCP clients

The MCP tools speak the same emoji semantics as the website and the CLI.

Live API

The public emoji API on ostheimer.at

Resolve, search, normalize, fixtures, intents, and compare are available without a key but carry dedicated per-IP rate limits. Lint, suggest, export, and the hosted MCP endpoint expect an API key with the matching emoji scopes.

Clickable GET examples open raw JSON responses in a new tab.

resolve

Resolves glyphs, codepoints, shortcodes, or slugs to one canonical emoji.

GETPublic
/api/emojis/resolve?value=%F0%9F%9A%80&lang=enOpen JSON
search

Searches across localized names, keywords, tags, and intent signals.

GETPublic
/api/emojis/search?q=warning&lang=en&limit=5Open JSON
normalize

Normalizes input into glyph, Unicode label, and HTML entity.

POSTPublic
/api/emojis/normalize
Available via JSON POST.
lint

Checks text for mixed formats, accessibility fallbacks, and problematic contexts.

POSTAPI Key
/api/emojis/lint
Requires an API key with the matching scope.
suggest

Suggests fitting emojis for a query or intent with rationale.

POSTAPI Key
/api/emojis/suggest
Requires an API key with the matching scope.
fixtures

Returns hard Unicode fixtures for parser, rendering, and database tests.

GETPublic
/api/emojis/fixtures?set=zwj&lang=enOpen JSON
intents

Shows the developer-centric intent catalog with localized search terms.

GETPublic
/api/emojis/intents?lang=enOpen JSON
compare

Compares platform assets and metadata for an emoji.

GETPublic
/api/emojis/compare?value=%F0%9F%9A%80&lang=enOpen JSON
export

Exports localized search and term data for downstream tools.

GETAPI Key
/api/emojis/export?lang=en&format=json
Requires an API key with the matching scope.
API playground

Test directly in the browser

Resolve, search, and compare stay public. `lint` and `suggest` can now send an API key directly from this page; the key stays in browser state only.

Request
GET /api/emojis/resolve?lang=it&value=%F0%9F%9A%80
Response
Resolves one input to a canonical emoji.
No request yet
Open raw JSON
{
  "status": "ready"
}
CLI and MCP

Package, CLI, and hosted MCP

The package uses the live API on ostheimer.at. After installation, the short `emoji` CLI is available; protected workflows can use `EMOJI_INTELLIGENCE_API_KEY` or `--api-key`.

Install + CLI
npm install ostheimer-emoji-intelligence
npx emoji resolve "🚀" --lang en --json
npx emoji search "warning" --lang en --json
EMOJI_INTELLIGENCE_API_KEY=your_key npx emoji suggest --intent security --lang en --json
npx emoji export --lang en --format json --api-key "$EMOJI_INTELLIGENCE_API_KEY"
Hosted MCP
{
  "mcpServers": {
    "emoji-intelligence": {
      "url": "https://www.ostheimer.at/api/emojis/mcp",
      "headers": {
        "Authorization": "Bearer ${EMOJI_INTELLIGENCE_API_KEY}"
      }
    }
  }
}
The short `emoji` command works after `npm install ostheimer-emoji-intelligence`. Alternatively, the tarball remains available at https://www.ostheimer.at/downloads/ostheimer-emoji-intelligence-0.1.1.tgz. For `lint`, `suggest`, `export`, and hosted MCP, pass a key via `EMOJI_INTELLIGENCE_API_KEY` or `--api-key`.
curl
curl -X POST https://www.ostheimer.at/api/emojis/lint \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer $EMOJI_INTELLIGENCE_API_KEY' \
  -d '{"text":"Release 🚀 shipped :rocket:","lang":"en","context":"release"}'
Keys and scopes

Generate new keys in the authenticated dashboard at /dashboard/settings. Emoji workflows expose the scopes `emoji:read`, `emoji:lint`, `emoji:suggest`, and `emoji:mcp`.

Lint validates text and requires `emoji:lint`.
Suggest uses `emoji:suggest` for intent-based recommendations.
Export runs on `emoji:read`, while hosted MCP requires `emoji:mcp`.
/dashboard/settingscreates new public API keys for emoji scopes.
Public, but rate-limited

Resolve, search, normalize, fixtures, intents, and compare remain directly testable, but each route has its own IP-based limit and rate-limit headers.

X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
Locale coverage

The platform targets the same 24 EU languages used by search, resolve, and the intent data.

bgcsdadeelenesetfifrgahrhuitltlvmtnlplptroskslsv
Building blocks
Shared TypeScript engine across API, CLI, MCP, and skill workflows.
Database-backed search with localized keywords, tags, and intents.
Lint, fixtures, and compare routes for more robust Unicode workflows.
Start immediately

From the site directly into your workflow

If you want to use ostheimer.at as the emoji backend for internal tools, agents, or content pipelines, you can start today with the live routes, the package download, or the hosted MCP endpoint.

Explorer