Skip to content

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/meetings

Headers:

x-api-key: <tu_api_key>
Content-Type: application/json

Body:

CampoTipoRequeridoDescripción
titlestringTítulo de la reunión (mín. 1 carácter)
datetimestringNoFecha y hora en formato ISO 8601 (ej: 2026-03-15T14:30:00Z). Si se omite, se crea como reunión instantánea
languagestringNoIdioma para la transcripción y el resumen automático de la reunión. Ver

Ejemplo:

bash
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",
    "language": "es"
  }'

Idiomas de transcripción soportados

El campo language acepta uno de estos valores:

en, en-US, en-AU, en-GB, en-IN, en-NZ, es, es-419, fr, fr-CA, de, de-CH, hi, ru, pt, pt-BR, pt-PT, ja, it, nl, multi

Usa multi para reuniones con varios idiomas. Si se omite, la transcripción queda desactivada para esa reunión.

Respuesta exitosa 201:

json
{
  "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/:publicMeetingId

Headers:

x-api-key: <tu_api_key>
Content-Type: application/json

Parámetros de ruta:

ParámetroDescripción
publicMeetingIdID público de la reunión (obtenido al crearla)

Body (todos los campos son opcionales):

CampoTipoDescripción
titlestringNuevo título
datetimestringNueva fecha/hora en formato ISO 8601
statusstringNuevo estado: "ACTIVE" (activa) o "INACTIVE" (desactivada). Una reunión INACTIVE no admite nuevas conexiones

Ejemplo:

bash
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": "INACTIVE"
  }'

Respuesta exitosa 200:

json
{
  "success": true,
  "message": "Meeting updated successfully",
  "meeting": {
    "title": "Sync semanal del equipo",
    "datetime": "2026-03-15T14:30:00Z",
    "status": "INACTIVE"
  }
}

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/participants

Headers:

x-api-key: <tu_api_key>
Content-Type: application/json

Parámetros de ruta:

ParámetroDescripción
publicMeetingIdID público de la reunión

Body:

CampoTipoRequeridoDescripción
preset_namestringTipo de participante: "zelta_meet_host", "zelta_meet_participant" o "zelta_meet_guest"
externalIdstringNoID externo del participante en tu sistema. Se usa para reconocer a un participante existente y renovar su token
emailstringNoEmail del participante (si se provee, se envía invitación por email)
namestringNoNombre del participante

Ejemplo:

bash
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": "zelta_meet_participant",
    "externalId": "user-789",
    "email": "[email protected]",
    "name": "María García"
  }'

Respuesta exitosa 201:

json
{
  "success": true,
  "message": "Participant created successfully",
  "participant": {
    "url": "https://meet.zelta.dev/m/abc123def456/?p=pp_abc123",
    "guestUrl": "https://meet.zelta.dev/m/abc123def456",
    "token": "eyJhbGciOiJI..."
  }
}

Nota: El campo url es el enlace directo para que el participante se una a la reunión. El campo guestUrl es la URL base de la reunión. El campo token es el token de conexión a la sala (útil si conectas al participante de forma programática en lugar de por enlace).

Si el participante ya existe (mismo externalId en la misma reunión), se renueva su token y se devuelve 200 con el mismo formato:

json
{
  "success": true,
  "message": "Participant already exists",
  "participant": {
    "url": "https://meet.zelta.dev/m/abc123def456/?p=pp_abc123",
    "guestUrl": "https://meet.zelta.dev/m/abc123def456",
    "token": "eyJhbGciOiJI..."
  }
}

Obtener Resumen de Reunión

Devuelve el resumen generado automáticamente, la URL de la transcripción y el idioma de una reunión.

GET https://backend-meet.zelta.dev/public/meetings/:publicMeetingId/summary

Headers:

x-api-key: <tu_api_key>

Parámetros de ruta:

ParámetroDescripción
publicMeetingIdID público de la reunión

Respuesta exitosa 200:

json
{
  "summary": "Resumen de los temas tratados en la reunión...",
  "transcript_url": "https://cdn-meet.zelta.dev/transcripts/abc123.csv",
  "language": "es"
}

Cualquiera de los campos puede ser null si el resumen o la transcripción aún no se han generado.


Obtener Transcripción de una Sesión

Descarga bajo demanda la transcripción de una sesión concreta de la reunión desde Cloudflare. Útil cuando la transcripción todavía no estaba disponible al finalizar la reunión.

POST https://backend-meet.zelta.dev/public/meetings/:publicMeetingId/sessions/:cfSessionId/fetch-transcript

Headers:

x-api-key: <tu_api_key>

Parámetros de ruta:

ParámetroDescripción
publicMeetingIdID público de la reunión
cfSessionIdID de la sesión de Cloudflare

Respuesta exitosa 200:

json
{
  "success": true,
  "transcriptUrl": "https://cdn-meet.zelta.dev/transcripts/abc123.csv"
}

Si la transcripción aún no está lista, se devuelve 404 con el código TRANSCRIPT_NOT_READY.


Resumen de Endpoints

MétodoEndpointDescripción
POSThttps://backend-meet.zelta.dev/public/meetingsCrear reunión
PATCHhttps://backend-meet.zelta.dev/public/meetings/:publicMeetingIdActualizar reunión
POSThttps://backend-meet.zelta.dev/public/meetings/:publicMeetingId/participantsCrear participante
GEThttps://backend-meet.zelta.dev/public/meetings/:publicMeetingId/summaryObtener resumen y transcripción
POSThttps://backend-meet.zelta.dev/public/meetings/:publicMeetingId/sessions/:cfSessionId/fetch-transcriptObtener transcripción de una sesión

Documentación oficial de Zelta