// Tu servidor (Node 18+). La API key no sale de aquí.
import VideocallServer from 'videocall-sdk/server';
const confirio = new VideocallServer({
apiKey: process.env.CONFIRIO_API_KEY,
baseUrl: process.env.CONFIRIO_API,
});
// Cuando tu usuario inicia la consulta 4821:
const sala = await confirio.createRoomForClient({
name: 'Consulta 4821',
maxParticipants: 2, // entran hasta 2 personas
participantRef: 'paciente-4821',
});
// Devuelve "sala" a tu página: trae roomId y joinUrl, sin la API key.
// Tu página: la sala se abre dentro de tu producto.
import VideocallBrowser from 'videocall-sdk/browser';
const confirio = new VideocallBrowser();
const sala = await fetch('/consultas/4821/sala', { method: 'POST' })
.then((r) => r.json());
confirio.useRoom(sala);
document.querySelector('#llamada').append(
confirio.createEmbed(sala.roomId, { width: '100%', height: '600px' })
);
# Sin SDK, desde cualquier lenguaje
curl -X POST "$CONFIRIO_API/rooms" \
-H "X-API-Key: $CONFIRIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Consulta 4821", "maxParticipants": 2}'
# La respuesta trae el roomId y el enlace de la sala.
// Opcional: registras una URL y te enviamos cada evento.
// Firmado en la cabecera X-Webhook-Signature (HMAC-SHA256).
{
"event_type": "session.ended",
"timestamp": "2026-09-22T10:47:24",
"data": {
"room_id": "7f3a9c…",
"duration_seconds": 1044,
"peak_connections": 2,
"segment_count": 3,
"distinct_participant_refs": 2,
"total_participant_seconds": 2022,
"data_status": "COMPLETE"
}
}