Explorar la documentación API REST

API REST

Crea links, Smart Links, formularios y páginas Multilink desde tu propio código, y lee su analítica, con las mismas reglas que la app de Walink.

Actualizado el 11 de noviembre de 2026 Ver en Markdown

La API de Walink permite que un script, un backend o cualquier herramienta sin código que envíe solicitudes HTTP haga lo mismo que tú haces en la app. Cada solicitud pasa por las reglas de la app, así que las direcciones, el cupo y la propiedad se revisan de la misma forma, y cada creación hace un borrador, excepto la de un link gratis, para que nada se publique por accidente.

Esta página te lleva hasta tu primera llamada. Todos los endpoints y campos están en la referencia completa de la API, que también tiene una consola para probar solicitudes.

Qué puedes automatizar

Recurso Qué hace la API
Links Premium (/v1/links) Listar, crear borradores, editar, publicar, pasar a borrador, eliminar, personalizar el QR
Smart Links (/v1/smart-links) Lo mismo, con destinos y enrutamiento
Formularios (/v1/forms) Lo mismo, más las respuestas que envió la gente
Páginas Multilink (/v1/multilinks) Lo mismo
Links gratis (/v1/free-links) Listar, crear, leer, eliminar
Analítica (/v1/analytics) Cifras y desgloses por país, fuente, dispositivo y más
Cuenta (/v1/account) Perfil, cupo en uso, links gratis que tiene

Cualquier cuenta de Walink puede usar la API. Los borradores son gratis. Publicar usa el cupo de tu suscripción y la analítica necesita una suscripción, igual que en la app.

Crea un token

  1. Inicia sesión en Walink, abre el menú de la cuenta (el botón redondo de arriba a la derecha) y selecciona Desarrolladores.
  2. En Tokens de API, selecciona Crear token.
  3. Ponle un Nombre, como "Script de reportes", y elige cuándo vence en Vence después de: 30 días, 90 días, 1 año (el valor predeterminado) o Sin vencimiento.
  4. En Permisos, marca solo lo que el token necesita. Selección rápida llena Solo lectura o Acceso total. Los permisos no se pueden cambiar después.
  5. Selecciona Crear token. La ventana Guarda tu token lo muestra una sola vez: cópialo en un lugar seguro, como un administrador de contraseñas, y luego selecciona Ya lo guardé.

Los tokens empiezan con wlk_live_, y una cuenta puede tener 25 tokens activos. En la tabla de tokens, Rotar te da un token nuevo con el mismo nombre y los mismos permisos, mientras el anterior sigue funcionando 7 días. Revocar detiene un token para siempre, en menos de 30 segundos.

Permisos

write incluye read. Nada incluye publish, delete ni responses:read: cada uno se concede por separado, y ninguno viene activado de forma predeterminada.

Permiso Permite
links:read Leer Links Premium, Smart Links y links gratis
links:write Crear y editar borradores
links:publish Publicar, pasar a borrador, editar cualquier cosa publicada, crear links gratis
links:delete Eliminar
forms:*, multilinks:* Los mismos cuatro para formularios y páginas Multilink
account:read Perfil, cupo y uso
analytics:read Analítica
responses:read Respuestas de formularios, que contienen datos personales que te envió la gente

analytics:read y multilinks:read también muestran los nombres de tus links, Smart Links y formularios publicados, aun sin su propio permiso de lectura.

Tu primera solicitud

La URL base es https://api.walink.com/v1. Envía el token como Authorization: Bearer <token> y los cuerpos de las solicitudes como JSON. Los ejemplos leen el token de una variable de entorno WALINK_API_TOKEN, para que quede fuera de tu código.

Lista tus Links Premium (necesita links:read):

curl https://api.walink.com/v1/links \
  -H "Authorization: Bearer $WALINK_API_TOKEN"
{
	"data": [
		{
			"id": "lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77",
			"title": "Tienda Luna orders",
			"handle": "tienda-luna",
			"plan": "chat",
			"status": "published",
			"url": "https://wa.link/tienda-luna",
			"created_at": "2026-11-05T14:32:07.000Z",
			"updated_at": "2026-11-05T14:32:07.000Z"
		}
	],
	"has_more": false,
	"next_cursor": null
}

Las listas van de lo más reciente a lo más antiguo. Aceptan limit (25 de forma predeterminada, 100 como máximo) y cursor: envía next_cursor para obtener la página siguiente.

Crea un borrador

Una creación siempre hace un borrador (necesita links:write). Este abre un chat con un número de Estados Unidos:

curl -X POST https://api.walink.com/v1/links \
  -H "Authorization: Bearer $WALINK_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: tienda-luna-promo-1" \
  -d '{
    "handle": "tienda-luna-promo",
    "plan": "chat",
    "title": "Tienda Luna promo",
    "phone": "4155550123",
    "country_code": "1",
    "country_alpha": "US",
    "message": "Hello Tienda Luna, I saw your promo"
  }'

La respuesta es 201 con el registro completo, su id y "status": "draft".

  • handle es la dirección que va después de wa.link/. No se puede cambiar después de crear el link, y un borrador no la aparta: se la queda la primera cuenta que publique con ella.
  • plan es el tipo de link: chat, catalog, channel o group.
  • Idempotency-Key hace que un reintento sea seguro durante 24 horas: la misma clave y el mismo cuerpo devuelven la primera respuesta en lugar de un segundo borrador.

Publica

Publicar es una llamada aparte, y necesita links:publish:

curl -X POST https://api.walink.com/v1/links/lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77/publish \
  -H "Authorization: Bearer $WALINK_API_TOKEN"

Igual que Publicar en la app, usa una unidad de tu cupo de Links Premium ($9 USD al año por link). Sin una unidad libre, la respuesta es 402 pool_exhausted, con los números en details. Agrega cupo en la página de Facturación de la app (cómo funciona la facturación).

  • POST .../publish-check es un ensayo: qué impide todavía la publicación y cuánto cupo usaría.
  • POST .../unpublish saca el link de línea y libera su unidad. Su dirección deja de funcionar, incluidos los códigos QR impresos, y otra cuenta puede tomarla desde ese momento.
  • PATCH /v1/links/{id} cambia solo los campos que envías. En un link publicado el cambio se aplica al instante, así que también necesita links:publish.

Los Smart Links, los formularios y las páginas Multilink siguen los mismos pasos en sus propias rutas. Los Smart Links usan los permisos de links.

/v1/free-links crea los links gratis que puede tener cada cuenta, hasta 5. Funcionan distinto:

  • Un link gratis queda publicado en el momento en que se crea; nunca es borrador. Por eso crear uno necesita links:publish, no links:write.
  • Walink elige su dirección aleatoria. Tú envías un número de teléfono o un nombre de usuario de WhatsApp, un mensaje opcional y un title privado opcional, que no se puede cambiar después.
  • Se puede listar, leer y eliminar, nunca editar. Su id empieza con fln_, y /v1/links nunca lo muestra.
  • Para editarlo o ver su analítica hay que pasarlo a Premium en la app, lo que cambia su id a lnk_.

Con 5 ya creados, una creación responde 409 free_link_limit_reached, y eliminar uno libera su espacio. Más en links gratis.

Errores y límites de uso

Todos los errores tienen la misma forma:

{
	"error": {
		"code": "insufficient_scope",
		"message": "This token needs the links:publish scope.",
		"param": null,
		"doc_url": "https://api.walink.com/docs#description/errors",
		"request_id": "req_4f1c9a0b7d2e4c8f9a1b3c5d7e9f0a2b",
		"details": { "required": ["links:publish"] }
	}
}
Estado Códigos comunes Significado
401 invalid_token Token faltante, vencido o revocado
402 pool_exhausted, past_due_locked, subscription_required Cupo o facturación, se resuelve en la app
403 insufficient_scope details.required indica el permiso
404 not_found También para ids de otras cuentas
409 handle_taken, free_link_limit_reached La dirección está ocupada, o se llegó a un límite
422 validation_failed, handle_immutable Solicitud no válida. details.fields lista los problemas
429 rate_limited Espera Retry-After segundos
Solicitudes Límite
Lecturas 120 por minuto por token
Creaciones, ediciones, publicaciones y eliminaciones 30 por minuto por cuenta
Analítica 10 por minuto por cuenta
Revisiones de direcciones 30 por minuto por cuenta

Los límites son aproximados, y quedarse sin cupo nunca es un 429. Mediante la API, una cuenta puede tener hasta 500 borradores por producto. Cada respuesta trae un encabezado Request-Id: cítalo cuando contactes a soporte.

Referencia completa

El mismo token también conecta asistentes de IA: consulta Conecta asistentes de IA.