Skip to content

Changelog

Changes to the API surface, newest first. This tracks the specification. The gateway route is live and 49 methods are now verified against it with a real (seed) bot token, but public token issuance is still broken, so nothing has shipped to developers yet and nothing here is a release note.

Method additions, removals and status changes are detected automatically by comparing the schema against the last sealed snapshot. The prose around them is written by hand.

Unreleased — 0.1-draft

2026-07-19

The initial surface, published for review.

  • Messaging, editing, chat administration, invite links, forum topics, callbacks, inline mode, bot settings, reactions, payments, games and stickers are specified.
  • Update delivery is specified for both long polling and webhooks, with the full allowed_updates list.
  • The error taxonomy is mapped from the core's error vocabulary to Telegram-compatible error_code values.
  • Limits are published as targets, not as measurements.

Surface — 94 methods across 15 categories · 55 types · 23 update types · 21 errors.

49 of 94 methods are verified against the running gateway.

Schema changes since 2026-07-19 — detected automatically by comparing the schema against the sealed snapshot.

ChangeDetail
StatusbanChatMember — planned → live
StatuscopyMessage — planned → live
StatuscopyMessages — planned → live
StatuscreateChatInviteLink — planned → live
StatusdeleteMessage — planned → live
StatusdeleteMessages — planned → live
StatusdeleteMyCommands — planned → live
StatusdeleteWebhook — planned → live
StatuseditMessageText — planned → live
StatusforwardMessage — planned → live
StatusforwardMessages — planned → live
StatusgetChat — planned → partial
StatusgetChatAdministrators — planned → live
StatusgetChatMember — planned → live
StatusgetChatMemberCount — planned → live
StatusgetChatMenuButton — planned → live
StatusgetMe — planned → live
StatusgetMyCommands — planned → live
StatusgetMyDefaultAdministratorRights — planned → live
StatusgetMyDescription — planned → live
StatusgetMyName — planned → live
StatusgetMyShortDescription — planned → live
StatusgetUpdates — planned → live
StatusgetWebhookInfo — planned → live
StatuspinChatMessage — planned → live
StatuspromoteChatMember — planned → live
StatusrestrictChatMember — planned → live
StatusrevokeChatInviteLink — planned → live
StatussendAnimation — planned → live
StatussendChatAction — planned → live
StatussendDocument — planned → live
StatussendLocation — planned → live
StatussendMessage — planned → live
StatussendPhoto — planned → live
StatussendPoll — planned → live
StatussendVideo — planned → live
StatussendVideoNote — planned → live
StatussendVoice — planned → live
StatussetChatDescription — planned → live
StatussetChatMenuButton — planned → live
StatussetChatTitle — planned → live
StatussetMessageReaction — planned → live
StatussetMyCommands — planned → live
StatussetMyDefaultAdministratorRights — planned → live
StatussetMyDescription — planned → live
StatussetMyName — planned → live
StatussetMyShortDescription — planned → live
StatussetWebhook — planned → live
StatusunbanChatMember — planned → live
StatusunpinChatMessage — planned → live
Gatewaynot live → live

Open questions that may still change the surface:

  • The currency model for payments is undecided — Stars/XTR versus GROM's internal Take token. sendInvoice, createInvoiceLink and refundStarPayment may change shape.
  • No MTProto layer exists, and several parts of the wider specification assume one. Anything depending on user-account access is not specified here.
  • answerWebAppQuery and the menu-button flow contradict each other in the source specification over whether a query_id is issued. The method reference documents the conflict rather than picking a side.

How versions will work

Once live, the API is versioned by path — /api/v1, /api/v2 — and old versions stay reachable rather than being switched off under running bots. Additive changes (a new optional parameter, a new field in a response) do not bump the version, so parse responses tolerantly: ignore fields you do not recognise rather than failing on them.

A method moving from planned to live is not a version bump either. It is the only change on this page that means something already worked differently yesterday, so it is listed separately from additions.