Skip to content

FAQ

Can I try this now?

No. The gateway route is live now (a bad token returns 401), but there is still no way to get a bot token — @gcore and the portal are not up — so you cannot call any method yet. Implementation status lists what runs and gives you the commands to check for yourself.

Can my bot message someone first?

No, and this is not a limitation to work around — it is the design. A bot can only reply to someone who has messaged it or added it to a group. There is no lookup by phone number, no directory, no way to acquire an id you were not given.

If you need to reach existing users, reach them somewhere they already are and let them start the conversation.

Why does my bot get the same update over and over?

offset is wrong. It must be the last update_id you handled plus one. Passing the id itself re-requests that update forever. See the polling loop.

Why does getUpdates return 409?

Two processes are polling the same token, or a webhook is registered while you poll. Run exactly one poller per token; call deleteWebhook if you meant to poll.

My formatting breaks when someone sends an emoji

Entity offsets are counted in UTF-16 code units. An emoji is 2 units, not 1, and not the 4 bytes it occupies in UTF-8. Computing offsets over a byte string works fine in English and breaks the moment real users show up. See formatting.

Why is my message rejected as too long when it looks short?

Same cause. The 4096 limit counts UTF-16 units, so emoji and non-Latin scripts consume more than the character count suggests. Split on a code-unit boundary, never a byte boundary.

Can a bot read every message in a group?

Only if privacy mode is disabled for it, and only where the group's own settings allow. By default a bot in a group sees commands addressed to it, replies to its messages, and service events — not general conversation.

The broader rule: a bot never exceeds the rights a human member would have in that chat.

Can I use my Telegram bot's token here?

No. Tokens are issued per platform. You also cannot carry over user ids or file_ids — see migrating, which is mostly a list of what does not transfer.

Will my Telegram bot's users come with me?

No. Separate platforms, separate identity spaces, and a bot cannot open a conversation. Every user has to find the bot on GROM and message it. This is the slow part of any migration and no API call shortens it.

What currency do bot payments use?

Undecided. The specification references Stars/XTR, GROM's internal token is called Take, and reconciling them is an open question. No payment provider is connected. Do not plan revenue around the payments methods yet.

Is there an MTProto API?

No. See MTProto.

Does GROM have secret chats?

No. GROM has no secret-chat surface, and the Bot API could not reach one if it did — a bot runs server-side and holds no per-device key, so an end-to-end chat has nowhere to deliver to. This is stated rather than left silent because the absence is deliberate, not pending. Any Telegram bot code that branches on a secret chat is dead code here.

Does GROM have monoforums?

No. GROM has no monoforum, so no method in this API addresses one and no update reports one. If you are porting a bot that special-cases that surface, drop the branch.

How do I keep my token safe?

Environment variable, never a committed file. Be aware it travels in the URL path, so it can leak through proxy logs, shell history and error trackers that capture request URLs — scrub URLs before logging. If it leaks, revoke it; rotating is cheap.

Which errors should I retry?

429, 500, and file is not ready. Almost nothing else. A blocked bot stays blocked and a deleted chat stays deleted — retrying those burns rate limit and never succeeds. Errors marks each one.

Is there a rate limit I should design around?

Queue per chat, not globally. Most bots that hit limits are bursting into one conversation while idle elsewhere. Limits.

Where do I report a problem in these docs?

Given the platform is not live yet, the useful report is a specification problem — something contradictory, impossible, or missing. Those are worth raising now, while changing them is still cheap.