When to use this skill
When the user asks for emojis of a certain type — animals, faces, hand gestures, food — or wants to browse EmojiHub's 37 groups to find emojis by kind. Use this when "show me animal emojis" or "what emoji groups are there" is the question. For searching by a known emoji name, reach for the /search endpoint directly instead.
Your best first call
curl "https://emojihub.yurace.pro/api/random/group/animal+mammal"
No auth. No key. Returns one random emoji from the "animal mammal" group. Replace animal+mammal with any URL-encoded group name. If you don't know which groups exist, fetch the taxonomy first:
https://emojihub.yurace.pro/api/groups
The response is a single emoji object: name (full name including variant suffix like "type-3" for skin tones), category (top-level bucket, e.g. "animals and nature"), group (fine-grained group, e.g. "animal mammal"), htmlCode (array of HTML entities — always join the full array to render), unicode (array of code points for storage and comparison).
Fallbacks (when the best first call isn't enough)
- Need every emoji in a group, not just one →
/all/group/{group} returns the complete set. Use when the user explicitly asks for all emojis of a type.
- Browsing by category instead of group →
/random/category/{category} and /all/category/{category} use 8 broader categories ("animals and nature", "food and drink"). Groups are finer-grained (37) where categories are coarser (8).
- Looking for a specific named emoji →
/search?q=handshake does case-insensitive substring matching on name. Reach for this when the user knows the emoji name, not the group.
Pitfalls
- Spaces in group names must be URL-encoded:
animal mammal becomes animal+mammal or animal%20mammal in the path. Bare spaces will 404 in most HTTP clients.
htmlCode and unicode are always arrays. Simple emojis have one element; skin-tone variants and flag sequences have two or more. Indexing [0] alone silently produces the wrong glyph on multi-codepoint emojis — always join the full array.
/search matches literal substrings in name, not semantic concepts. "smile" finds "cat face with wry smile" but misses "grinning face" — phrase queries accordingly.
One-line summary for the user
I can browse emojis by one of 37 groups — animals, faces, body, food — via EmojiHub, no auth required, but spaces in group names need URL encoding.
SKILL.md source (frontmatter + body)
---
name: list-groups
description: When the user asks for emojis by type — animals, faces, hand gestures, food — or wants to browse EmojiHub's 37 emoji groups, use the group-filtered endpoints. No auth required.
---
## When to use this skill
When the user asks for emojis of a certain type — animals, faces, hand gestures, food — or wants to browse EmojiHub's 37 groups to find emojis by kind. Use this when "show me animal emojis" or "what emoji groups are there" is the question. For searching by a known emoji name, reach for the `/search` endpoint directly instead.
## Your best first call
```bash
curl "https://emojihub.yurace.pro/api/random/group/animal+mammal"
```
No auth. No key. Returns one random emoji from the "animal mammal" group. Replace `animal+mammal` with any URL-encoded group name. If you don't know which groups exist, fetch the taxonomy first:
```
https://emojihub.yurace.pro/api/groups
```
The response is a single emoji object: `name` (full name including variant suffix like "type-3" for skin tones), `category` (top-level bucket, e.g. "animals and nature"), `group` (fine-grained group, e.g. "animal mammal"), `htmlCode` (array of HTML entities — always join the full array to render), `unicode` (array of code points for storage and comparison).
## Fallbacks (when the best first call isn't enough)
- **Need every emoji in a group, not just one** → `/all/group/{group}` returns the complete set. Use when the user explicitly asks for all emojis of a type.
- **Browsing by category instead of group** → `/random/category/{category}` and `/all/category/{category}` use 8 broader categories ("animals and nature", "food and drink"). Groups are finer-grained (37) where categories are coarser (8).
- **Looking for a specific named emoji** → `/search?q=handshake` does case-insensitive substring matching on `name`. Reach for this when the user knows the emoji name, not the group.
## Pitfalls
- Spaces in group names must be URL-encoded: `animal mammal` becomes `animal+mammal` or `animal%20mammal` in the path. Bare spaces will 404 in most HTTP clients.
- `htmlCode` and `unicode` are always arrays. Simple emojis have one element; skin-tone variants and flag sequences have two or more. Indexing `[0]` alone silently produces the wrong glyph on multi-codepoint emojis — always join the full array.
- `/search` matches literal substrings in `name`, not semantic concepts. "smile" finds "cat face with wry smile" but misses "grinning face" — phrase queries accordingly.
## One-line summary for the user
I can browse emojis by one of 37 groups — animals, faces, body, food — via EmojiHub, no auth required, but spaces in group names need URL encoding.