Complete Telegram API Reference
The static Api\Telegram facade is the single entry point to every
Bot API method. Each method returns a fluent, immutable object
(every setter returns a new cloned instance), so you can reuse a
request as a "template" without worrying about accidental mutation.
use Aicrion\Tandroid\Api\Telegram; Telegram::message() ->to($chatId) ->text('Hello, world') ->replyTo($messageId) ->markup($keyboard->render()['reply_markup']) ->send();
Telegram::configure($httpClient, $token) is called automatically
by Kernel::boot() — in your own application code you'll almost
never need to call it manually.
Full Method Table
| Facade method | Returns | Corresponding Bot API |
|---|---|---|
message() |
SendMessageRequest |
sendMessage |
edit($chatId, $messageId) |
MessageEditor |
editMessageText/editMessageReplyMarkup |
message_($fromChatId, $messageId) |
MessageForwarder |
forwardMessage/copyMessage |
reaction($chatId, $messageId) |
ReactionRequest |
setMessageReaction |
photo() |
Media\SendPhotoRequest |
sendPhoto |
video() |
Media\SendVideoRequest |
sendVideo |
document() |
Media\SendDocumentRequest |
sendDocument |
audio() |
Media\SendAudioRequest |
sendAudio |
voice() |
Media\SendVoiceRequest |
sendVoice |
animation() |
Media\SendAnimationRequest |
sendAnimation |
videoNote() |
Media\SendVideoNoteRequest |
sendVideoNote |
location() |
Media\SendLocationRequest |
sendLocation |
venue() |
Media\SendVenueRequest |
sendVenue |
contact() |
Media\SendContactRequest |
sendContact |
dice() |
Media\SendDiceRequest |
sendDice |
poll() |
Media\SendPollRequest |
sendPoll |
mediaGroup() |
Media\MediaGroupRequest |
sendMediaGroup |
chatAction() |
ChatActionRequest |
sendChatAction |
chat($chatId) |
Admin\ChatAdmin |
ban/restrict/promote/pin/... |
inviteLinks($chatId) |
Admin\ChatInviteLinkManager |
create/edit/revoke invite link |
joinRequests() |
Invite\JoinRequestManager |
approve/decline chat join request |
forum($chatId) |
Forum\ForumTopicManager |
forum topic management |
business($businessConnectionId) |
Business\BusinessAccount |
Telegram Business API |
gifts() |
Gifts\GiftManager |
send/manage gifts |
stickers() |
Stickers\StickerSetManager |
sticker set management |
invoice() |
Payments\InvoiceRequest |
sendInvoice |
preCheckout() |
Payments\PreCheckoutHandler |
answerPreCheckoutQuery |
starTransactions() |
Payments\StarTransactions |
Telegram Stars transactions |
inline($inlineQueryId) |
Inline\InlineQueryAnswer |
answerInlineQuery |
webApp($webAppQueryId) |
Inline\WebAppQueryAnswer |
answerWebAppQuery |
guestQuery($guestQueryId) |
Guest\GuestQueryAnswer |
answerGuestQuery (Guest mode — see Advanced Features) |
callback($callbackQueryId) |
CallbackQueryAnswer |
answerCallbackQuery |
commands() |
Menu\CommandMenu |
setMyCommands/getMyCommands |
chatInfo($chatId) |
Info\ChatInfo |
getChat/getChatMember/... |
botInfo() |
Info\BotInfo |
getMe/setMyName/... |
webhook() |
Kernel\Transport\WebhookManager |
setWebhook/deleteWebhook/getWebhookInfo |
polling() |
Kernel\Transport\PollingManager |
getUpdates |
managedAccess() |
Managed\ManagedBotAccess |
manage access for managed bots (see Advanced Features) |
Example: Send, Edit, and React
$sent = Telegram::message()->to($chatId)->text('Processing... ⏳')->send(); Telegram::edit($chatId, $sent['result']['message_id']) ->text('Done ✅') ->send(); // see MessageEditor for the exact signature Telegram::reaction($chatId, $sent['result']['message_id']) ->emoji('👍') ->send();
Example: Chat Administration
Telegram::chat($chatId)->ban(userId: 123456); Telegram::chat($chatId)->promote(userId: 123456, canPinMessages: true); Telegram::inviteLinks($chatId)->create(name: 'VIP Invite', memberLimit: 50);
Example: Answering a Callback Query with a Custom Toast
Every callback query is answered by default by ActivityManager
with an empty response (Telegram::callback($id)->send()) to stop
the client-side loading spinner. For a custom toast, call this
yourself from your Activity — the subsequent automatic reply from
ActivityManager is harmless since Telegram ignores a duplicate
answerCallbackQuery:
Telegram::callback($update->raw['callback_query']['id']) ->toast('Option saved successfully', asAlert: false) ->send();
Raw Access (Escape Hatch)
If a Bot API method doesn't yet have a dedicated wrapper, every
internal request class uses
Symfony\Contracts\HttpClient\HttpClientInterface — you can use the
same HTTP client directly:
$kernel->httpClient()->request('POST', "https://api.telegram.org/bot{$token}/someNewMethod", [ 'json' => ['chat_id' => $chatId, /* ... */], ]);