logo
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

json
{ "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 }
java
api.sendlocation(chatId, latitude, longitude, reference, appId);
javascript
api.sendlocation(chatId, latitude, longitude, reference, appId);
python
napi.send_location(chat_id=chat_id, latitude=latitude, longitude=longitude, reference=reference, app_id=app_id)

Response

json
{ "method": "messageAck", "ack": { "reference": 111111146, "date": 1741983193944, "gmid": 24, "message_id": "d1_PjZpr6mX126266" } }
And, because echo was 1:
json
{ "method": "message", "app_id": 90090684293000559, "message": { "message_id": "d1_PjZpr6mX126266", "reference": 111111146, "date": 1741983193944, "gmid": "24", "type": "location", "location": { "latitude": "45.3178", "longitude": "-75.6659", "name": "Ottawa International Airport", "details": "International Airport" }, "chat": { "id": "90090684438172188", "title": "New Chat", "type": "Group" }, "from": { "id": "90091783822039252", "name": "My First API", "type": "Bot", "terminal": "API" } } }

Powered by Notaku