Getting Started
API para partners que integran telemetría de dispositivos Tagora en sus propios sistemas.
Mi estado de integración
Consulta tu rol, empresa y webhooks activos.
El flujo en 6 pasos
Login de usuario
POST /security/auth/login
Envía email y password. Recibirás un accessToken de corta duración y un renewToken para renovar sin re-login.
accessTokenrenewTokenRequest / Response
{ email, password } accessToken · renewToken · expiresIn: 900Perfil y organización
GET /security/users/me
Usa el accessToken del paso 1. Obtén tu userId y el organizationId de tu cuenta — los necesitarás en el paso siguiente.
userIdorganizationIdRequest / Response
Bearer {accessToken} userId · organizationId · firstName · scopeCredenciales de integración
GET /integration/credentials · POST /integration/credentials
Primero se consulta con GET /integration/credentials si tu organización ya tiene una credencial. Si no existe, se genera automáticamente con POST /integration/credentials (apiKey + secret). Si ya existe, el secret no puede recuperarse: ingresa el que ya tengas guardado, o rótalo (esto invalida el anterior).
apiKeysecret (solo si se genera/rota)Request / Response
GET ?organizationId → apiKey (secret: null si ya existía) POST { organizationId } → apiKey · secret (una sola vez)Login de integración
POST /integration/auth/login
Usa apiKey y secret del paso 3. Obtienes un accessToken con scope integration que autoriza dispositivos y webhooks.
intAccessTokenRequest / Response
{ apiKey, secret } accessToken (scope: integration) · expiresIn: 3600Registrar el webhook
POST /integration/webhook
Registra la URL donde Tagora entregará telemetría. La respuesta incluye una publicKey (Ed25519) para verificar la firma de cada entrega.
webhookIdpublicKeyRequest / Response
{ postUrl, name } webhookId · publicKey (Ed25519) · isActiveActualizar el webhook
PATCH /integration/webhook/{webhookId}
Modifica la URL de entrega, el nombre o el estado activo de un webhook existente. Solo envía los campos que quieras cambiar.
webhookIdisActiveRequest / Response
{ postUrl?, name?, isActive? } webhookId · postUrl · name · isActiveTambién puedes hacerlo directamente aquí
Mi estado de integración
Consulta tu rol, empresa y webhooks activos.
Ciclo de vida del token
sessionStorage para sobrevivir recargas.
POST /auth/renew ~2 min antes del exp. Si falla, reintenta con backoff exponencial (5s → 10s → 15s). Tras 3 fallos, redirige a login.