List Decola Active Members
Endpoint used to list active student members of the institution in the JWT who had login activity. By default, filters logins in the current calendar month. Optionally accept a custom date range on last_access. Pagination uses an opaque cursor (no global total / COUNT), same envelope as progress / live-progress.
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). Rows include only active students (privilegio_id = 4).
Request Example
Section titled “Request Example”curl --request GET \ --url 'https://lxp.prod.api.toolzz.media/api/v1/decola/active-members?limit=100' \ --header 'Authorization: Bearer <token>' \ --header 'Accept: application/json'With a custom date range:
curl --request GET \ --url 'https://lxp.prod.api.toolzz.media/api/v1/decola/active-members?limit=100&date_from=2026-07-14&date_to=2026-07-14' \ --header 'Authorization: Bearer <token>'Response Example
Section titled “Response Example”{ "data": [ { "user_id": 98220002, "name": "João Silva Restaurante", "email": "joao.restaurante@toolzz.local", "cnpj": "12.345.678/0001-90", "cpf": "123.456.789-00", "registered_at": "2026-07-08T04:54:00.000Z", "last_access_month": "2026-07-08T12:00:00.000Z", "institution_title": "Decola Restaurantes", "subdomain": "decola-restaurante" } ], "pagination": { "limit": 100, "next_cursor": "eyJuIjoiLi4uIn0", "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 login date range (YYYY-MM-DD or ISO-8601). Must be sent together with date_to. When set, replaces the current-month filter. | No |
date_to | string | End of login date range. Must be sent together with date_from. | No |
date_field | string | Optional; only last_access is accepted. | No |
Response description
Section titled “Response description”| Key | Type | Description |
|---|---|---|
data | array | Active member rows for the current page. |
data[].user_id | number | Student user ID. |
data[].name | string | null | Student name. |
data[].email | string | null | Student email. |
data[].cnpj | string | null | Company CNPJ. |
data[].cpf | string | null | Student CPF. |
data[].registered_at | string | null | Registration timestamp (ISO 8601). |
data[].last_access_month | string | null | Last login in the filtered window (ISO 8601). |
data[].institution_title | string | null | Institution title. |
data[].subdomain | string | null | Institution subdomain. |
pagination.limit | number | Requested page size. |
pagination.next_cursor | string | null | Cursor for the next page; null when finished. |
pagination.has_more | boolean | true if more pages are available. |
Cursor pagination (cron)
Section titled “Cursor pagination (cron)”- Call without
cursor. - Process
data. - If
pagination.has_moreistrue, call again withcursor=pagination.next_cursor. - Repeat until
has_moreisfalse.
There is no total / total_pages — the API does not run a full-table COUNT.
Error responses
Section titled “Error responses”| HTTP | Code | When |
|---|---|---|
| 400 | invalid_argument | Invalid limit, cursor, or incomplete/invalid 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 | MySQL unavailable |
| 504 | deadline_exceeded | MySQL query exceeded DecolaMysqlQueryTimeoutMs |
Security
Section titled “Security”- Requires valid JWT with ADMIN or MANAGER privilege (
auth: true). - Data is scoped to the institution from the token.
- Report subjects are active students only (
privilegio_id = 4). - Responses may be cached in Redis (~30 minutes) per institution + cursor + limit + date filter.