API REST profesional para automatizar el envío de mensajes de WhatsApp con límites inteligentes y funciones premium
API REST optimizada para envío de mensajes de WhatsApp en tiempo real con alta disponibilidad
Autenticación por tokens API seguros, límites inteligentes y conexiones HTTPS encriptadas
Integra en minutos con cualquier lenguaje de programación usando nuestra API REST
Regístrate en WapiTool para obtener acceso a la API
Escanea el código QR para conectar tu cuenta de WhatsApp
Copia tu User ID y API Token desde el dashboard
Usa la API para enviar hasta 20 mensajes diarios (gratuito) o ilimitados (premium)
/api/send-message
Envía un mensaje de WhatsApp a un número específico
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
number | string | Sí | Número de teléfono con código de país (ej: 573001234567) |
message | string | Sí | Contenido del mensaje a enviar |
curl -X POST https://wapitool.com/api/send-message \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "573001234567",
"message": "¡Hola! Este es un mensaje desde WapiTool."
}'
{
"success": true,
"message": "Mensaje enviado exitosamente",
"messagesUsed": 15,
"dailyLimit": 20,
"isPremium": false
}
{
"success": false,
"error": "Límite diario de mensajes alcanzado",
"messagesUsed": 20,
"dailyLimit": 20,
"upgradeUrl": "https://wapitool.com/dashboard"
}
/api/webhooks/config
Configura webhooks para recibir notificaciones en tiempo real (solo usuarios premium)
Parámetro | Tipo | Descripción |
---|---|---|
webhookUrl | string | URL donde recibir las notificaciones |
secretToken | string | Token secreto para validar webhooks |
const axios = require('axios');
async function sendWhatsAppMessage(number, message) {
try {
const response = await axios.post('https://wapitool.com/api/send-message', {
number: number,
message: message
}, {
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
});
console.log('Mensaje enviado:', response.data);
console.log(`Mensajes usados: ${response.data.messagesUsed}/${response.data.dailyLimit}`);
// Verificar si se alcanzó el límite
if (response.data.messagesUsed >= response.data.dailyLimit && !response.data.isPremium) {
console.log('¡Límite diario alcanzado! Considera actualizar a Premium');
}
} catch (error) {
if (error.response?.status === 429) {
console.log('Límite diario alcanzado. Actualiza a Premium para mensajes ilimitados');
} else {
console.error('Error:', error.response?.data || error.message);
}
}
}
// Uso
sendWhatsAppMessage('573001234567', '¡Hola desde WapiTool!');
import requests
import json
def send_whatsapp_message(number, message):
url = "https://wapitool.com/api/send-message"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
data = {
"number": number,
"message": message
}
try:
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
result = response.json()
print(f"Mensaje enviado: {result['message']}")
print(f"Mensajes usados: {result['messagesUsed']}/{result['dailyLimit']}")
if result['messagesUsed'] >= result['dailyLimit'] and not result['isPremium']:
print("¡Límite diario alcanzado! Considera actualizar a Premium")
elif response.status_code == 429:
print("Límite diario alcanzado. Actualiza a Premium para mensajes ilimitados")
else:
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
# Uso
send_whatsapp_message("573001234567", "¡Hola desde WapiTool!")
<?php
function sendWhatsAppMessage($number, $message) {
$url = 'https://wapitool.com/api/send-message';
$data = array(
'number' => $number,
'message' => $message
);
$options = array(
'http' => array(
'header' => "Authorization: Bearer YOUR_API_TOKEN\r\n" .
"Content-Type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) {
echo "Error enviando mensaje\n";
} else {
$response = json_decode($result, true);
if (isset($response['success']) && $response['success']) {
echo "Mensaje enviado: " . $response['message'] . "\n";
echo "Mensajes usados: " . $response['messagesUsed'] . "/" . $response['dailyLimit'] . "\n";
if ($response['messagesUsed'] >= $response['dailyLimit'] && !$response['isPremium']) {
echo "¡Límite diario alcanzado! Considera actualizar a Premium\n";
}
} else {
echo "Error: " . ($response['error'] ?? 'Error desconocido') . "\n";
}
}
}
// Uso
sendWhatsAppMessage("573001234567", "¡Hola desde WapiTool!");
?>
Código | Estado | Descripción |
---|---|---|
200 | OK | Mensaje enviado exitosamente |
400 | Bad Request | Parámetros faltantes o inválidos |
401 | Unauthorized | Token API inválido o faltante |
403 | Forbidden | Función requiere suscripción Premium |
404 | Not Found | Endpoint no encontrado |
429 | Too Many Requests | Límite diario de mensajes alcanzado |
500 | Internal Server Error | Error interno del servidor |
Monitorea el contador de mensajes en cada respuesta y maneja el error 429 apropiadamente
Implementa retry logic y manejo de errores robusto para todos los códigos de estado HTTP
Valida los números de teléfono antes de enviar mensajes para evitar errores y desperdiciar límites
Nunca expongas tu API token en el frontend. Úsalo solo en el backend
Los webhooks solo están disponibles para usuarios Premium. Actualiza tu plan para recibir notificaciones en tiempo real
Para mejores resultados, asegúrate de que los destinatarios tengan tu número guardado