Integration API · v0.1.0

Getting Started

API para partners que integran telemetría de dispositivos Tagora en sus propios sistemas. Autenticación con bearer token de scope integration, listado de dispositivos y webhooks de entrega.

Mi estado de integración

Consulta tu rol, empresa y webhooks activos.

Mis tags

Tags BLE registrados en tu cuenta.

El flujo en 6 pasos

01 Seguridad

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.

accessTokenrenewToken
Request / Response { email, password } accessToken · renewToken · expiresIn: 900
Ver en API Reference →
02 Seguridad

Perfil 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.

userIdorganizationId
Request / Response Bearer {accessToken} userId · organizationId · firstName · scope
Ver en API Reference →
03 Seguridad

Credenciales de integración

POST /integration/credentials
Envía el organizationId. Recibirás un par apiKey + secret que identifican a tu organización en el scope de integración.

apiKeysecret
Request / Response { organizationId } apiKey · secret
Ver en API Reference →
04 Integración

Login de integración

POST /integration/v1/auth/login
Usa apiKey y secret del paso 3. Obtienes un accessToken con scope integration que autoriza dispositivos y webhooks.

intAccessToken
Request / Response { apiKey, secret } accessToken (scope: integration) · expiresIn: 3600
Ver en API Reference →
05 Integración

Listar tus dispositivos

GET /integration/v1/devices
Usa el intAccessToken. Devuelve los dispositivos de tu organización filtrados por scope. Guarda el assetId de cada uno.

assetId[]
Request / Response Bearer {intAccessToken} [ { assetId, serial, deviceId, status } ]
Ver en API Reference →
06 Integración

Registrar el webhook

POST /integration/v1/webhook
Registra la URL donde Tagora entregará telemetría. La respuesta incluye una publicKey (Ed25519) para verificar la firma de cada entrega.

webhookIdpublicKey
Request / Response { postUrl, name } webhookId · publicKey (Ed25519) · isActive
Ver en API Reference →

Ciclo de vida del token

+ El accessToken vive solo en memoria — nunca en localStorage ni cookies.
! El renewToken puede persistirse en sessionStorage para sobrevivir recargas.
Renueva con POST /auth/renew ~2 min antes del exp. Si falla, reintenta con backoff exponencial (5s → 10s → 15s). Tras 3 fallos, redirige a login.
x Un 401 en cualquier endpoint protegido indica que el accessToken expiró. Renueva y reintenta la petición una vez.

Prueba de conexión rápida

Obtén tu primer accessToken desde la terminal:

quick-start.sh
# 1. Login — obtén accessToken + renewToken
curl -X POST "https://integration.tagora.com.mx/integration/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email":"your@email.com","password":"yourpassword"}'

# Respuesta — lee desde response.data.*
{
  "data": {
    "accessToken": "eyJhbGciOiJYMjU1MTkr...",
    "renewToken":  "eyJhbGciOiJYMjU1MTkr...",
    "tokenType":   "Bearer",
    "expiresIn":   600
  },
  "requestId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
}

# 2. Listar dispositivos con el accessToken
curl "https://integration.tagora.com.mx/integration/v1/devices" \
  -H "Authorization: Bearer <accessToken>"

# Respuesta — response.data es un array
{
  "data": [ { "deviceId": "uuid-...", "serial": "GT06-XXXX", ... } ],
  "requestId": "b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0"
}