# Animation

> This object represents an animation file (GIF or H.264/MPEG-4 AVC video without sound)

**Category:** Telegram Bot API — Types (A-Z)  
**URL:** https://docs.botlify.cloud/animation  
**Platform:** Botlify Cloud (https://botlify.cloud)  

---

This object represents an animation file (GIF or H.264/MPEG-4 AVC video without sound).

## Fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| file_id | String | Always | Identifier for this file, which can be used to download or reuse the file |
| file_unique_id | String | Always | Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. |
| width | Integer | Always | Video width as defined by the sender |
| height | Integer | Always | Video height as defined by the sender |
| duration | Integer | Always | Duration of the video in seconds as defined by the sender |
| thumbnail | PhotoSize | Optional | Animation thumbnail as defined by the sender |
| file_name | String | Optional | Original animation filename as defined by the sender |
| mime_type | String | Optional | MIME type of the file as defined by the sender |
| file_size | Integer | Optional | File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value. |

> [!TIP]
> **Botlify Cloud Runtime**
> Credentials are auto-injected in .env — always load them with getenv(): BOT_TOKEN, ADMIN_CHAT_ID, BOT_USERNAME. Main database: database.db (SQLite, WAL mode). Runtime errors: error.log. Quick test: send to $ADMIN_CHAT_ID. Full details: Runtime Reference.
