Endpoints de API
Estos endpoints están diseñados para ser consumidos por sistemas externos y se autentican mediante API Key. Toda la comunicación es sobre HTTPS y los cuerpos se envían/reciben en JSON.
Crear Reunión
Crea una nueva reunión en el workspace asociado a la API Key.
POST https://backend-meet.zelta.dev/public/meetingsHeaders:
x-api-key: <tu_api_key>
Content-Type: application/jsonBody:
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
title | string | Sí | Título de la reunión (mín. 1 carácter) |
datetime | string | No | Fecha y hora en formato ISO 8601 (ej: 2026-03-15T14:30:00Z). Si se omite, se crea como reunión instantánea |
Ejemplo:
curl -X POST https://backend-meet.zelta.dev/public/meetings \
-H "x-api-key: <tu_api_key>" \
-H "Content-Type: application/json" \
-d '{
"title": "Sync semanal del equipo",
"datetime": "2026-03-15T14:30:00Z"
}'Respuesta exitosa 201:
{
"success": true,
"message": "Meeting created successfully",
"meeting": {
"title": "Sync semanal del equipo",
"datetime": "2026-03-15T14:30:00Z",
"publicMeetingId": "abc123def456"
}
}Actualizar Reunión
Actualiza una reunión existente (título, fecha/hora o estado).
PATCH https://backend-meet.zelta.dev/public/meetings/:publicMeetingIdHeaders:
x-api-key: <tu_api_key>
Content-Type: application/jsonParámetros de ruta:
| Parámetro | Descripción |
|---|---|
publicMeetingId | ID público de la reunión (obtenido al crearla) |
Body (todos los campos son opcionales):
| Campo | Tipo | Descripción |
|---|---|---|
title | string | Nuevo título |
datetime | string | Nueva fecha/hora en formato ISO 8601 |
status | string | Nuevo estado: "ACTIVE", "CLOSED" o "CANCELLED" |
Ejemplo:
curl -X PATCH https://backend-meet.zelta.dev/public/meetings/abc123def456 \
-H "x-api-key: <tu_api_key>" \
-H "Content-Type: application/json" \
-d '{
"status": "CANCELLED"
}'Respuesta exitosa 200:
{
"success": true,
"message": "Meeting updated successfully",
"meeting": {
"title": "Sync semanal del equipo",
"datetime": "2026-03-15T14:30:00Z",
"status": "CANCELLED"
}
}Crear Participante en Reunión
Agrega un participante a una reunión existente. Opcionalmente envía un email de invitación.
POST https://backend-meet.zelta.dev/public/meetings/:publicMeetingId/participantsHeaders:
x-api-key: <tu_api_key>
Content-Type: application/jsonParámetros de ruta:
| Parámetro | Descripción |
|---|---|
publicMeetingId | ID público de la reunión |
Body:
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
preset_name | string | Sí | Tipo de participante (ej: "group_call_host", "group_call_participant") |
externalId | string | No | ID externo del participante en tu sistema |
email | string | No | Email del participante (si se provee, se envía invitación por email) |
name | string | No | Nombre del participante |
Ejemplo:
curl -X POST https://backend-meet.zelta.dev/public/meetings/abc123def456/participants \
-H "x-api-key: <tu_api_key>" \
-H "Content-Type: application/json" \
-d '{
"preset_name": "group_call_participant",
"externalId": "user-789",
"email": "[email protected]",
"name": "María García"
}'Respuesta exitosa 201:
{
"success": true,
"message": "Participant created successfully",
"participant": {
"url": "https://meet.zelta.dev/m/abc123def456/?p=pp_abc123",
"guestUrl": "https://meet.zelta.dev/m/abc123def456"
}
}Nota: El campo
urles el enlace directo para que el participante se una a la reunión. El campoguestUrles la URL base de la reunión.
Si el participante ya existe (mismo externalId en la misma reunión), se renueva su token y se devuelve 200 con el mismo formato:
{
"success": true,
"message": "Participant already exists",
"participant": {
"url": "https://meet.zelta.dev/m/abc123def456/?p=pp_abc123",
"guestUrl": "https://meet.zelta.dev/m/abc123def456"
}
}Resumen de Endpoints
| Método | Endpoint | Descripción |
|---|---|---|
POST | https://backend-meet.zelta.dev/public/meetings | Crear reunión |
PATCH | https://backend-meet.zelta.dev/public/meetings/:publicMeetingId | Actualizar reunión |
POST | https://backend-meet.zelta.dev/public/meetings/:publicMeetingId/participants | Crear participante |