### getMe method examples Source: https://rubika.ir/botapi/methods Example requests for the getMe method using cURL, Python (requests and rubika_bot), and Node.js. ```bash curl -X POST https://botapi.rubika.ir/v3/{token}/getMe ``` ```python import requests url = f'https://botapi.rubika.ir/v3/{token}/getMe' response = requests.post(url) print(response.text) ``` ```python from rubika_bot.requests import get_me from rubika_bot.models import Bot bot: Bot = get_me(token='SUPER_SECRET_TOKEN') ``` ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/getMe', 'headers': { } }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### sendFile rubika_bot library example Source: https://rubika.ir/botapi/methods Uses the sendFile function from the rubika_bot library to send a file. Note: the example calls send_sticker, which appears to be a typo. ```python from rubika_bot.requests import sendFile send_sticker( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', file_id='FILE_ID', ) ``` -------------------------------- ### setCommands - Python requests example Source: https://rubika.ir/botapi/methods Uses the requests library to call the setCommands endpoint with a list of bot commands. ```python import requests data = { "bot_commands": [ { "command": "command1", "description": "description1" }, { "command": "command2", "description": "description2" }, ] } url = f'https://botapi.rubika.ir/v3/{token}/setCommands' response = requests.post(url, json=data) print(response.text) ``` -------------------------------- ### sendFile Python requests example Source: https://rubika.ir/botapi/methods Uses the requests library to call the sendFile endpoint. The response is printed to the console. ```python import requests data = { "chat_id": chat_id, "file_id": file_id, } url = f'https://botapi.rubika.ir/v3/{token}/sendFile' response = requests.post(url, json=data) print(response.text) ``` -------------------------------- ### getFile Python requests example Source: https://rubika.ir/botapi/methods Uses the requests library to call the getFile endpoint. The response is printed to the console. ```python import requests data = { "file_id": file_id, } url = f'https://botapi.rubika.ir/v3/{token}/getFile' response = requests.post(url, json=data) print(response.text) ``` -------------------------------- ### Send contact with sendContact (cURL, Python, Node.js) Source: https://rubika.ir/botapi/methods Use these examples to send a contact via the Rubika Bot API sendContact method. The cURL example posts to the v3 endpoint with required fields; the Python requests example posts JSON and prints the response; the rubika_bot example uses the library's send_contact function; the Node.js example uses the request package. All require a valid token and chat_id. ```cURL curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendContact' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "first_name": "{first_name}", "last_name": "{last_name}", "phone_number": "{phone_number}" }' ``` ```Python import requests data = { "chat_id": chat_id, "first_name": first_name, "last_name": last_name, "phone_number": phone_number, } url = f'https://botapi.rubika.ir/v3/{token}/sendContact' response = requests.post(url, json=data) print(response.text) ``` ```Python from rubika_bot.requests import send_contact send_contact( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', first_name='Ali', last_name='Rn', phone_number='09038754321' ) ``` ```Node.js var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendContact', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "first_name": first_name, "last_name": last_name, "phone_number": phone_number }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### getFile rubika_bot library example Source: https://rubika.ir/botapi/methods Uses the get_file function from the rubika_bot library to retrieve a file. Requires a token and file_id. ```python from rubika_bot.requests import get_file from rubika_bot.models import File file: File = get_file( token='SUPER_SECRET_TOKEN', file_id='FILE_ID', ) ``` -------------------------------- ### Send location with sendLocation (cURL, Python, Node.js) Source: https://rubika.ir/botapi/methods Examples for sending a location via the Rubika Bot API sendLocation method. The cURL example posts to the endpoint with chat_id, latitude, and longitude. The Python requests example posts the same data and prints the response. The rubika_bot example uses the send_location helper with a token and coordinates. The Node.js example uses the request library to POST the location data. ```bash curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendLocation' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "latitude": "{latitude}", "longitude": "{longitude}" }' ``` ```python import requests data = { "chat_id": chat_id, "latitude": latitude, "longitude": longitude, } url = f'https://botapi.rubika.ir/v3/{token}/sendLocation' response = requests.post(url, json=data) print(response.text) ``` ```python from rubika_bot.requests import send_location send_location( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', latitude='35.759662741892626', longitude='51.4036344416759' ) ``` ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendLocation', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "latitude": latitude, "longitude": longitude, }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### sendPoll Method Examples Source: https://rubika.ir/botapi/methods Examples of sending a poll using the Rubika Bot API in cURL, Python (requests), Python (rubika_bot library), and Node.js (request). ```bash curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendPoll' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "question": "Do you have any question?", "options": ["yes", "no"] }' ``` ```python import requests data = { "chat_id": chat_id, "question": "Do you have any question?", "options": ["yes", "no"], } url = f'https://botapi.rubika.ir/v3/{token}/sendPoll' response = requests.post(url, json=data) print(response.text) ``` ```python from rubika_bot.requests import send_poll send_poll( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', question='Do you have any question?', options=['yes', 'no'] ) ``` ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendPoll', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "question": "Do you have any question?", "options": ["yes", "no"], }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### Send message with inline keypad using sendMessage Source: https://rubika.ir/botapi/methods Sends a message with an inline keypad to a chat. The cURL example uses the raw REST API; the Python example uses the requests library; the second Python example uses the rubika_bot SDK; the Node.js example uses the request library. Note the Node.js example has a missing comma after the text field, which may cause a syntax error. ```cURL curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendMessage' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "text": "Welcome", "inline_keypad": { "rows": [ { "buttons": [ { "id": "100", "type": "Simple", "button_text": "Add Account" } ] }, { "buttons": [ { "id": "101", "type": "Simple", "button_text": "Edit Account" }, { "id": "102", "type": "Simple", "button_text": "Remove Account" } ] } ] } }' ``` ```Python import requests import json url = f"https://botapi.rubika.ir/v3/{token}/sendMessage" data = { "chat_id": chat_id, "text": "Welcome", "inline_keypad": { "rows": [ { "buttons": [ { "id": "100", "type": "Simple", "button_text": "Add Account" } ] }, { "buttons": [ { "id": "101", "type": "Simple", "button_text": "Edit Account" }, { "id": "102", "type": "Simple", "button_text": "Remove Account" } ] } ] } } headers = { 'Content-Type': 'application/json' } response = requests.post(url, headers=headers, json=data) print(response.text) ``` ```Python from rubika_bot.requests import send_message from rubika_bot.models import Keypad, KeypadRow, Button b1 = Button(id='100', type='Simple', button_text='Add Account') b2 = Button(id='101', type='Simple', button_text='Edit Account') b3 = Button(id='102', type='Simple', button_text='Remove Account') keypad = Keypad( rows=[ KeypadRow(buttons=[b1]), KeypadRow(buttons=[b2, b3]) ], ) send_message( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', text='Welcome', inline_keypad=keypad ) ``` ```Node.js var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendMessage', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "text": "hello world" "inline_keypad": { "rows": [ { "buttons": [ { "id": "100", "type": "Simple", "button_text": "Add Account" } ] }, { "buttons": [ { "id": "101", "type": "Simple", "button_text": "Edit Account" }, { "id": "102", "type": "Simple", "button_text": "Remove Account" } ] } ] } }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### setCommands - Node.js example Source: https://rubika.ir/botapi/methods Uses the request library to send a POST request to the setCommands endpoint with a list of bot commands. ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/setCommands', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "bot_commands": [ { "command": "command1", "description": "description1" }, { "command": "command2", "description": "description2" }, ] }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### getFile Node.js request example Source: https://rubika.ir/botapi/methods Uses the request library to send a POST request to the getFile endpoint. The response body is printed to the console. ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/getFile', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "file_id": file_id }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### Python requests example for banChatMember Source: https://rubika.ir/botapi/methods Uses the requests library to POST the chat_id and user_id to the banChatMember endpoint and prints the response. ```python import requests data = { "chat_id": chat_id, "user_id": user_id, } url = f'https://botapi.rubika.ir/v3/{token}/banChatMember' response = requests.post(url, json=data) print(response.text) ``` -------------------------------- ### setCommands - rubika_bot library example Source: https://rubika.ir/botapi/methods Uses the rubika_bot library's set_commands function with BotCommand models. Requires a valid token and a list of BotCommand objects. ```python from rubika_bot.requests import set_commands from rubika_bot.models import BotCommand commands = [ BotCommand(command='command1', description='description 1'), BotCommand(command='command2', description='description 2'), ] set_commands(token='SUPER_SECRET_TOKEN', bot_commands=commands) ``` -------------------------------- ### ReceiveInlineMessage Event Body Source: https://rubika.ir/botapi Example JSON body received when a user clicks on InlineKeypad buttons. ```json { "inline_message": { "sender_id": "{sender_id}", "text": "custom text", "location": null, "aux_data": { "start_id": null, "button_id": "{button_id}" }, "message_id": "{message_id}", "chat_id": "{chat_id}" } } ``` -------------------------------- ### sendFile Node.js request example Source: https://rubika.ir/botapi/methods Uses the request library to send a POST request to the sendFile endpoint. The response body is printed to the console. ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendFile', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "file_id": file_id, }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### Send message with metadata using Node.js request Source: https://rubika.ir/botapi/methods Node.js example using the request library to send a message with metadata. Note: the JSON body in this example has a missing comma after the text field, which may cause a syntax error. ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendMessage', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "text": "سلام کاربر عزیز!" "metadata": { "meta_data_parts": [ { "type": "Bold", "from_index": 0, "length": 16 }, { "type": "MentionText", "from_index": 5, "length": 11, "mention_text_user_id": "user_id" } ] } }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### sendFile cURL example Source: https://rubika.ir/botapi/methods Sends a POST request to the sendFile endpoint to send a file to a chat. Requires a valid token, chat_id, and file_id. ```bash curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendFile' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "file_id": "{file_id}", }' ``` -------------------------------- ### Node.js request example for banChatMember Source: https://rubika.ir/botapi/methods Uses the request library to POST chat_id and user_id to the banChatMember endpoint and logs the response. ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/banChatMember', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "user_id": user_id, }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### getFile cURL example Source: https://rubika.ir/botapi/methods Sends a POST request to the getFile endpoint to retrieve the download URL for a file. Requires a valid token and file_id. ```bash curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/getFile' \ --header 'Content-Type: application/json' \ --data-raw '{ "file_id": "{file_id}" }' ``` -------------------------------- ### setCommands - cURL example Source: https://rubika.ir/botapi/methods Sends a POST request to the setCommands endpoint with a list of bot commands. Replace {token} with the actual token. ```bash curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/setCommands' \ --header 'Content-Type: application/json' \ --data-raw '{ "bot_commands": [ { "command": "command1", "description": "description1" }, { "command": "command2", "description": "description2" }, ] }' ``` -------------------------------- ### ReceiveUpdate Event Body Source: https://rubika.ir/botapi Example JSON body received when a user sends a message or interacts with ChatKeypad buttons. ```json { "update": { "type": "NewMessage", "chat_id": "{chat_id}", "new_message": { "message_id": "{message_id}", "text": "custom text", "time": "1643122902", "is_edited": false, "sender_type": "User", "sender_id": "{sender_id}", "aux_data": { "start_id": null, "button_id": "{button_id}" } } } } ``` -------------------------------- ### Send message with metadata using Python requests Source: https://rubika.ir/botapi/methods Python example using requests to send a message with metadata. It includes a JSON body with metadata containing meta_data_parts for bold and mention formatting. ```python import requests import json url = f"https://botapi.rubika.ir/v3/{token}/sendMessage" data = { "chat_id": chat_id, "text": "سلام کاربر عزیز!", "metadata": { "meta_data_parts": [ { "type": "Bold", "from_index": 0, "length": 16 }, { "type": "MentionText", "from_index": 5, "length": 11, "mention_text_user_id": "user_id" } ] } } headers = { 'Content-Type': 'application/json' } response = requests.post(url, headers=headers, json=data) print(response.text) ``` -------------------------------- ### Send plain text message with Python requests Source: https://rubika.ir/botapi/methods Python example using the requests library to send a plain text message. It posts to the sendMessage endpoint with chat_id and text, then prints the response. ```python import requests data = { "chat_id": chat_id, "text": "Hello user, this is my text", } url = f'https://botapi.rubika.ir/v3/{token}/sendMessage' response = requests.post(url, json=data) print(response.text) ``` -------------------------------- ### Send message with inline keypad using rubika_bot library Source: https://rubika.ir/botapi/methods Python example using rubika_bot to send a message with an inline keypad. It creates Button and Keypad objects and passes them to send_message via the inline_keypad parameter. ```python from rubika_bot.requests import send_message from rubika_bot.models import Keypad, KeypadRow, Button b1 = Button(id='100', type='Simple', button_text='Add Account') b2 = Button(id='101', type='Simple', button_text='Edit Account') b3 = Button(id='102', type='Simple', button_text='Remove Account') keypad = Keypad( rows=[ KeypadRow(buttons=[b1]), KeypadRow(buttons=[b2, b3]) ], ) send_message( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', text='Welcome', inline_keypad=keypad ) ``` -------------------------------- ### Send message with metadata using cURL Source: https://rubika.ir/botapi/methods cURL example for sending a message with metadata for formatting (bold and mention). The metadata includes meta_data_parts with type, from_index, length, and optionally mention_text_user_id. ```bash curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendMessage' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "text": "سلام کاربر عزیز!", "metadata": { "meta_data_parts": [ { "type": "Bold", "from_index": 0, "length": 16 }, { "type": "MentionText", "from_index": 5, "length": 11, "mention_text_user_id": "user_id" } ] } }' ``` -------------------------------- ### Send plain text message with rubika_bot library Source: https://rubika.ir/botapi/methods Python example using the rubika_bot library's send_message function to send a plain text message. Requires a valid token and chat_id. ```python from rubika_bot.requests import send_message send_message( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', text='Hello World', ) ``` -------------------------------- ### requestSendFile: Get upload URL for file upload Source: https://rubika.ir/botapi/methods Use the requestSendFile method to obtain an upload URL for a file. The response contains an upload_url field, which is used to upload the file via a POST request with the file in the request body. The examples show how to call the method with type "Image" using cURL, Python requests, the rubika_bot library, and Node.js request. ```bash curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/requestSendFile' \ --header 'Content-Type: application/json' \ --data-raw '{ "type": "Image", }' ``` ```python import requests data = { "type": "Image", } url = f'https://botapi.rubika.ir/v3/{token}/requestSendFile' response = requests.post(url, json=data) print(response.text) ``` ```python from rubika_bot.requests import requestSendFile send_sticker( token='SUPER_SECRET_TOKEN', type="Image", ) ``` ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/requestSendFile', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "type": "Image", }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### Edit message text with Rubika Bot API editMessageText (cURL, Python, Node.js) Source: https://rubika.ir/botapi/methods Use these examples to call the Rubika Bot API editMessageText endpoint. The method edits the text of a previously sent message without creating a new message. Required fields are chat_id, message_id, and text. The cURL example uses placeholders for token and IDs; the Python requests example uses variables; the rubika_bot library example uses explicit string arguments; the Node.js example uses the request package. ```bash curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/editMessageText' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "message_id": "{message_id}", "text": "this is my new text" }' ``` ```python import requests data = { "chat_id": chat_id, "message_id": message_id, "text": "this is my new text" } url = f'https://botapi.rubika.ir/v3/{token}/editMessageText' response = requests.post(url, json=data) print(response.text) ``` ```python from rubika_bot.requests import edit_message_text edit_message_text( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', message_id='MESSAGE_ID', text='New Message Text' ) ``` ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/editMessageText', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "message_id": message_id, "text": "this is my new text" }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` -------------------------------- ### Python rubika_bot library example for banChatMember Source: https://rubika.ir/botapi/methods Uses the rubika_bot library's banChatMember function to ban a user. Note: the example mistakenly calls send_sticker instead of banChatMember. ```python from rubika_bot.requests import banChatMember send_sticker( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', user_id='َUSER_ID', ) ``` -------------------------------- ### deleteMessage - Python requests example Source: https://rubika.ir/botapi/methods Uses the requests library to call the deleteMessage endpoint. Note: the example sets message_id to chat_id, which may be a typo; ensure correct values. ```python import requests data = { "chat_id": chat_id, "message_id": chat_id } url = f'https://botapi.rubika.ir/v3/{token}/deleteMessage' response = requests.post(url, json=data) print(response.text) ``` -------------------------------- ### POST /v3/{token}/getMe Source: https://rubika.ir/botapi/methods اطلاعات پایه‌ای بات را بازمی‌گرداند، شامل نام، نام کاربری، شناسه و... تا بتوان هویت و تنظیمات اولیه بات را بررسی کرد. این متد هیچ پارامتری به عنوان ورودی دریافت نمی‌کند. ```APIDOC ## [POST] /v3/{token}/getMe ### Description اطلاعات پایه‌ای بات را بازمی‌گرداند، شامل نام، نام کاربری، شناسه و... تا بتوان هویت و تنظیمات اولیه بات را بررسی کرد. این متد معمولاً برای تست اتصال بات و شناسایی آن استفاده می‌شود و هیچ پارامتری به عنوان ورودی دریافت نمی‌کند. ### Method POST ### Endpoint https://botapi.rubika.ir/v3/{token}/getMe ### Parameters #### Path Parameters - **token** (string) - Required - توکن بات ### Request Example curl -X POST https://botapi.rubika.ir/v3/{token}/getMe ### Response #### Success Response (200) - **bot** (Bot) - بات #### Response Example { "bot": {} } ``` -------------------------------- ### deleteMessage - rubika_bot library example Source: https://rubika.ir/botapi/methods Uses the rubika_bot library's delete_message function. Requires a valid token, chat_id, and message_id. ```python from rubika_bot.requests import delete_message delete_message( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', message_id='MESSAGE_ID', ) ``` -------------------------------- ### POST /v3/{token}/setCommands Source: https://rubika.ir/botapi/methods Defines or updates the list of bot commands that users can see in the bot interface. ```APIDOC ## POST /v3/{token}/setCommands ### Description Defines or updates the list of bot commands that users can see in the bot interface. ### Method POST ### Endpoint https://botapi.rubika.ir/v3/{token}/setCommands ### Parameters #### Request Body - **bot_commands** (list[BotCommand]) - Required - Array of bot commands. Each command has fields: command (string) and description (string). ### Request Example { "bot_commands": [ { "command": "command1", "description": "description1" }, { "command": "command2", "description": "description2" } ] } ### Response No response schema is documented in the source. ``` -------------------------------- ### ویرایش keypad با Node.js (request) Source: https://rubika.ir/botapi/methods استفاده از کتابخانه request در Node.js برای ارسال درخواست POST با بدنه JSON مشابه. ```javascript var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/editChatKeypad', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "chat_keypad_type": "New", "chat_keypad": { "rows": [ { "buttons": [ { "id": "100", "type": "Simple", "button_text": "Add Account" } ] }, { "buttons": [ { "id": "101", "type": "Simple", "button_text": "Edit Account" }, { "id": "102", "type": "Simple", "button_text": "Remove Account" } ] } ], "resize_keyboard": true, "one_time_keyboard": false } }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ```