List Decola Live Progress
Endpoint used to list live access events for the institution in the JWT. Events come from CloudWatch (/ivs-live-access). Pagination uses an opaque cursor (no global total). Only active students (privilegio_id = 4) are returned.
Note: This endpoint is served by Toolzz LXP API (Encore
decolaservice), not by the institution monolith domain. Use the LXP API base URL (e.g.https://lxp.prod.api.toolzz.media).
Warning: Requires a JWT for ADMIN (
privilegio_id = 2) or MANAGER (privilegio_id = 5). Admins/managers who watch a live are not included in the listing.
Request Example
Section titled “Request Example”curl --request GET \ --url 'https://lxp.prod.api.toolzz.media/api/v1/decola/live-progress?limit=100&date_from=2026-07-14&date_to=2026-07-14' \ --header 'Authorization: Bearer <token>' \ --header 'Accept: application/json'Response Example
Section titled “Response Example”{ "data": [ { "user_email": "joao.restaurante@toolzz.local", "user_name": "João Silva Restaurante", "cnpj": "12.345.678/0001-90", "schools": ["Escola Sede Decola Teste"], "live_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "live_title": "Live Decola", "live_user_id": 98220002, "live_user_name": "João Silva Restaurante", "live_user_email": "joao.restaurante@toolzz.local", "live_user_cpf": "123.456.789-00", "live_access_type": "logged_in", "live_connection_datetime": "2026-07-15T12:16:27.000Z" } ], "pagination": { "limit": 100, "next_cursor": "eyJsaXZlVXVpZCI6Ii4uLiJ9", "has_more": true }}Request description
Section titled “Request description”Access Token
Section titled “Access Token”| Parameter | Type | Description | Required |
|---|---|---|---|
Authorization | String | JWT access token (Bearer <token>). Institution is taken from the JWT institution claim. | Yes |
URL Parameters (Query)
Section titled “URL Parameters (Query)”| Parameter | Type | Description | Required |
|---|---|---|---|
limit | number | Items per page. Default 100. Maximum controlled by secret DecolaMaxPerPage (default 100). | No |
cursor | string | Opaque cursor from the previous response (pagination.next_cursor). Omit on the first page. | No |
date_from | string | Start of window on live_connection_datetime (YYYY-MM-DD or ISO-8601). Defaults to ~180 days lookback when omitted. | No |
date_to | string | End of window. Defaults to now when omitted. | No |
date_field | string | Optional; only live_connection_datetime is accepted. | No |
Response description
Section titled “Response description”| Key | Type | Description |
|---|---|---|
data | array | Live access events for the current page. |
data[].user_email / user_name | string | null | Student identity (from event payload / enrichment). |
data[].cnpj | string | null | Company CNPJ (MySQL enrichment). |
data[].schools | string[] | School titles (MySQL enrichment). |
data[].live_uuid | string | null | Live UUID. |
data[].live_title | string | null | Live title. |
data[].live_user_id | number | null | Student user ID from the access event. |
data[].live_user_name | string | null | Student name from the live access payload. |
data[].live_user_email | string | null | Student email from the live access payload. |
data[].live_user_cpf | string | null | Student CPF from the live access payload. |
data[].live_access_type | string | null | Access type (e.g. logged_in). |
data[].live_connection_datetime | string | null | Connection timestamp (ISO 8601). |
pagination.limit | number | Requested page size. |
pagination.next_cursor | string | null | Cursor for the next page. |
pagination.has_more | boolean | true if more pages are available. |
There is no global total (CloudWatch has no cheap count). Keep consuming while has_more is true.
Error responses
Section titled “Error responses”| HTTP | Code | When |
|---|---|---|
| 400 | invalid_argument | Invalid limit, cursor, or date filter |
| 401 | unauthenticated | Missing or invalid JWT |
| 403 | permission_denied | User is not ADMIN or MANAGER |
| 429 | resource_exhausted | Rate limit (60 requests/minute per institution) |
| 503 | unavailable | CloudWatch or MySQL enrichment unavailable |
| 504 | deadline_exceeded | MySQL UUID discovery, student filter, or enrichment exceeded DecolaMysqlQueryTimeoutMs |
Security
Section titled “Security”- Requires valid JWT with ADMIN or MANAGER privilege (
auth: true). - Events must match the JWT institution; non-student users are filtered out.
- Responses may be cached in Redis (~30 minutes) per institution + cursor + limit + date filter.