API Gratuita de Enlaces de WhatsApp para Desarrolladores

Genera enlaces de WhatsApp, valida usernames y números de teléfono y crea códigos QR con simples peticiones HTTP GET. Sin clave de API, sin registro, gratis. Todos los endpoints devuelven JSON (el endpoint QR devuelve una imagen), envían cabeceras CORS y pueden llamarse directamente desde el navegador.

Endpoints

URL base: https://whatsusernames.link. Todos los endpoints son GET.

GET /api/v1/username-link?username=joao.silva&key=AB12&text=hello

Enlace de WhatsApp + enlace corto a partir de un username (key y texto predefinido opcionales).

GET /api/v1/phone-link?phone=351912345678&text=hello

Enlace oficial wa.me click-to-chat a partir de un número de teléfono internacional.

GET /api/v1/validate/username?username=joao.silva

Comprueba si un username es estructuralmente válido.

GET /api/v1/validate/key?key=AB12

Comprueba si una Username Key es válida (4-8 letras/números).

GET /api/v1/validate/phone?phone=351912345678

Comprueba si un número de teléfono es válido para enlaces de WhatsApp.

GET /api/v1/qr?username=joao.silva&format=svg&color=25d366

Código QR (PNG o SVG) para un enlace de username o teléfono. Tamaño y colores personalizables.

GET /api/v1/openapi.json

Descripción OpenAPI 3.1 de esta API, legible por máquinas.

API de la Business Platform

URL base: https://whatsusernames.link. Estos endpoints son POST con cuerpo JSON, para la WhatsApp Business Platform / Cloud API (BSUID, usernames de negocio, resolución de contactos, normalización de webhooks). Mismo CORS, límites de uso y formato de error que los endpoints de arriba.

POST /api/v1/business/bsuid/validate

Cuerpo

{ "bsuid": "US.13491208655302741918" }

Comprueba si un Business-Scoped User ID (BSUID) es estructuralmente válido.

POST /api/v1/business/bsuid/parse

Cuerpo

{ "bsuid": "US.ENT.11815799212886844830" }

Parsea un BSUID: código de país, id y flag de cuenta padre (parent).

POST /api/v1/business/username/validate

Cuerpo

{ "username": "joao.silva" }

Comprueba si un username de la WhatsApp Business Platform es estructuralmente válido.

POST /api/v1/business/contact/resolve

Cuerpo

{ "username": "joao.silva" }

Resuelve un contacto a partir de exactamente uno de bsuid, phone o username, en un formato unificado.

POST /api/v1/business/webhook/normalize

Cuerpo

{ "entry": [{ "changes": [{ "value": { "messages": [...], "contacts": [...] } }] }] }

Normaliza un payload de webhook en bruto de la WhatsApp Cloud API (mensajes o estados) en un formato de evento consistente.

Ejemplos

curl

curl "https://whatsusernames.link/api/v1/username-link?username=joao.silva"

JavaScript (fetch)

const res = await fetch(
  "https://whatsusernames.link/api/v1/username-link?username=joao.silva"
);
const data = await res.json();
console.log(data.link); // https://wa.me/joao.silva

curl (API de la Business Platform)

curl -X POST "https://whatsusernames.link/api/v1/business/bsuid/validate" \
  -H "Content-Type: application/json" \
  -d '{"bsuid": "US.13491208655302741918"}'

Límites de uso

60 peticiones por minuto por IP en los endpoints JSON, 20 por minuto en el endpoint QR. Las respuestas incluyen las cabeceras X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset; superar el límite devuelve HTTP 429 con cabecera Retry-After. Las peticiones idénticas se sirven desde la caché CDN y no cuentan para el límite.

Errores

Los errores son siempre JSON con un código estable legible por máquinas: por ejemplo, un username inválido devuelve HTTP 400 con un cuerpo como el de abajo. Los códigos nunca cambian dentro de la v1.

{
  "error": {
    "code": "username_length",
    "message": "Username must be 3-35 characters."
  }
}

Sobre los enlaces wa.me de username

La función de usernames de WhatsApp está en despliegue regional por fases, y los enlaces wa.me/<username> pueden aún no abrir un chat para todas las cuentas. El endpoint username-link incluye un campo notice con el estado actual. Los enlaces por número de teléfono (wa.me/<teléfono>) están oficialmente documentados y funcionan para todos hoy.

Especificación OpenAPI 3.1
API Gratuita de Enlaces de WhatsApp para Desarrolladores