إرسال إحداثيات الموقع الجغرافي
إرسال خطوط الطول والعرض وخريطة الموقع عبر الواتساب.
تسجيل الدخول مطلوب
سجل الدخول لاستبدال المعرفات (Instance ID) ورمز الوصول (Access Token) بمعلومات حسابك الحقيقي لاختبار ال API مباشرة.
تسجيل الدخوللا توجد معاملات استعلام مطلوبة
هذه النهاية الطرفية لا تتوقع بيانات في الرابط.
توصيات
Use "reply_to" to maintain conversation context.
Handle distinct message types (text, image, video) appropriately.
Implement a robust retry mechanism for failed sends.
Precision Positioning: Mastering the Geographic Location Engine
Location sharing is a powerful tool for bridging the gap between the digital conversation and the physical world. Whether you are helping a customer find a brick-and-mortar store, directing a delivery rider to a precise drop-off point, or organizing a physical meetup, the /v2/send/location endpoint provides a reliable way to send interactive map pins directly into a WhatsApp chat.
🏗️ The Geolocation Pipeline: From Data to Pin
When you call the /send/location endpoint, Wawp’s engine translates raw geographic data into a rich, interactive bubble on the recipient's phone:
- Coordinate Verification: The engine accepts
latitudeandlongitudeas decimal strings. It validates that these coordinates fall within the valid ranges (-90 to 90 for latitude, -180 to 180 for longitude). - Metadata Injection: The
titleandmessagefields are injected into the message's metadata. These don't just appear on the bubble; they are often used as the "Label" when the user clicks the pin and opens it in external apps like Google Maps or Waze. - Interactive Rendering: Wawp ensures the resulting message is rendered with a clickable map thumbnail. This thumbnail is generated by the WhatsApp network based on the coordinates provided, giving the user an instant visual "Context" of the surrounding area.
🛡️ Strategic Best Practices for Geographic Data
1. Decimal Precision (The Roof-Top Rule)
For location data, precision is everything.
- Developer Action: Use at least 6 decimal places for your coordinates (e.g.,
38.893725). This level of precision is accurate to approximately 0.1 meters—the difference between a pin landing on a building's roof and landing in the middle of a busy intersection. - Safety: Avoid rounding coordinates in your backend, as even slight changes in the 4th decimal place can shift a location by dozens of meters.
2. Crafting Meaningful Labels
The title and message fields are your chance to provide brand clarity.
- Title (Place Name): Use the name of the destination (e.g., "Grand Plaza Hotel - Main Entrance").
- Message (Context/Address): Use this for the specific address or helpful hints (e.g., "1st Floor, next to the fountain").
- UX Impact: High-quality labels reduce user anxiety and make the automated message feel deliberate and professional.
3. Static vs. Dynamic Locations
- Static Pins: This endpoint sends a Static Pin. It represents a specific "Snapshot" in space.
- Live Location: Note that Wawp currently focuses on static pins for high-concurrency business flows. If your use case requires a real-time moving dot (Live Location), we recommend combining static pins with regular text updates or external tracking links via
/v2/send/link-preview.
🧩 Advanced Use Cases
Last-Mile Delivery Support
In a delivery app, as soon as the rider clicks "Arrived," your system can automatically send the exact location pin to the customer. This enables the customer to open the pin in their preferred navigation app to cross-verify the rider's position, drastically reducing support calls.
Geo-Fenced Personalized Offers
If your system detects a user is near a specific retail branch, you can trigger an automated "Welcome" message that includes the location pin for that exact branch. Using the reply_to parameter, you can link this location to a specific discount coupon message, creating a highly relevant "Online-to-Offline" funnel.
🛠️ Common Pitfalls and Solutions
- Swapped Coordinates: Mixing up latitude and longitude is a common developer error that results in pins landing in the middle of the ocean. Always double-check your coordinate pairs.
- Blank Labels: Sending a location with an empty
titleoften results in a generic "Location" bubble. To maintain brand authority, always provide a descriptive title. - Coordinate Strings: Ensure you send the coordinates as strings through the API to prevent floating-point precision loss that sometimes occurs with JSON number types at high decimal counts.
Summary of Capabilities:
- Send interactive, clickable static map pins with custom titles and addresses.
- High-precision support for decimal coordinates (latitude/longitude).
- Seamless integration with Google Maps, Apple Maps, and Waze for the end-user.
- Support for complex thread-nesting via the
reply_toparameter. - Reliable success reporting with unique
message_idgeneration for full delivery tracking.
البارامترات
قم بتهيئة المعاملات المطلوبة للتفاعل مع نقطة النهاية هذه. جميع وسائط الاستعلام والبيانات مدرجة أدناه مع تفاصيلها.
محتوى الطلب
يرسل كـ JSONstring | Unique ID of the WhatsApp session مثال: | ||
string | API access token مثال: | ||
string | Recipient's WhatsApp number مثال: | ||
string | Geographic latitude (e.g. 38.8937255) مثال: | ||
string | Geographic longitude (e.g. -77.0969763) مثال: | ||
string | Name of the place (e.g., 'Our Office') مثال: | ||
string | Address or additional description text مثال: | ||
string | — | Message ID to reply to مثال: |
برمج بالذكاء الاصطناعي باستخدام Wawp MCP
MCP READYقم بربط الـ API مباشرة مع Cursor أو Windsurf أو Claude Desktop، ودع الذكاء الاصطناعي يكتب لك كود الربط وينفذه تلقائياً!
أمثلة الكود
استخدم أمثلة الكود الجاهزة لدمج واجهة برمجة التطبيقات (API) في مشروعك بسرعة وكفاءة. اختر لغة البرمجة والمكتبة التي تفضلها.
الردود المتوقعة
استكشف كافة الردود والنتائج المحتملة من الخادم. قمنا بتوثيق كل كود حالة (Status Code) مع أمثلة للبيانات لتسهيل معالجة الأخطاء والنجاح.
Example
{
"_data": {
"id": {
"fromMe": true,
"remote": "000000000000@c.us",
"id": "MSG_ID_123456",
"_serialized": "true_000000000000@c.us_MSG_ID_123456"
},
"viewed": false,
"body": "BASE64_IMAGE_DATA",
"type": "image",
"t": 1759108866,
"from": {
"server": "c.us",
"user": "111111111111",
"_serialized": "111111111111@c.us"
},
"to": {
"server": "c.us",
"user": "000000000000",
"_serialized": "000000000000@c.us"
},
"ack": 0,
"isNewMsg": true,
"star": false,
"kicNotified": false,
"caption": "Here's your requested image.",
"deprecatedMms3Url": "https://example.com/media-url",
"directPath": "/media/direct/path/example",
"mimetype": "image/jpeg",
"filehash": "FILE_HASH_PLACEHOLDER",
"encFilehash": "ENC_FILE_HASH_PLACEHOLDER",
"size": 192487,
"mediaKey": "MEDIA_KEY_PLACEHOLDER",
"mediaKeyTimestamp": 1759108865,
"streamable": false,
"mediaHandle": null,
"isFromTemplate": false,
"pollInvalidated": false,
"isSentCagPollCreation": false,
"latestEditMsgKey": null,
"latestEditSenderTimestampMs": null,
"mentionedJidList": {
},
"groupMentions": {
},
"isEventCanceled": false,
"eventInvalidated": false,
"isVcardOverMmsDocument": false,
"isForwarded": false,
"isQuestion": false,
"questionReplyQuotedMessage": null,
"questionResponsesCount": 0,
"readQuestionResponsesCount": 0,
"labels": {
},
"hasReaction": false,
"disappearingModeInitiator": "chat",
"disappearingModeTrigger": "chat_settings",
"productHeaderImageRejected": false,
"lastPlaybackProgress": 0,
"isDynamicReplyButtonsMsg": false,
"isCarouselCard": false,
"parentMsgId": null,
"callSilenceReason": null,
"isVideoCall": false,
"callDuration": null,
"callCreator": null,
"callParticipants": null,
"isCallLink": null,
"callLinkToken": null,
"isMdHistoryMsg": false,
"stickerSentTs": 0,
"lastUpdateFromServerTs": 0,
"invokedBotWid": null,
"bizBotType": null,
"botResponseTargetId": null,
"botPluginType": null,
"botPluginReferenceIndex": null,
"botPluginSearchProvider": null,
"botPluginSearchUrl": null,
"botPluginSearchQuery": null,
"botPluginMaybeParent": false,
"botReelPluginThumbnailCdnUrl": null,
"botMessageDisclaimerText": null,
"botMsgBodyType": null,
"requiresDirectConnection": false,
"bizContentPlaceholderType": null,
"hostedBizEncStateMismatch": false,
"senderOrRecipientAccountTypeHosted": false,
"placeholderCreatedWhenAccountIsHosted": false,
"galaxyFlowDisabled": false,
"links": {
}
},
"mediaKey": "MEDIA_KEY_PLACEHOLDER",
"id": {
"fromMe": true,
"remote": "000000000000@c.us",
"id": "MSG_ID_123456",
"_serialized": "true_000000000000@c.us_MSG_ID_123456"
},
"ack": 0,
"hasMedia": true,
"body": "Here's your requested image.",
"type": "image",
"timestamp": 1759108866,
"from": "111111111111@c.us",
"to": "000000000000@c.us",
"deviceType": "android",
"isForwarded": false,
"forwardingScore": 0,
"isStatus": false,
"isStarred": false,
"fromMe": true,
"hasQuotedMsg": false,
"hasReaction": false,
"vCards": {
},
"mentionedIds": {
},
"groupMentions": {
},
"isGif": false,
"links": {
}
}Command Palette
Search for a command to run...