Skip to content

REST API

Emoji sets & stickers

Custom emoji sets used for reactions and stickers.

The system set min (Unicode presets) is always available. Custom sets: up to 10 per author, 50 emoji per set, up to 30 installed sets of other authors. Emoji ids are used by reactions (PUT /messages/{id}/reaction) and stickers (emoji_id when sending).

Endpoints#

GET /api/emoji-sets #

Installed emoji sets

Bearer token

Installed sets plus the system set min.

Parameters

No parameters.

Request

curl
curl 'https://minchatapp.com/api/emoji-sets' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Response

HTTP 200
[
  {
    "id": 1,
    "title": "Min",
    "slug": "min",
    "is_system": true,
    "is_active": true,
    "author": null,
    "emoji_count": 8,
    "emojis": [
      {
        "emoji_id": 1,
        "set_id": 1,
        "set_title": "Min",
        "set_active": true,
        "shortcode": "thumbsup",
        "kind": "unicode",
        "unicode": "👍",
        "image_url": null,
        "count": 0
      },
      {
        "emoji_id": 2,
        "set_id": 1,
        "set_title": "Min",
        "set_active": true,
        "shortcode": "heart",
        "kind": "unicode",
        "unicode": "❤️",
        "image_url": null,
        "count": 0
      }
    ],
    "installed": true
  }
]
POST /api/emoji-sets #

Create an emoji set

Bearer token Rate limit: 30/min

Up to 10 sets per author, 50 emoji per set.

Parameters

Name Type Description
title
required body
string
Title.
max 64 chars
slug
optional body
string
URL slug for /e/{slug}.
max 32 chars

Request

curl
curl -X POST 'https://minchatapp.com/api/emoji-sets' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"title": "Team stickers", "slug": "team_stickers"}'

Response

HTTP 201
{
  "id": 2,
  "title": "Team stickers",
  "slug": "team-stickers",
  "is_system": false,
  "is_active": true,
  "author": {
    "id": 1,
    "name": "Anna Smith",
    "avatar": null
  },
  "emoji_count": 0,
  "emojis": [],
  "installed": true
}
GET /api/emoji-sets/{idOrSlug} #

Get an emoji set

Bearer token

404 when inactive (e.g. still empty).

Parameters

Name Type Description
idOrSlug
required path
string
Set id or slug.

Request

curl
curl 'https://minchatapp.com/api/emoji-sets/team_stickers' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Response

Responds with HTTP 200.

PATCH /api/emoji-sets/{emojiSet} #

Rename a set

Bearer token

Owner only.

Parameters

Name Type Description
emojiSet
required path
integer
Emoji set id.
title
required body
string
Title.
max 64 chars

Request

curl
curl -X PATCH 'https://minchatapp.com/api/emoji-sets/2' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"title": "Team stickers v2"}'

Response

HTTP 200
{
  "id": 2,
  "title": "Team stickers v2",
  "slug": "team-stickers",
  "is_system": false,
  "is_active": true,
  "author": {
    "id": 1,
    "name": "Anna Smith",
    "avatar": null
  },
  "emoji_count": 1,
  "emojis": [
    {
      "emoji_id": 9,
      "set_id": 2,
      "set_title": "Team stickers v2",
      "set_active": true,
      "shortcode": "ship_it",
      "kind": "custom",
      "unicode": null,
      "image_url": "https://minchatapp.com/storage/emojis/cc/ccfcc4cd72fa42b444b4c2c4837bb847ae6897be6fc4ad9a59eb63cce11df4f8.png",
      "count": 0
    }
  ],
  "installed": true
}
DELETE /api/emoji-sets/{emojiSet} #

Delete a set

Bearer token

Owner or admin.

Parameters

Name Type Description
emojiSet
required path
integer
Emoji set id.

Request

curl
curl -X DELETE 'https://minchatapp.com/api/emoji-sets/2' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Response

Responds with HTTP 200.

POST /api/emoji-sets/{emojiSet}/emojis #

Add an emoji

Bearer token Rate limit: 30/min multipart/form-data

Multipart: shortcode + image (≤ 256 KB, ≤ 128×128, jpeg/png/webp/gif).

Parameters

Name Type Description
emojiSet
required path
integer
Emoji set id.
shortcode
required body
string
Emoji shortcode.
pattern ^[a-z0-9_-]{2,32}$
image
required body
file
Image file (multipart).
max 256 KB

Request

curl
curl -X POST 'https://minchatapp.com/api/emoji-sets/2/emojis' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -F 'shortcode=ship_it' \
  -F 'image=@ship_it.png'

Response

HTTP 200
{
  "emoji_id": 9,
  "set_id": 2,
  "set_title": "Team stickers",
  "set_active": true,
  "shortcode": "ship_it",
  "kind": "custom",
  "unicode": null,
  "image_url": "https://minchatapp.com/storage/emojis/cc/ccfcc4cd72fa42b444b4c2c4837bb847ae6897be6fc4ad9a59eb63cce11df4f8.png",
  "count": 0
}
DELETE /api/emoji-sets/{emojiSet}/emojis/{emoji} #

Delete an emoji

Bearer token

Parameters

Name Type Description
emojiSet
required path
integer
Emoji set id.
emoji
required path
integer
Emoji id.

Request

curl
curl -X DELETE 'https://minchatapp.com/api/emoji-sets/2/emojis/9' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Response

Responds with HTTP 200.

POST /api/emoji-sets/{emojiSet}/install #

Install a set

Bearer token

Up to 30 installed sets of other authors.

Parameters

Name Type Description
emojiSet
required path
integer
Emoji set id.

Request

curl
curl -X POST 'https://minchatapp.com/api/emoji-sets/2/install' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Response

HTTP 200
{
  "success": true,
  "installed": true
}
DELETE /api/emoji-sets/{emojiSet}/install #

Uninstall a set

Bearer token

Own and system sets → 403.

Parameters

Name Type Description
emojiSet
required path
integer
Emoji set id.

Request

curl
curl -X DELETE 'https://minchatapp.com/api/emoji-sets/2/install' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Response

Responds with HTTP 200.

POST /api/emoji-sets/{emojiSet}/report #

Report a set

Bearer token Rate limit: 10/60 min

Parameters

Name Type Description
emojiSet
required path
integer
Emoji set id.
reason
required body
string
End reason.
one of: spam, abuse, other
note
optional body
string
Private note.
max 500 chars

Request

curl
curl -X POST 'https://minchatapp.com/api/emoji-sets/2/report' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"reason": "spam", "note": "Ads"}'

Response

Responds with HTTP 200.

GET /api/emoji-set-reports #

Emoji set reports (admins)

Bearer token

Only for accounts with is_admin.

Parameters

No parameters.

Request

curl
curl 'https://minchatapp.com/api/emoji-set-reports' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Response

Responds with HTTP 200.

GET /api/emojis/recent #

Recently used emoji

Bearer token

Up to 8.

Parameters

No parameters.

Request

curl
curl 'https://minchatapp.com/api/emojis/recent' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Response

HTTP 200
[
  {
    "emoji_id": 1,
    "set_id": 1,
    "set_title": "Min",
    "set_active": true,
    "shortcode": "thumbsup",
    "kind": "unicode",
    "unicode": "👍",
    "image_url": null,
    "count": 0
  },
  {
    "emoji_id": 4,
    "set_id": 1,
    "set_title": "Min",
    "set_active": true,
    "shortcode": "fire",
    "kind": "unicode",
    "unicode": "🔥",
    "image_url": null,
    "count": 0
  }
]