Primeros pasos
Usa la API para leer los eventos e invitados de tu organización desde otro sistema, como un CRM, y para enviar un recordatorio a un solo invitado cuando necesites probar el correo y la cancelación. Todas las rutas están bajo /rest/v1 y responden JSON. La mayoría son GET; el recordatorio a un invitado usa POST.
Primero necesitas una clave de API. Los Owners y Organization Admins la crean desde My organization. Cópiala cuando aparezca. WeHabit muestra la clave completa una sola vez.
Llamar a la API
Envía la clave en el encabezado Authorization. El host es el mismo que usas para Leaders.
curl "https://wehabit.mx/rest/v1/events" \
-H "Authorization: Bearer <API_KEY>" \
-H "Accept: application/json"
Una respuesta correcta se ve así:
{
"data": [],
"pagination": {
"page": 1,
"limit": 50,
"total": 0,
"totalPages": 0
}
}
data es la página actual de eventos. pagination.total es cuántos eventos coinciden con los filtros, no solo los de esta página.
Sustituye <API_KEY> por la clave que copiaste. No la envíes como parámetro de consulta. En GET no incluyas un cuerpo JSON; Content-Type no es necesario. En POST (recordatorio a un invitado), envía JSON con Content-Type: application/json.
Pasar parámetros de consulta
Los filtros, la paginación y el orden van en la query string de la URL.
| Regla | Ejemplo |
|---|---|
Empieza la consulta con ? | /rest/v1/events?status=published |
Une los parámetros con & | ?status=published&limit=20 |
| Omite un parámetro para usar su valor predeterminado | Sin page significa la página 1 |
| No repitas un parámetro | ?page=1&page=2 se rechaza |
Esta petición devuelve los primeros 20 eventos publicados cuyo título contiene "conference", del más próximo al más lejano:
curl "https://wehabit.mx/rest/v1/events?status=published&search=conference&limit=20&sort=start_at&order=asc" \
-H "Authorization: Bearer <API_KEY>" \
-H "Accept: application/json"
Codifica los caracteres que no son seguros en una URL. Un espacio en search puede ser %20. Un desfase de zona + debe ser %2B, o el servidor lo tratará como un espacio.
updated_since=2026-08-01T00:00:00%2B00:00
Z es más simple cuando quieres UTC: 2026-08-01T00:00:00Z.
Parámetros que usarás más
| Parámetro | Predeterminado | Qué enviar |
|---|---|---|
page | 1 | Número de página, 1 o mayor. |
limit | 50 | Tamaño de página, de 1 a 100. |
status | todos los eventos | draft, published o completed. |
branch_id | todas las sucursales | Id numérico de una sucursal de esta organización. |
from / to | sin filtro de fecha | Límites inclusivos de la hora de inicio, en ISO 8601. |
updated_since | sin filtro de sincronización | Eventos actualizados en o después de esta hora. |
search | sin filtro de texto | Coincidencia en el título, hasta 200 caracteres. No distingue mayúsculas. |
sort | start_at | start_at, created_at, updated_at o title. |
order | asc | asc o desc. |
published significa que el evento no es borrador y no ha terminado. completed significa que no es borrador y la fecha de fin ya pasó. cancelled no es un estado válido.
branch_id es el entero de la sucursal, no un UUID. Una sucursal de otra organización se trata como no encontrada.
La lista completa de campos, las reglas de estado y los ejemplos de error están en Listar eventos. Los registros de invitados de un evento están en Listar invitados del evento. Para enviar un recordatorio a un invitado (con enlace de cancelación), consulta Enviar recordatorio a un invitado.
Recorrer las páginas
Sigue pidiendo la siguiente page hasta que page sea mayor que totalPages.
/rest/v1/events?limit=100&page=1
/rest/v1/events?limit=100&page=2
Para sincronizar, guarda el updatedAt más reciente que hayas visto y envíalo como updated_since en la siguiente ejecución. Así recibes los eventos creados o cambiados desde entonces.
Qué más conviene saber
- Una clave puede leer todos los eventos e invitados de su organización, incluidos borradores, eventos privados y eventos solo por invitación. Con
reminders:sendtambién puede enviar un recordatorio a un solo invitado. No puede crear eventos, actualizar invitados ni enviar a todos los invitados. - Cada clave permite 60 peticiones por minuto. Una respuesta
429incluyeRetry-Afteryretry_after, ambos en segundos. Espera ese tiempo antes de reintentar. - Las rutas de listado solo permiten
GET. La ruta de recordatorio a un invitado solo permitePOST. Otros métodos responden405con el encabezadoAllow. coverImageUrles un enlace firmado que expira después de una hora.coverImagees la ruta almacenada y no expira.X-Request-IDes opcional. Si envías un id corto (letras, números,.,_o-, hasta 128 caracteres), la API devuelve el mismo valor. Úsalo cuando pidas ayuda por una llamada fallida.- Los parámetros inválidos responden
400con un objetodetails. Cada clave nombra el parámetro y qué tiene de incorrecto. - Una clave ausente, expirada o revocada responde
401. Crea una clave nueva o pide a un Owner u Organization Admin que revoque la anterior desde My organization.
Las reglas de encabezados, los límites y el cuerpo de error compartido están en Autenticación.