# Emoji picker

- Human page: https://happytails.ai/en/text-tools/emoji-picker/
- Markdown: https://happytails.ai/en/text-tools/emoji-picker.md
- Structured JSON: https://happytails.ai/agents/en/text-tools/emoji-picker/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `emoji-picker` |
| Category | text-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | /api/v1/tools/emoji-picker/run |
| Browser-agent interface | run_current_tool |

### Implementation notes

Search English emoji labels and aliases, then copy the sequence you need. Unicode artwork differs across platforms.

### Inputs and settings

Text input: Find an emoji.

Example or placeholder shown in the interface (not a validated fixture):

```text
smile
```

Search by an English word or alias. Up to 1,000,000 characters. Review the settings before running.

No additional settings are declared for this tool.

### HTTP contract

API calls process supplied data on the server. The website origin is `https://happytails.ai`. Server API hosting is not connected on the public website yet. Use your local server origin to test these requests.

```http
POST https://happytails.ai/api/v1/tools/emoji-picker/run
Content-Type: application/json
```

[Detailed operation reference](https://happytails.ai/en/api/tools/emoji-picker.md) · [Shared API guide](https://happytails.ai/en/api.md)

#### Limits

| Limit | Value |
| --- | --- |
| request_bytes | 8388608 |
| input_characters | 1000000 |
| files_bytes | 5242880 |
| max_files | 0 |
| timeout_seconds | 12 |

#### Complete input schema

```json
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "input": {
      "type": "string",
      "maxLength": 1000000,
      "default": "",
      "description": "Plain text input. File tools use files instead unless otherwise documented."
    },
    "options": {
      "type": "object",
      "additionalProperties": false,
      "properties": {}
    }
  }
}
```

#### Complete output schema

```json
{
  "type": "object",
  "required": [
    "tool",
    "result"
  ],
  "properties": {
    "tool": {
      "type": "string"
    },
    "result": {
      "type": "object",
      "required": [
        "text",
        "files"
      ],
      "properties": {
        "text": {
          "type": [
            "string",
            "null"
          ]
        },
        "data": {
          "description": "Parsed JSON when the textual result is JSON."
        },
        "name": {
          "type": "string"
        },
        "mime": {
          "type": "string"
        },
        "files": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "mime",
              "bytes",
              "base64"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "mime": {
                "type": "string"
              },
              "bytes": {
                "type": "integer"
              },
              "base64": {
                "type": "string",
                "contentEncoding": "base64"
              }
            }
          }
        }
      }
    }
  }
}
```

#### Recorded request and response

Saved fixture from 2026-09-28T18:13:50Z. This is historical evidence, not a new validation or a guarantee for every input.

```json
{
  "input": "smile",
  "options": {}
}
```

```json
{
  "tool": "emoji-picker",
  "result": {
    "text": "😀  grinning face\n😃  grinning face with big eyes\n😄  grinning face with smiling eyes\n😁  beaming face with smiling eyes\n😆  grinning squinting face\n😅  grinning face with sweat\n🙂  slightly smiling face\n🙃  upside-down face\n😊  smiling face with smiling eyes\n😇  smiling face with halo\n🥰  smiling face with hearts\n😍  smiling face with heart-eyes\n🤩  star-struck\n☺️  smiling face\n😙  kissing face with smiling eyes\n🥲  smiling face with tear\n😋  face savoring food\n😬  grimacing face\n😮‍💨  face exhaling\n😵‍💫  face with spiral eyes\n😎  smiling face with sunglasses\n😈  smiling face with horns\n😺  grinning cat\n😸  grinning cat with smiling eyes\n😻  smiling cat with heart-eyes\n😼  cat with wry smile",
    "files": [],
    "name": "result.txt",
    "mime": "text/plain;charset=utf-8"
  }
}
```

#### Error and retry handling

Failures return a non-200 status and `error.code` plus `error.message`. Correct invalid input before retrying; retry server-busy responses with bounded backoff. Returned files contain Base64 data, not persistent download URLs. Decode and inspect the output before treating conversion as successful. See the shared API guide for the complete status and timeout rules.

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Search a versioned Unicode emoji dataset by name and aliases; copy complete sequences including variation selectors, skin tones and joined emoji; explain platform appearance differences and verify dataset licensing.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "emoji-picker",
  "category": "text-tools",
  "built": true,
  "requirements": "Search a versioned Unicode emoji dataset by name and aliases; copy complete sequences including variation selectors, skin tones and joined emoji; explain platform appearance differences and verify dataset licensing.",
  "implementation": {
    "fields": [],
    "note": "Search English emoji labels and aliases, then copy the sequence you need. Unicode artwork differs across platforms.",
    "experience": {
      "automatic": false,
      "single": true,
      "label": "Find an emoji",
      "placeholder": "smile",
      "help": "Search by an English word or alias. Up to 1,000,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "POST /api/v1/tools/emoji-picker/run",
  "api": {
    "id": "emoji-picker",
    "name": "Emoji picker",
    "category": "text-tools",
    "description": "Find emoji by an English name or keyword.",
    "notes": "Search English emoji labels and aliases, then copy the sequence you need. Unicode artwork differs across platforms.",
    "human_path": "/en/text-tools/emoji-picker/",
    "method": "POST",
    "endpoint": "/api/v1/tools/emoji-picker/run",
    "schema_url": "/api/v1/tools/emoji-picker",
    "input_schema": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input": {
          "type": "string",
          "maxLength": 1000000,
          "default": "",
          "description": "Plain text input. File tools use files instead unless otherwise documented."
        },
        "options": {
          "type": "object",
          "additionalProperties": false,
          "properties": {}
        }
      }
    },
    "output_schema": {
      "type": "object",
      "required": [
        "tool",
        "result"
      ],
      "properties": {
        "tool": {
          "type": "string"
        },
        "result": {
          "type": "object",
          "required": [
            "text",
            "files"
          ],
          "properties": {
            "text": {
              "type": [
                "string",
                "null"
              ]
            },
            "data": {
              "description": "Parsed JSON when the textual result is JSON."
            },
            "name": {
              "type": "string"
            },
            "mime": {
              "type": "string"
            },
            "files": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name",
                  "mime",
                  "bytes",
                  "base64"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "mime": {
                    "type": "string"
                  },
                  "bytes": {
                    "type": "integer"
                  },
                  "base64": {
                    "type": "string",
                    "contentEncoding": "base64"
                  }
                }
              }
            }
          }
        }
      }
    },
    "processing": "Server; same transformation code as browser tools",
    "limits": {
      "request_bytes": 8388608,
      "input_characters": 1000000,
      "files_bytes": 5242880,
      "max_files": 0,
      "timeout_seconds": 12
    }
  },
  "agent_processing": "Server; same transformation code as browser tools",
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Find emoji by an English name or keyword.

## Useful next steps

- [Character counter](https://happytails.ai/en/text-tools/character-counter/): Count visible characters, words, lines and UTF-8 bytes. ([Markdown](https://happytails.ai/en/text-tools/character-counter.md))

- [Online notepad](https://happytails.ai/en/text-tools/online-notepad/): Write plain-text notes and download a copy. ([Markdown](https://happytails.ai/en/text-tools/online-notepad.md))

- [Remove duplicate lines](https://happytails.ai/en/text-tools/remove-duplicate-lines/): Remove repeated lines while keeping their first occurrence. ([Markdown](https://happytails.ai/en/text-tools/remove-duplicate-lines.md))

## How to use Emoji picker

1. Enter search emoji in the input field.
2. Review the settings, then choose Run Emoji picker.
3. Review the result, then use Copy result or a download link when available.

## What to expect

Find emoji by an English name or keyword. Search labels and tags, then copy the emoji you need from the results. Up to 200 matches are shown. Emoji artwork varies between devices; the returned sequence is Unicode text.

### Try a small example

```
smile
```
