Sends a location — a point on the map — to a user, group, or channel.

💡 latitude and longitude are sent as strings, not numbers.


Request

method is "sendLocation".

Field Type Required Description
chat_id String Yes The target chat or user.
latitude String Yes Latitude of the point.
longitude String Yes Longitude of the point.
app_id String Yes The app the message belongs to.
reference Long Yes Your local id for the message. Echoed back in messageAck so you can match them up.
name String Optional Name of the place — a venue, city, or landmark.
details String Optional Extra detail shown under the name.
to_user_id String Optional Target a single user inside a group or channel.
reply_to_message_id String Optional Set this to send the location as a reply to an existing message.
echo Integer Optional 1 returns a copy of the sent message to you. Default 0.
web_page_preview Integer Optional 1 disable preview · 2 hide the link · 3 instant view · 4 instant view without the link.
disable_notification Boolean Optional Deliver silently — the user gets no notification sound.
menu_ref String Optional Attach an existing predefined menu, shown inline beneath the message.
inline_menu Array of Menu Optional Attach a menu defined inline. Takes priority over menu_ref if both are set.
chat_settings Integer Optional 1 routes the message to the Bot Manager, used for admin-only communication.

Preconditions

Your API needs the right permission, and the right standing in the chat.

Requirement Needed for
"Send Message" permission Sending at all.
"Reply to Message" permission Only when using reply_to_message_id.
Chat type Your API must be
--- ---
User chat Already started by the user
Group A member
Channel An admin

Response

When Method What it tells you
Always messageAck The server accepted the message. Carries the new message_id and echoes your reference.
If echo = 1 message A full copy of the message as it was sent.

SDKs

SDK Call Callback
Java api.sendlocation(chatId, latitude, longitude, reference, appId); onMessagAckCallback(MessageAck msgAck)
JavaScript api.sendlocation(chatId, latitude, longitude, reference, appId); onMessagAckCallback(msgAck)
Python napi.send_location(chat_id=chat_id, latitude=latitude, longitude=longitude, reference=reference, app_id=app_id) on_message_ack_callback(self, msg_ack)

💡 To set name and details, build a LocationOutMessage directly and send it with the generic send — the short helpers above do not take them.

Example

Request

{
  "method": "sendLocation",
  "chat_id": "90090684438172188",
  "latitude": "45.3178",
  "longitude": "-75.6659",
  "name": "Ottawa International Airport",
  "details": "International Airport",
  "reference": 111111146,
  "app_id": "90090684293000559",
  "echo": 1
}
api.sendlocation(chatId, latitude, longitude, reference, appId);
api.sendlocation(chatId, latitude, longitude, reference, appId);
napi.send_location(chat_id=chat_id, latitude=latitude, longitude=longitude, reference=reference, app_id=app_id)