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 del owner
POST /security/auth/login
El owner de la organización entra con su email y password de la web. Recibe un accessToken de 10 minutos y un renewToken de 7 días.
accessTokenrenewTokenRequest / Response
{ email, password } accessToken · renewToken · expiresIn: 600Tu organización
GET /memberships/me
Con el token del paso 1, lista tus organizaciones y tus roles en cada una. De aquí sale el organizationId de los pasos siguientes.
organizationIdrolesRequest / Response
Bearer {accessToken} organizations[ { organizationId, organizationName, roles } ]Credencial de integración
GET /integration/credentials · POST /integration/credentials
Sólo el owner. Consulta con GET si ya existe. POST genera o ROTA: si ya había una, la apiKey viva deja de servir. El secret se muestra una sola vez.
apiKeysecret (una sola vez)Request / Response
GET ?organizationId → apiKey · secret: null POST { organizationId } → apiKey · secret · wasNewLogin de integración
POST /integration/v1/auth/login
El sistema del cliente cambia apiKey + secret por un token scope=integration de 10 minutos. Renueva en /integration/v1/auth/renew: rota los dos tokens.
accessToken (integration)renewTokenRequest / Response
{ apiKey, secret } — sin Bearer accessToken · renewToken · scope: integration · expiresIn: 600Leer tus dispositivos
GET /integration/v1/devices
Los tags de tu organización, con su serial, assetId y macAddress. Filtra con ?serial=; uno de otra organización devuelve [].
deviceIdserialassetIdRequest / Response
?limit · offset · serial [ { deviceId, serial, assetId, deviceName, status, macAddress } ]Registrar el webhook
POST /integration/v1/webhook
La URL donde Tagora te manda cada posición, firmada con Ed25519. Guarda la publicKey. Uno por organización (el segundo da 409). Para cambiar la URL o pausarlo: PATCH /integration/v1/webhook/{id} — las llaves no cambian.
webhookIdpublicKeyRequest / Response
{ postUrl, name } { webhookId, publicKey } · 409 si ya hay unoTambié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.