Appearance
Send Poll Message
About 609 wordsAbout 2 min
Send Poll Messages
This endpoint allows you to send different types of messages—including text, media, location, and polls—to a specific WhatsApp group by providing the group's JID.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
number | string | Yes | Recipient phone number in any format (digits only extracted internally). |
message_type | string | Yes | Type of message to send. Supported: poll. |
poll_name | string | Yes | Title of the poll (required when message_type = poll). |
poll_options | array | Yes | List of poll options (required for poll messages). |
allow_multiple_answers | boolean | Yes | Whether users can select more than one answer in the poll. |
API Endpoint
POST https://app.rapiwa.com/api/send-messageHeader
Content-Type: application/json
Authorization: Bearer Your_Device_KeyBody
{
"number": "+88017XXXXXXXXX",
"message_type": "poll",
"poll_name": "Best color?",
"poll_options": ["Red", "Blue", "Green"],
"allow_multiple_answers": false
}###Response:
{
"success": true,
"message_type": "poll",
"message_id": "3EB0FAC204D805F0E22293",
"to": "XXXXXXXXXXXXX"
}Code examples
bash
curl -X POST "https://app.rapiwa.com/api/send-message" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Your_Device_Key" \
-d '{"number":"+88017XXXXXXXXX","message_type":"poll","poll_name":"Best color?","poll_options":["Red","Blue","Green"],"allow_multiple_answers":false}'python
import requests
url = "https://app.rapiwa.com/api/send-message"
headers = {"Content-Type": "application/json", "Authorization": "Bearer Your_Device_Key"}
payload = {"number": "+88017XXXXXXXXX", "message_type": "poll", "poll_name": "Best color?", "poll_options": ["Red", "Blue", "Green"], "allow_multiple_answers": False}
requests.post(url, json=payload, headers=headers)javascript
await fetch('https://app.rapiwa.com/api/send-message', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer Your_Device_Key' },
body: JSON.stringify({ number: '+88017XXXXXXXXX', message_type: 'poll', poll_name: 'Best color?', poll_options: ['Red', 'Blue', 'Green'], allow_multiple_answers: false })
});php
<?php
$data = ['number' => '+88017XXXXXXXXX', 'message_type' => 'poll', 'poll_name' => 'Best color?', 'poll_options' => ['Red', 'Blue', 'Green'], 'allow_multiple_answers' => false];
$options = ['http' => ['header' => "Content-Type: application/json\r\nAuthorization: Bearer Your_Device_Key\r\n", 'method' => 'POST', 'content' => json_encode($data)]];
file_get_contents('https://app.rapiwa.com/api/send-message', false, stream_context_create($options));ruby
require 'net/http'
require 'json'
uri = URI('https://app.rapiwa.com/api/send-message')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer Your_Device_Key'
request.body = { number: '+88017XXXXXXXXX', message_type: 'poll', poll_name: 'Best color?', poll_options: ['Red', 'Blue', 'Green'], allow_multiple_answers: false }.to_json
Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(request) }go
payload := map[string]interface{}{"number": "+88017XXXXXXXXX", "message_type": "poll", "poll_name": "Best color?", "poll_options": []string{"Red", "Blue", "Green"}, "allow_multiple_answers": false}
body, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://app.rapiwa.com/api/send-message", bytes.NewBuffer(body))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer Your_Device_Key")
http.DefaultClient.Do(req)csharp
var payload = new { number = "+88017XXXXXXXXX", message_type = "poll", poll_name = "Best color?", poll_options = new[] { "Red", "Blue", "Green" }, allow_multiple_answers = false };
var content = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json");
client.DefaultRequestHeaders.Add("Authorization", "Bearer Your_Device_Key");
await client.PostAsync("https://app.rapiwa.com/api/send-message", content);java
HttpRequest.newBuilder()
.uri(URI.create("https://app.rapiwa.com/api/send-message"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer Your_Device_Key")
.method("POST", HttpRequest.BodyPublishers.ofString("{\"number\":\"+88017XXXXXXXXX\",\"message_type\":\"poll\",\"poll_name\":\"Best color?\",\"poll_options\":[\"Red\",\"Blue\",\"Green\"],\"allow_multiple_answers\":false}"))
.build();swift
var request = URLRequest(url: URL(string: "https://app.rapiwa.com/api/send-message")!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("Bearer Your_Device_Key", forHTTPHeaderField: "Authorization")
request.httpBody = try? JSONSerialization.data(withJSONObject: ["number": "+88017XXXXXXXXX", "message_type": "poll", "poll_name": "Best color?", "poll_options": ["Red", "Blue", "Green"], "allow_multiple_answers": false])
URLSession.shared.dataTask(with: request).resume()powershell
$body = @{ number = "+88017XXXXXXXXX"; message_type = "poll"; poll_name = "Best color?"; poll_options = @("Red","Blue","Green"); allow_multiple_answers = $false } | ConvertTo-Json
Invoke-RestMethod -Uri "https://app.rapiwa.com/api/send-message" -Method Post -Headers @{"Content-Type"="application/json"; "Authorization"="Bearer Your_Device_Key"} -Body $bodytypescript
await fetch('https://app.rapiwa.com/api/send-message', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer Your_Device_Key' },
body: JSON.stringify({ number: '+88017XXXXXXXXX', message_type: 'poll', poll_name: 'Best color?', poll_options: ['Red', 'Blue', 'Green'], allow_multiple_answers: false })
});rust
let payload = json!({"number": "+88017XXXXXXXXX", "message_type": "poll", "poll_name": "Best color?", "poll_options": ["Red", "Blue", "Green"], "allow_multiple_answers": false});
client.post("https://app.rapiwa.com/api/send-message").header("Authorization", "Bearer Your_Device_Key").json(&payload).send().await?;💡 Tip: Keep your Device Key secure. Never share it publicly.
