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
titlestringSíTí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_namestringSíTipo 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