Saltar al contenido
whatsapi.sh
Tema
Docs

Envía tu primer mensaje

Una clave, un número vinculado, un POST. Si algo de esto te toma más de cinco minutos, es un bug del producto. Avísanos.

1 · Crea una clave de API

En el panel, abre Claves de API y crea una. Empieza con wa_ y se muestra una sola vez, así que cópiala a un lugar seguro. La misma clave sirve para la API REST y para MCP.

2 · Vincula un número

Abre Números, agrega un número y escanea el código QR desde WhatsApp, en Configuración → Dispositivos vinculados. Es el mismo camino que vincular WhatsApp Web. Tu teléfono sigue funcionando todo el tiempo, porque esto es un dispositivo vinculado y no una copia. También preguntamos hace cuánto está en uso la línea, porque eso define cuántas conversaciones nuevas puede iniciar por día. Si tu plan es mandar mensajes en frío a gran escala, vincula un teléfono de repuesto.

3 · Envía

import { Whatsapi } from "@whatsapi.sh/sdk";

const wa = new Whatsapi({ apiKey: "wa_your_key" });

const data = await wa.sendMessage({ to: "+5511988887777", text: "Hello from whatsapi!" });
201 Created
{
  "data": {
    "id": "9c1f0b7e-8b1a-4a2e-9b0a-1f2e3d4c5b6a",
    "to": "+5511988887777",
    "from": "your-number-id",
    "status": "queued",
    "scheduledAt": "2026-08-24T19:18:00.000Z",
    "timestamp": "2026-08-24T19:00:00.000Z",
    "quotaRemaining": 199
  }
}

Los mensajes que tú inicias vuelven como queued, no como sent, incluso para contactos conocidos. Salen con 15 a 25 minutos de intervalo por defecto. La cola de envío explica los tiempos. Las respuestas salen al momento si la persona escribió a tu número en las últimas 24 horas. Los acuses llegan a tu webhook.

Ese es todo el recorrido

Multimedia, OTP, consulta de números y acuses están todos en la referencia REST. Desde TypeScript o JavaScript, el cliente npm es la misma superficie con tipos. Si tu cliente es un agente, el servidor MCP le da las mismas operaciones como herramientas. Antes de crecer más allá de los envíos de prueba, lee cómo evitar el baneo.