URL base
https://api.flowella.io/v1/messages.
Anteriormente la API estaba en el host de la app en
https://app.flowella.io/api/v1/.... Las solicitudes a esa ruta heredada se redirigen permanentemente (308) a https://api.flowella.io/v1/..., conservando el método y el cuerpo — por lo que las integraciones existentes siguen funcionando. Actualice su URL base cuando pueda para evitar el salto adicional.Autenticación
Cada petición necesita una clave API en la cabeceraAuthorization:
Creación de una clave
Necesitas el rol Owner o Admin para gestionar las claves API.- Vaya a Configuración → Claves API en la aplicación Flowella.
- Haz clic en Crear clave y dale un nombre memorable.
- Copia la clave una vez - sólo se muestra en el momento de la creación.
Verificación de una clave
Pulsa el punto final de ping para confirmar que una clave es válida:200 OK con { "ok": true, "organizationId": "…" } significa que está autentificado.
Errores
Todos los errores vuelven en un sobre consistente:
El campo
error.code es estable y seguro de activar mediante programación. El campo error.message es legible y puede cambiar.
Límites de velocidad
Las claves API están limitadas por organización. Si supera el límite, recibirá un429 con el código RATE_LIMITED y el mensaje Too many requests. Cuando está presente, la cabecera de respuesta Retry-After le indica cuántos segundos debe esperar. Retroceda y vuelva a intentarlo con un retardo exponencial.
Si está realizando envíos masivos de gran volumen, prefiera POST /v1/templates/send con el parámetro throttlePerHour - Flowella aplica el estrangulamiento en el servidor, por lo que no tendrá que controlar el ritmo de las solicitudes.
Claves de idempotencia
Los envíos masivos de plantillas son asíncronos.POST /v1/templates/send valida la solicitud, la pone en cola de forma duradera y devuelve 202 Accepted inmediatamente:
Idempotency-Key (hasta 200 caracteres) que identifique de forma única cada lote:
id del trabajo original en lugar de crear un nuevo envío. Puedes reintentar con seguridad una solicitud tras un tiempo de espera agotado o un error de red sin enviar mensajes a nadie dos veces.
Si omites la cabecera, Flowella deriva una clave a partir del cuerpo de la solicitud. Por tanto, un lote idéntico enviado dos veces en rápida sucesión no se envía por duplicado. Aun así, una clave explícita es más segura, porque cualquier cambio en el cuerpo (incluso reordenar los destinatarios) produce una nueva clave derivada.
Paginación
Los puntos finales de lista (/conversations, /contacts, /templates) utilizan paginación por cursor:
- Pasar
limit(1-100, por defecto 25) y uncursoropcional. - La respuesta contiene
itemsy, cuando hay más resultados, unnextCursor. - Devuelva
nextCursorcomo parámetrocursorpara obtener la página siguiente. - Cuando falte
nextCursor, habrá llegado al final.
Fecha y hora
Todas las marcas de tiempo son cadenas ISO 8601 en UTC (por ejemplo2025-01-15T14:30:00.000Z). Cuando la API acepta fechas, tanto la fecha (2025-01-15) como la ISO 8601 completa son forzadas por el servidor.
Números de teléfono
Siempre que sea posible, introduzca los números de teléfono en formato E.164 (+15551234567). Flowella normalizará las variaciones comunes en el servidor, pero E.164 es lo más seguro.
Canales
Muchos endpoints aceptan unwhatsappChannelId. Si tu org tiene un único canal y lo omites, Flowella utilizará tu canal por defecto. Si tienes varios canales, pasa el ID explícitamente para evitar enviar desde el remitente equivocado.
Para conocer el patrón de URL completo y el cambio de canal, consulte Multicanal.

