Sesiones
Crea una sesión de visualización en vivo, envía una invitación al cliente y consulta su estado. Las marcas de tiempo son ISO-8601 UTC (…Z).
Crear una sesión
Crea una sesión y su invitación, y luego envía el enlace de invitación por el channel elegido. Envía teamId con un JWT del panel; una clave de API implica su propio equipo.
| Campo | Descripción |
|---|---|
teamId | El UUID del equipo. Requerido al autenticarse con un JWT del panel; se infiere automáticamente de una clave de API. |
channel | Cómo se entrega la invitación: sms, email, o link (no se envía nada — tú distribuyes la URL). |
recipientPhone | El número de teléfono del cliente en formato E.164 (p. ej. +15555550123). Requerido cuando channel es sms. |
recipientEmail | La dirección de correo del cliente. Requerida cuando channel es email — el mensaje incluye el enlace más un código QR incorporado. |
note | Una etiqueta interna opcional, de hasta 500 caracteres (p. ej. un número de ticket), mostrada junto a la sesión en el panel. |
ttlMinutes | Cuánto tiempo permanece válida la invitación, en minutos (1–1440). El valor predeterminado es 30. |
smsConsent | Obligatorio cuando channel es sms: debe ser true para confirmar que el destinatario aceptó recibir un SMS de seeitlive.io. Pueden aplicarse tarifas del operador. |
metadata | Pares clave/valor personalizados opcionales (un mapa plano de cadenas, p. ej. tu propio id de agente externo o referencia de ticket). Se almacenan tal cual y se devuelven en las lecturas. Hasta 30 claves; claves de hasta 64 caracteres, valores de hasta 500. |
curl -X POST https://api.seeitlive.io/v1/sessions \
-H "Authorization: Bearer sil_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "channel": "sms", "recipientPhone": "+15555550123", "smsConsent": true, "note": "Ticket #4821" }'{
"id": "f74f1305-2222-4a11-8b1e-1234567890ab",
"status": "pending",
"inviteCode": "aZ3kQ9",
"inviteUrl": "https://seeitlive.io/u/aZ3kQ9#3n9F1Qk7xY2zR8vB5tW6uL0mC4pD1sA...",
"agentViewUrl": "https://seeitlive.io/a/pL2mN8#7dR2Xa4Wq9Kj6bV3nF1yT8sH5cE0uZ...",
"expiresAt": "2026-07-07T09:42:00.000Z"
}inviteUrl y agentViewUrl llevan los tokens de la sesión en texto plano en el fragmento de su URL. Se devuelven solo al crear la sesión — guárdalos de inmediato.Estado de la sesión
Consulta este endpoint para saber cuándo el cliente está frente a la cámara.
status avanza de pending → ringing → live → ended a medida que el cliente se une y se retira, o pasa directamente a expired (la invitación nunca se abrió) o cancelled.
{
"id": "f74f1305-2222-4a11-8b1e-1234567890ab",
"status": "live",
"startedAt": "2026-07-07T09:14:03.000Z",
"endedAt": null,
"producerCount": 1,
"hasVideo": true
}Resolver una invitación (público)
El endpoint público que la página del invitado llama para resolver un code de invitación en su sesión y marca — no requiere token ni clave. Unirse a la transmisión se autentica por separado, con el token incorporado en el fragmento de la URL de invitación.
{
"sessionId": "f74f1305-2222-4a11-8b1e-1234567890ab",
"brand": {
"name": "Acme Support",
"brandLogoUrl": null,
"brandColor": "#1a2b3c"
},
"status": "pending"
}