Skip to content
AISARAISAR
Stickers

Stickers

Telegram sticker set import finished

sticker.pack.import.finished

As of 2026-08-23, `POST /v1/sticker-packs/import/telegram` only starts the background download and immediately responds `202 {status: "queued", name, title}` — the actual outcome (success or error) arrives via this event. On success, a separate `sticker.pack.created` event is also sent for the new pack; on error, `pack_id` is `null` and `imported`/`skipped_animated` are `0`. `error` is a human-readable failure message (e.g. the set turned out to be fully animated, or became unavailable between the link check and the job running) or `null` on success — it never contains the bot token or raw network-error text. Imported stickers carry their own Telegram `emoji` tag as `emoji_tags` (available via `GET /v1/sticker-packs` after the import, not in this payload).

HTTP request

AISAR sends a signed POST request to your webhook_url:

http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...

{
  "event": "sticker.pack.import.finished",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-08-23T12:25:00.000000Z",
  "company_id": 1,
  "data": {
    "name": "CoolPack",
    "title": "Cool Pack",
    "pack_id": 16,
    "imported": 24,
    "skipped_animated": 6,
    "truncated": false,
    "error": null
  }
}

The X-AISAR-Signature header carries an HMAC-SHA256 signature of the request body — use it to verify the request came from AISAR.

Example payload

json
{
  "event": "sticker.pack.import.finished",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-08-23T12:25:00.000000Z",
  "company_id": 1,
  "data": {
    "name": "CoolPack",
    "title": "Cool Pack",
    "pack_id": 16,
    "imported": 24,
    "skipped_animated": 6,
    "truncated": false,
    "error": null
  }
}

Payload fields

FieldTypeDescription
namestringThe Telegram sticker set name (from the link, or as given)
titlestring|nullThe set's title as reported by Telegram; `null` if Telegram did not return one
pack_idinteger|nullID of the created sticker pack; `null` if the import failed
importedintegerNumber of static stickers successfully imported; `0` on failure
skipped_animatedintegerNumber of animated stickers (TGS/WebM) skipped
truncatedboolean`true` if the set was longer than the 120-stickers-per-pack limit and part of it was dropped
errorstring|nullHuman-readable error message; `null` on a successful import