Wasend

Send Text Message

Send a text message to a WhatsApp contact

Send Text Message

Send a simple text message to a WhatsApp contact.

Endpoint

POST /sendText

Headers

NameTypeRequiredDescription
AuthorizationstringYesBearer token for authentication
Content-TypestringYesapplication/json

Request Body

FieldTypeRequiredDescription
sessionstringYesThe session ID
tostringYesRecipient's phone number in international format (e.g., "+1234567890")
textstringYesThe text content of the message
replyTostringNoMessage ID to reply to

Response

{
  "id": "string",
  "to": "string",
  "content": "string",
  "type": "text",
  "timestamp": "string",
  "status": "string",
  "fromMe": boolean,
  "sender": "string",
  "recipient": "string"
}

Response Fields

FieldTypeDescription
idstringUnique identifier for the message
tostringThe recipient's phone number or group JID
contentstringContent of the message (the text sent)
typestringType of the message (always "text")
timestampstringWhen the message was sent
statusstringCurrent status of the message
fromMebooleanWhether the message was sent by you
senderstringSender's phone number
recipientstringThe message recipient (details may vary)

Examples

# Send a simple text message
curl -X POST "https://api.wasend.dev/sendText" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "session": "sessionId",
    "to": "+1234567890",
    "text": "Hello from WASend!"
  }'

# Send a reply
curl -X POST "https://api.wasend.dev/sendText" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "session": "sessionId",
    "to": "+1234567890",
    "text": "This is a reply",
    "replyTo": "message123"
  }'
import { WasendClient } from '@wasend/core';

const client = new WasendClient({
  apiKey: 'YOUR_API_KEY',
  baseUrl: 'https://api.wasend.dev'
});

// Send a simple text message
const message = await client.sendText({
  session: "sessionId",
  to: "+1234567890",
  text: "Hello from WASend!"
});

// Send a reply to a message
const reply = await client.sendText({
  session: "sessionId",
  to: "+1234567890",
  text: "This is a reply",
  replyTo: "message123"
});
const { WasendClient } = require('@wasend/core');

const client = new WasendClient({
  apiKey: 'YOUR_API_KEY',
  baseUrl: 'https://api.wasend.dev'
});

// Send a simple text message
const message = await client.sendText({
  session: "sessionId",
  to: "+1234567890",
  text: "Hello from WASend!"
});
from wasend import WasendClient

client = WasendClient(
    api_key='YOUR_API_KEY',
    base_url='https://api.wasend.dev'
)

# Send a simple text message
message = client.send_text(
    session="sessionId",
    to="+1234567890",
    text="Hello from WASend!"
)
package main

import (
	"fmt"
	"log"
	"github.com/wasenddev/wasend-sdk-go/wasendcore"
)

func StringPtr(s string) *string { return &s }

func main() {
	client := wasendcore.NewWasendClient(&wasendcore.WasendConfig{
		ApiKey:  StringPtr("YOUR_API_KEY"),
		BaseUrl: StringPtr("https://api.wasend.dev"),
	})

	// Send a simple text message
	message, err := client.SendText(&wasendcore.MessageTextRequest{
		Session: StringPtr("sessionId"),
		To:      StringPtr("+1234567890"),
		Text:    StringPtr("Hello from WASend!"),
	})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("Message sent: %+v\n", message)

	// Send a reply to a message
	reply, err := client.SendText(&wasendcore.MessageTextRequest{
		Session: StringPtr("sessionId"),
		To:      StringPtr("+1234567890"),
		Text:    StringPtr("This is a reply"),
		ReplyTo: StringPtr("message123"),
	})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("Reply sent: %+v\n", reply)
}
using Wasend.Core;

var config = new WasendConfig
{
    ApiKey = "YOUR_API_KEY"
};
var client = new WasendClient(config);

// Send a simple text message
var message = client.SendText(new MessageTextRequest
{
    Session = "sessionId",
    To = "+1234567890",
    Text = "Hello from WASend!"
});

// Send a reply to a message
var reply = client.SendText(new MessageTextRequest
{
    Session = "sessionId",
    To = "+1234567890",
    Text = "This is a reply",
    ReplyTo = "message123"
});
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import org.json.JSONObject;

public class Main {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        
        // Send a simple text message
        JSONObject requestBody = new JSONObject();
        requestBody.put("session", "sessionId");
        requestBody.put("to", "+1234567890");
        requestBody.put("text", "Hello from WASend!");

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.wasend.dev/sendText"))
            .header("Authorization", "Bearer YOUR_API_KEY")
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(requestBody.toString()))
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println("Response: " + response.body());
    }
}
<?php

$url = 'https://api.wasend.dev/sendText';
$data = [
    'session' => 'sessionId',
    'to' => '+1234567890',
    'text' => 'Hello from WASend!'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_KEY',
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
require 'net/http'
require 'json'
require 'uri'

uri = URI('https://api.wasend.dev/sendText')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer YOUR_API_KEY'
request['Content-Type'] = 'application/json'

request.body = {
  session: 'sessionId',
  to: '+1234567890',
  text: 'Hello from WASend!'
}.to_json

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

puts response.body
import Foundation

let url = URL(string: "https://api.wasend.dev/sendText")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

let body: [String: Any] = [
    "session": "sessionId",
    "to": "+1234567890",
    "text": "Hello from WASend!"
]

request.httpBody = try? JSONSerialization.data(withJSONObject: body)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data {
        print(String(data: data, encoding: .utf8) ?? "")
    }
}
task.resume()
use reqwest;
use serde_json::json;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = reqwest::Client::new();
    
    let response = client
        .post("https://api.wasend.dev/sendText")
        .header("Authorization", "Bearer YOUR_API_KEY")
        .header("Content-Type", "application/json")
        .json(&json!({
            "session": "sessionId",
            "to": "+1234567890",
            "text": "Hello from WASend!"
        }))
        .send()
        .await?
        .text()
        .await?;

    println!("Response: {}", response);
    Ok(())
}

Error Codes

CodeDescription
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
404Not Found - Session or recipient not found
429Too many requests - Rate limit exceeded
500Internal server error

Notes

  • Phone numbers must be in international format (e.g., "+1234567890")
  • The @c.us suffix is automatically added by the API
  • Maximum text length: 4096 characters
  • For replies, the replyTo message ID must be valid and from the same chat