Bots

Bot connection, messages, updates and the full Bot API.

This reference covers bot commands and the Bot API. Use it to look up authentication, messages, events and method parameters for the bot you control.

Bot connection, messages, updates and the full Bot API.

Global options

Apply to every command.

OptionPurpose
-V, --versionoutput the version number.
-v, --verbosemore detail in what is shown: -v ids, -vv everything we know. Default: 0.
--jsonmachine-readable output: one JSON value on stdout, nothing else.
--jsonlmachine-readable output: one JSON object per line, for streaming and jq.
--quietdiagnostics off.
--traceone line per request on stderr: ids and timings, never message content.
--timeout <duration>give up on the whole command after this — 30s, 2m, 500ms.
--offlineanswer from what was recorded and never connect; fails if nothing was.
--no-inputnever prompt or open interactive login; piped input remains available.
--max-input-bytes <bytes>maximum buffered input bytes (default: 16777216).
--max-output-bytes <bytes>maximum machine output bytes (default: 4194304; 0 disables).
--fields <paths>comma-separated item or object fields: id,text; preserve pagination and operation ids.
--dry-runpreview parsed arguments and permissions before running the action.
--yesgo ahead without the question an ask level puts before a write.
--recordkeep this run under max runs — ids and timings, never message content.
--no-recorddo not keep it, whatever the configuration says.
--servestart max serve in the background if it is not running (the default).
--no-servedo not start it; log in on this command's own connection unless one is running.

Commands

max bot

a MAX bot, through the official Bot API and a bot token — not your personal account

max bot auth

the bot token this profile uses

max bot auth set

check a bot token with MAX, then keep it — typed at a hidden prompt or piped on stdin

Changes something on this computer only.

max bot auth set

max bot auth show

where this profile's bot token comes from, and which bot it is

max bot auth show

max bot auth remove

forget this profile's bot token

Changes something on this computer only.

max bot auth remove

max bot list

every name on this machine that has a bot token; --check asks MAX which bot each is

max bot list [options]
OptionPurpose
--checkask the messenger who each bot is, with its token.

max bot chats

the chats this bot is in — MAX gives a bot no list of them, so list shows the ones it has seen

max bot chats list

chats this bot has seen on this machine — not a complete list from MAX

max bot chats list

max bot chats show

one chat from MAX, and remember it

max bot chats show <chat>
ArgumentRequirementMeaning
chatrequireda chat id, user: for a person, or the title of a chat this bot has seen.

max bot chats leave

take the bot out of a chat; only an admin of the chat can bring it back

Changes something in MAX.

max bot chats leave <chat>
ArgumentRequirementMeaning
chatrequireda chat id, or the title of a chat this bot has seen.

max bot chats action

show what the bot is doing in a chat — typing, sending a photo — for a few seconds

Changes something in MAX.

max bot chats action <chat> <action>
ArgumentRequirementMeaning
chatrequireda chat id, user: for a person, or the title of a chat this bot has seen.
actionrequiredwhat the chat sees. One of: typing, photo, video, voice, file.

max bot chats admins

the admins of a chat the bot is an admin in

max bot chats admins list

the chat's admins and what each may do

max bot chats admins list <chat>
ArgumentRequirementMeaning
chatrequireda chat id, or the title of a chat this bot has seen.

max bot chats admins add

make a member an admin with these rights

Changes something in MAX.

max bot chats admins add <chat> <person> [options]
ArgumentRequirementMeaning
chatrequireda chat id, or the title of a chat this bot has seen.
personrequiredthe person's user id.
OptionPurpose
--can <rights>what they may do, comma-separated: read, members, admins, info, pin, link, edit, delete.
--title <title>the title shown beside their name.

max bot chats admins remove

take an admin's rights back; they stay a member

Changes something in MAX.

max bot chats admins remove <chat> <person>
ArgumentRequirementMeaning
chatrequireda chat id, or the title of a chat this bot has seen.
personrequiredthe person's user id.

max bot chats members

the people in a chat the bot is an admin in

max bot chats members remove

take a person out of a chat; their messages stay

Changes something in MAX.

max bot chats members remove <chat> <person> [options]
ArgumentRequirementMeaning
chatrequireda chat id, or the title of a chat this bot has seen.
personrequiredthe person's user id.
OptionPurpose
--blockalso keep them from coming back by the chat's link.

max bot chats members list

members of a chat, a page at a time — --marker takes the marker the last page gave

max bot chats members list <chat> [options]
ArgumentRequirementMeaning
chatrequired
OptionPurpose
--limit <n>how many, up to 100.
--marker <marker>continue from here.

max bot chats members add

add people to a chat by user id; the bot must be an admin that may add members

Changes something in MAX.

max bot chats members add <chat> <users>
ArgumentRequirementMeaning
chatrequired
usersrequired

max bot chats rules

a chat's moderation rules for this bot, kept on this machine

max bot chats rules show

the chat's rules; the defaults, marked not saved, if it has none yet

max bot chats rules show <chat>
ArgumentRequirementMeaning
chatrequireda group's id, or the title of a group this bot has seen.

max bot chats rules set

change one rule — trusted, blocked, blockedNames, links, invites, forwards, blockedPeople, flood.messages, flood.minutes, flood.action, newAccount.days, newAccount.action, consent.delete, consent.remove

Changes something on this computer only.

max bot chats rules set <chat> <key> <value>
ArgumentRequirementMeaning
chatrequireda group's id, or the title of a group this bot has seen.
keyrequiredthe rule.
valuerequiredits new value.

max bot chats rules unset

put one rule back to its default

Changes something on this computer only.

max bot chats rules unset <chat> <key>
ArgumentRequirementMeaning
chatrequireda group's id, or the title of a group this bot has seen.
keyrequiredthe rule.

max bot chats moderate

judge a group's new messages and joins by its rules, and act as they allow — as the bot

Changes something in MAX.

max bot chats moderate <chat> [options]
ArgumentRequirementMeaning
chatrequireda group's id, or the title of a group this bot has seen.
OptionPurpose
--since-time <time>judge what came after this ISO 8601 time, or 2h / 1d ago; the saved point stays.
--dry-runjudge and plan; do nothing.
--allow-dangerousyes to every action whose level in the group's rules is ask.
--no-banremove without banning; by default a removed person cannot come back by the link.
--max-actions <n>at most this many actions in one run; 10 if not given.

max bot messages

the messages in the chats this bot is in

max bot messages send

send a message as the bot; without [text], the text is read from stdin

Changes something in MAX.

max bot messages send <chat> [text] [options]
ArgumentRequirementMeaning
chatrequireda chat id, user: for a person, or the title of a chat this bot has seen.
textoptionalthe message.
OptionPurpose
--reply-to <message>answer this message, by its id in the same chat.
--silentdeliver without a notification.
--mdread this messenger's Markdown; see its formatting guide for supported syntax.
--htmlthe text is HTML: , , , .
--file <file>attach a file; the text becomes its caption.
--photo <file>attach a .jpg, .png or .webp as a photo; the text becomes its caption.
--as-filesend the --file as a file to download, a video included.
--voice <file>send an Ogg Opus file as a voice message, alone, with no text.
--allow-any-filesend a file even from a hidden folder, ~/.ssh or this CLI's own folders.

max bot messages list

the latest messages in a chat; where MAX gives a bot no history, and with --offline, the ones this bot has seen on this machine

max bot messages list <chat> [options]
ArgumentRequirementMeaning
chatrequireda chat id, user: for a person, or the title of a chat this bot has seen.
OptionPurpose
--limit <n>how many, the newest.

max bot messages show

one message by its id in a chat

max bot messages show <chat> <message>
ArgumentRequirementMeaning
chatrequireda chat id, user: for a person, or the title of a chat this bot has seen.
messagerequiredmessage id.

max bot messages edit

replace the text of a message the bot sent

Changes something in MAX.

max bot messages edit <chat> <message> <text> [options]
ArgumentRequirementMeaning
chatrequireda chat id, user: for a person, or the title of a chat this bot has seen.
messagerequiredmessage id.
textrequiredthe new text.
OptionPurpose
--mdread this messenger's Markdown; see its formatting guide for supported syntax.
--htmlthe text is HTML: , , , .

max bot messages delete

delete messages in a chat the bot can delete in; it cannot be undone

Changes something in MAX.

max bot messages delete <chat> <messages> [options]
ArgumentRequirementMeaning
chatrequireda chat id, user: for a person, or the title of a chat this bot has seen.
messagesrequiredmessage ids.
OptionPurpose
--allow-dangerousdelete without asking.

max bot messages pin

pin a message in a chat; quietly unless --notify

Changes something in MAX.

max bot messages pin <chat> <message> [options]
ArgumentRequirementMeaning
chatrequireda chat id, user: for a person, or the title of a chat this bot has seen.
messagerequiredmessage id.
OptionPurpose
--notifytell the chat's members.

max bot messages unpin

unpin a message in a chat

Changes something in MAX.

max bot messages unpin <chat> <message>
ArgumentRequirementMeaning
chatrequireda chat id, user: for a person, or the title of a chat this bot has seen.
messagerequiredmessage id.

max bot messages between

what two or more people wrote in the chats they have all written in — from the local copy, grouped by chat, oldest first; --limit counts per chat. Common chats are the ones this copy saw each of them write in, not a member list from MAX

max bot messages between <people> [options]
ArgumentRequirementMeaning
peoplerequiredtwo or more people — an id, @username or part of a name each.
OptionPurpose
--all-botsalso read every other bot's copy on this machine that readOtherBots allows.
--bots <profiles>also read these bots' copies, comma separated — each allowed by readOtherBots.
--limit <n>how many of the latest messages from each chat.

find what this bot's local copy holds, by text

max bot search messages

search the messages this bot has read, sent or received on this machine — the local copy only, best match first; every word must appear; "a phrase", -word, a OR b, from: chat: after: before: has:; by text, by --from, or both

max bot search messages [query] [options]
ArgumentRequirementMeaning
queryoptionalthe words to find.
OptionPurpose
--all-botsalso read every other bot's copy on this machine that readOtherBots allows.
--bots <profiles>also read these bots' copies, comma separated — each allowed by readOtherBots.
--limit <n>how many.
--newestnewest first instead of best first.
--from <who>only what this person wrote — an id, @username or part of a name; repeat it for any of several.

max bot recipients

the chats this bot may write to; with no list, every chat — clear removes the list

max bot recipients list

the chats on the list, or nothing when there is no list

max bot recipients list

max bot recipients add

allow a chat: its id, user:<id>, or the title of a chat this bot has seen

Changes something on this computer only.

max bot recipients add <chat>
ArgumentRequirementMeaning
chatrequired

max bot recipients remove

take a chat off the list

Changes something on this computer only.

max bot recipients remove <chat>
ArgumentRequirementMeaning
chatrequired

max bot recipients clear

remove the list: the bot may write to any chat again

Changes something on this computer only.

max bot recipients clear

max bot sends

what this bot sent, edited and deleted from this machine — ids and outcomes, never text

max bot sends list

max bot sends list

max bot watch

print new messages as they arrive and keep them, until Ctrl-C or --timeout (either ends it normally)

max bot watch [options]
OptionPurpose
--eventsalso edits, deletions, buttons pressed and people coming and going; every line names its event.
--types <types>only these update types, comma-separated, in the messenger's words.

max bot callbacks

answers to the buttons people press under the bot's messages

max bot callbacks answer

answer a pressed button by its callback id: --notification shows the person a one-time note, --text replaces the message the button was on

Changes something in MAX.

max bot callbacks answer <callback> [options]
ArgumentRequirementMeaning
callbackrequiredthe callback id bot watch printed.
OptionPurpose
--text <text>the message's new text.
--notification <text>a note only the person who pressed sees.

max bot commands

the bot's command menu — what people see after /

max bot commands list

the commands in the menu now

max bot commands list

max bot commands set

replace the whole menu: each command as name=description, e.g. start=Begin

Changes something in MAX.

max bot commands set <commands>
ArgumentRequirementMeaning
commandsrequiredname=description, one per command.

max bot commands clear

empty the menu

Changes something in MAX.

max bot commands clear

max bot webhooks

where the messenger pushes this bot's updates — while one is set, bot watch gets nothing

max bot webhooks list

the webhooks this bot has

max bot webhooks list

max bot webhooks set

send this bot's updates to an HTTPS address; refused while another is set

Changes something in MAX.

max bot webhooks set <url> [options]
ArgumentRequirementMeaning
urlrequiredthe HTTPS address.
OptionPurpose
--types <types>only these update types, comma-separated, in the messenger's words.
--secret-stdina secret the messenger sends back with each update — asked for, or read from a pipe.
--addkeep the webhooks already set and add this one beside them.

max bot webhooks delete

stop sending updates to this address; with none left, bot watch works again

Changes something in MAX.

max bot webhooks delete <url>
ArgumentRequirementMeaning
urlrequiredthe address.

max bot contacts

people this bot has seen write — from the local copy on this machine, never asking MAX unless told to

max bot contacts show

one person: the chats they wrote in (with their last message there) and the latest messages of their private chat with the bot

max bot contacts show <who> [options]
ArgumentRequirementMeaning
whorequiredan id, @username or part of a name.
OptionPurpose
--all-botsalso read every other bot's copy on this machine that readOtherBots allows.
--bots <profiles>also read these bots' copies, comma separated — each allowed by readOtherBots.
--limit <n>how many messages from the private chat.
--refreshread the private chat with them again from the messenger first — one request.

max bot store

the bot's local copy on this machine

max bot store fetch

fetch a chat's history into the bot's local copy, newest first; run it again to continue

max bot store fetch <chat> [options]
ArgumentRequirementMeaning
chatrequireda chat id, or the title of a chat this bot has seen.
OptionPurpose
--limit <n>at most this many messages in this run; 1000 if not given.
--page-size <n>how many messages one request asks for; 100 if not given.
--pause <duration>pause between pages, to stay under the messenger's limits. Default: 1s.
--since-time <time>stop once it reaches messages older than this: ISO 8601, or 2h / 1d ago.
--last <n>stop once the newest n messages are held.

max bot mcp

serve this bot to an agent over MCP, on stdin and stdout — claude mcp add sales-bot -- max sales bot mcp

max bot mcp [options]
OptionPurpose
--confirm-sendno longer used — writes show no form; the profile's permissions decide.
--allow-dangerousno longer used — writes show no form; the profile's permissions decide.
--allow-sendno longer used — the profile's permissions decide; kept so an old setup still starts.
--allow-deleteno longer used — the profile's permissions decide.
--allow-moderateno longer used — the profile's permissions decide.

max bot mcp config

print the mcpServers entry for Claude Desktop, Cursor and others, with full paths; writes nothing

max bot mcp config [options]
OptionPurpose
--confirm-sendno longer used — writes show no form; the profile's permissions decide.
--allow-dangerousno longer used — writes show no form; the profile's permissions decide.
--allow-sendno longer used — the profile's permissions decide; kept so an old setup still starts.
--allow-deleteno longer used — the profile's permissions decide.
--allow-moderateno longer used — the profile's permissions decide.

max bot me

the bot this profile's token belongs to: name, id, description, commands

max bot me

max bot comments

comments under a channel post — each command takes the post's message id (mid.…) first

max bot comments list

the comments under a post, newest last

max bot comments list <message> [options]
ArgumentRequirementMeaning
messagerequired
OptionPurpose
--limit <n>how many, up to 100.

max bot comments get

one comment under a post

max bot comments get <message> <comment>
ArgumentRequirementMeaning
messagerequired
commentrequired

max bot comments send

comment under a post as the bot; - reads stdin

Changes something in MAX.

max bot comments send <message> <text> [options]
ArgumentRequirementMeaning
messagerequired
textrequired
OptionPurpose
--format <format>how the text is marked up. One of: markdown, html.

max bot comments edit

replace the text of a comment the bot wrote; - reads stdin

Changes something in MAX.

max bot comments edit <message> <comment> <text> [options]
ArgumentRequirementMeaning
messagerequired
commentrequired
textrequired
OptionPurpose
--format <format>how the text is marked up. One of: markdown, html.

max bot comments delete

delete a comment under a post

Changes something in MAX.

max bot comments delete <message> <comment> [options]
ArgumentRequirementMeaning
messagerequired
commentrequired
OptionPurpose
--allow-dangerousskip confirmation for bot.messages.delete at level ask.

max bot uploads

files uploaded to MAX, to attach to a message

max bot uploads put

upload a file from disk and print the attachment to put in a message's attachments — messages send --file does both steps at once

Changes something in MAX.

max bot uploads put <file> [options]
ArgumentRequirementMeaning
filerequired
OptionPurpose
--type <type>upload as this kind instead of guessing by extension. One of: image, video, audio, file.

max bot api

every operation of the official Bot API, generated from its schema — docs/dev/bot-api-coverage.md

max bot api [options]
OptionPurpose
--store-token <profile>keep a returned authentication token only in this bot profile's OS keyring; never print it.

max bot api get-my-info

Get current bot info — read (GET /me)

max bot api get-my-info

max bot api edit-my-commands

Edit current bot commands — write (PATCH /me/commands)

Changes something in MAX.

max bot api edit-my-commands [options]
OptionPurpose
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api get-chat

Get chat — read (GET /chats/{chatId})

max bot api get-chat [options]
OptionPurpose
--chat-id <value>Requested chat or channel identifier.

max bot api edit-chat

Edit chat or channel info — write (PATCH /chats/{chatId})

Changes something in MAX.

max bot api edit-chat [options]
OptionPurpose
--chat-id <value>Chat or channel identifier.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api send-action

Send action — write (POST /chats/{chatId}/actions)

Changes something in MAX.

max bot api send-action [options]
OptionPurpose
--chat-id <value>Chat identifier.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api get-pinned-message

Get pinned message — read (GET /chats/{chatId}/pin)

max bot api get-pinned-message [options]
OptionPurpose
--chat-id <value>Chat identifier to get its pinned message.

max bot api pin-message

Pin message — write (PUT /chats/{chatId}/pin)

Changes something in MAX.

max bot api pin-message [options]
OptionPurpose
--chat-id <value>Chat identifier where message should be pinned.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api unpin-message

Unpin message — write (DELETE /chats/{chatId}/pin)

Changes something in MAX.

max bot api unpin-message [options]
OptionPurpose
--chat-id <value>Chat identifier to remove pinned message.

max bot api get-membership

Get chat or channel membership — read (GET /chats/{chatId}/members/me)

max bot api get-membership [options]
OptionPurpose
--chat-id <value>Chat or channel identifier.

max bot api leave-chat

Leave chat — destructive (DELETE /chats/{chatId}/members/me)

Changes something in MAX.

max bot api leave-chat [options]
OptionPurpose
--chat-id <value>Chat or channel identifier.

max bot api get-admins

Get chat or channel admins — read (GET /chats/{chatId}/members/admins)

max bot api get-admins [options]
OptionPurpose
--chat-id <value>Chat or channel identifier.

max bot api post-admins

Set chat or channel admins — write (POST /chats/{chatId}/members/admins)

Changes something in MAX.

max bot api post-admins [options]
OptionPurpose
--chat-id <value>Chat or channel identifier.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api delete-admins

Revoke admin rights — write (DELETE /chats/{chatId}/members/admins/{userId})

Changes something in MAX.

max bot api delete-admins [options]
OptionPurpose
--chat-id <value>Chat or channel identifier.
--user-id <value>User identifier.

max bot api get-members

Get members — read (GET /chats/{chatId}/members)

max bot api get-members [options]
OptionPurpose
--chat-id <value>Chat or channel identifier.
--user-ids <value>Comma-separated list of users identifiers to get their membership. When this parameter is passed, both count and marker are ignored.
--marker <value>Marker.
--count <value>Count.

max bot api add-members

Add members — write (POST /chats/{chatId}/members)

Changes something in MAX.

max bot api add-members [options]
OptionPurpose
--chat-id <value>Chat identifier.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api remove-member

Remove member — write (DELETE /chats/{chatId}/members)

Changes something in MAX.

max bot api remove-member [options]
OptionPurpose
--chat-id <value>Chat or channel identifier.
--user-id <value>User id to remove from chat or channel.
--block <value>Set to true if user should be blocked in chat.

max bot api get-subscriptions

Get subscriptions — read (GET /subscriptions)

max bot api get-subscriptions

max bot api subscribe

Subscribe — write (POST /subscriptions)

Changes something in MAX.

max bot api subscribe [options]
OptionPurpose
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api unsubscribe

Unsubscribe — write (DELETE /subscriptions)

Changes something in MAX.

max bot api unsubscribe [options]
OptionPurpose
--url <value>URL to remove from WebHook subscriptions.

max bot api get-upload-url

Get upload URL — write (POST /uploads)

Changes something in MAX.

max bot api get-upload-url [options]
OptionPurpose
--type <value>Uploaded file type: image, audio, video, file.

max bot api get-messages

Get messages — read (GET /messages)

max bot api get-messages [options]
OptionPurpose
--chat-id <value>Chat or channel identifier to get messages in chat or channel.
--message-ids <value>Comma-separated list of message ids to get.
--from <value>Start time for requested messages - use after instead.
--to <value>End time for requested messages - use before instead.
--before <value>Messages before timestamp.
--after <value>Messages after timestamp.
--count <value>Maximum amount of messages in response.

max bot api send-message

Send message — write (POST /messages)

Changes something in MAX.

max bot api send-message [options]
OptionPurpose
--user-id <value>Fill this parameter if you want to send message to user.
--chat-id <value>Fill this if you send message to chat or channel.
--disable-link-preview <value>If false, server will not generate media preview for links in text.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api edit-message

Edit message — write (PUT /messages)

Changes something in MAX.

max bot api edit-message [options]
OptionPurpose
--message-id <value>Editing message identifier.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api delete-message

Delete message — destructive (DELETE /messages)

Changes something in MAX.

max bot api delete-message [options]
OptionPurpose
--message-id <value>Deleting message identifier.
--allow-dangerousskip confirmation for bot.messages.delete at level ask.

max bot api get-message-by-id

Get message — read (GET /messages/{messageId})

max bot api get-message-by-id [options]
OptionPurpose
--message-id <value>Message identifier (mid) to get single message in chat or channel.

max bot api get-comments

Get comments — read (GET /messages/{messageId}/comments)

max bot api get-comments [options]
OptionPurpose
--message-id <value>Message identifier (mid) of the commented message.
--comment-ids <value>Comma-separated list of comment ids to get.
--before <value>Comments before timestamp.
--after <value>Comments after timestamp.
--count <value>Maximum amount of comments in response.

max bot api send-comment

Send comment — write (POST /messages/{messageId}/comments)

Changes something in MAX.

max bot api send-comment [options]
OptionPurpose
--message-id <value>Message identifier (mid) of the commented message.
--disable-link-preview <value>If false, server will not generate media preview for links in text.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api edit-comment

Edit comment — write (PUT /messages/{messageId}/comments)

Changes something in MAX.

max bot api edit-comment [options]
OptionPurpose
--message-id <value>Message identifier (mid) of the commented message.
--comment-id <value>Editing comment identifier.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api delete-comment

Delete comment — destructive (DELETE /messages/{messageId}/comments)

Changes something in MAX.

max bot api delete-comment [options]
OptionPurpose
--message-id <value>Message identifier (mid) of the commented message.
--comment-id <value>Deleting comment identifier.
--allow-dangerousskip confirmation for bot.messages.delete at level ask.

max bot api get-comment-by-id

Get comment — read (GET /messages/{messageId}/comments/{commentId})

max bot api get-comment-by-id [options]
OptionPurpose
--message-id <value>Message identifier (mid) of the commented message.
--comment-id <value>Comment identifier (mid) to get single comment in channel.

max bot api get-video-attachment-details

Get video details — read (GET /videos/{videoToken})

max bot api get-video-attachment-details [options]
OptionPurpose
--video-token <value>Video attachment token.

max bot api answer-on-callback

Answer on callback — write (POST /answers)

Changes something in MAX.

max bot api answer-on-callback [options]
OptionPurpose
--callback-id <value>Identifies a button clicked by user. Bot receives this identifier after user pressed button as part of MessageCallbackUpdate.
--disable-link-preview <value>If true, server will not generate media preview for links in updated message text.
--body <json>the request body as JSON; - reads it from stdin.
--body-file <path>the request body from a JSON file; - is stdin.

max bot api get-updates

Get updates — write (GET /updates)

Changes something in MAX.

max bot api get-updates [options]
OptionPurpose
--limit <value>Maximum number of updates to be retrieved.
--poll-timeout <value>Timeout in seconds for long polling.
--marker <value>Pass null to get updates you didn't get yet.
--types <value>Comma separated list of update types your bot want to receive.

Exit codes

Scripts should branch on the code, not the message: wording may change, codes remain stable.

CodeMeaning
0Success
2validation_error
3configuration_error
4authentication_error
5permission_error
6not_found
7confirmation_required
8rate_limited
9timeout
10network_error
11provider_error
12provider_unavailable
13invalid_response
14outcome_unknown
130cancelled
1Any other error

0, and only 0, means the operation succeeded. 14 — outcome_unknown — means the message may have been sent: its outcome is neither confirmed nor failed. Retry only with the same --send-id.