# MessageEntity

> This object represents one special entity in a text message

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

---

This object represents one special entity in a text message. For example, hashtags, usernames, URLs, etc.

## Fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| type | String | Always | Type of the entity. Currently, can be "mention" (@username), "hashtag" (#hashtag or #hashtag@chatusername), "cashtag" ($USD or $USD@chatusername), "bot_command" (/start@jobs_bot), "url" (https://telegram.org), "email" (do-not-reply@telegram.org), "phone_number" (+1-212-555-0123), "bold" (bold text), "italic" (italic text), "underline" (underlined text), "strikethrough" (strikethrough text), "spoiler" (spoiler message), "blockquote" (block quotation), "expandable_blockquote" (collapsed-by-default block quotation), "code" (monowidth string), "pre" (monowidth block), "text_link" (for clickable text URLs), "text_mention" (for users without usernames), "custom_emoji" (for inline custom emoji stickers), or "date_time" (for formatted date and time). |
| offset | Integer | Always | Offset in UTF-16 code units to the start of the entity |
| length | Integer | Always | Length of the entity in UTF-16 code units |
| url | String | Optional | For "text_link" only, URL that will be opened after user taps on the text |
| user | User | Optional | For "text_mention" only, the mentioned user |
| language | String | Optional | For "pre" only, the programming language of the entity text |
| custom_emoji_id | String | Optional | For "custom_emoji" only, unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker. |
| unix_time | Integer | Optional | For "date_time" only, the Unix time associated with the entity |
| date_time_format | String | Optional | For "date_time" only, the string that defines the formatting of the date and time. See date-time entity formatting for more details. |

> [!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.
