Reporting
Aggregates and exports — read-only views over the same rows the operational screens read.
17 endpoints
GET
/v3/app/history/access-logs
#
bearer driver_app beneficiary_app device credential
Query parameters
| Name | Type | | Constraints |
|---|
from | string | required | — |
to | string | required | — |
zone_id | string | null | optional | — |
result | string | null | optional | allowed denied |
cursor | string | null | optional | max length 200 |
per_page | integer | null | optional | min 1 · max 500 |
Response
Returns { "data": [AccessLog] } with meta.next_cursor for the next page.
| Field | Type | | Constraints |
|---|
id | string (uuid) | required | — |
direction | any | required | — |
method | any | required | — |
result | any | required | — |
reason | string | null | required | — |
occurred_at | string (date-time) | required | — |
zone | object | required | — |
zone.id | string (uuid) | required | — |
zone.name | string | required | — |
zone.kind | string | null | required | — |
student | any | required | — |
guardian | any | required | — |
verified_by | any | required | — |
band_serial | string | null | required | — |
trip_id | string | null | required | — |
GET
/v3/portal/access-log
#
bearer admin_web device credential
Query parameters
| Name | Type | | Constraints |
|---|
from | string | required | — |
to | string | required | — |
zone_id | string | null | optional | — |
student_id | string | null | optional | — |
result | string | null | optional | allowed denied |
authorized_only | boolean | null | optional | — |
cursor | string | null | optional | max length 200 |
per_page | integer | null | optional | min 1 · max 500 |
Response
Returns { "data": [AccessLog] } with meta.next_cursor for the next page.
| Field | Type | | Constraints |
|---|
id | string (uuid) | required | — |
direction | any | required | — |
method | any | required | — |
result | any | required | — |
reason | string | null | required | — |
occurred_at | string (date-time) | required | — |
zone | object | required | — |
zone.id | string (uuid) | required | — |
zone.name | string | required | — |
zone.kind | string | null | required | — |
student | any | required | — |
guardian | any | required | — |
verified_by | any | required | — |
band_serial | string | null | required | — |
trip_id | string | null | required | — |
bearer admin_web reporting.export device credential
Request body
| Field | Type | | Constraints |
|---|
kind | string | required | access_log absentees late guardians statement fleet |
filters | array | null | optional | max items 10 |
filters.from | string | null | optional | — |
filters.to | string | null | optional | — |
filters.wallet_id | string | null | optional | — |
Response
Returns { "data": Export }.
| Field | Type | | Constraints |
|---|
id | string (uuid) | required | — |
kind | string | required | — |
status | string | required | — |
error | string | null | required | — |
created_at | string (date-time) | required | — |
file_url | string | null | required | — |
GET
/v3/portal/export/{id}
#
bearer admin_web device credential
Path parameters
Response
Returns { "data": Export }.
| Field | Type | | Constraints |
|---|
id | string (uuid) | required | — |
kind | string | required | — |
status | string | required | — |
error | string | null | required | — |
created_at | string (date-time) | required | — |
file_url | string | null | required | — |
GET
/v3/portal/export/{id}/download
#
bearer admin_web device credential
The authed download — works on the local demo disk and Spaces alike.
Path parameters
Response
Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
GET
/v3/portal/report-digest
#
bearer admin_web device credential
unpaged; a school has a handful.
Response
Returns { "data": [WebReportDigest] } with meta.next_cursor for the next page.
| Field | Type | | Constraints |
|---|
id | string (uuid) | required | — |
name | string | required | — |
export_kind | string | required | — |
frequency | string | required | — |
day_of_week | integer | null | required | — |
day_of_month | integer | null | required | — |
send_at | string | required | — |
enabled | boolean | required | — |
role_ids | string (uuid)[] | required | — |
user_ids | string (uuid)[] | required | — |
row_version | integer | required | — |
POST
/v3/portal/report-digest
#
bearer admin_web reporting.subscribe device credential
Request body
| Field | Type | | Constraints |
|---|
name | string | required | max length 80 |
export_kind | string | required | access_log absentees late guardians statement fleet |
frequency | string | required | daily weekly monthly |
day_of_week | integer | null | optional | min 0 · max 6 |
day_of_month | integer | null | optional | min 1 · max 28 |
send_at | string | required | — |
enabled | boolean | optional | — |
role_ids | string (uuid)[] | optional | max items 20 |
user_ids | string (uuid)[] | optional | max items 100 |
Response
Returns { "data": WebReportDigest }.
| Field | Type | | Constraints |
|---|
id | string (uuid) | required | — |
name | string | required | — |
export_kind | string | required | — |
frequency | string | required | — |
day_of_week | integer | null | required | — |
day_of_month | integer | null | required | — |
send_at | string | required | — |
enabled | boolean | required | — |
role_ids | string (uuid)[] | required | — |
user_ids | string (uuid)[] | required | — |
row_version | integer | required | — |
DELETE
/v3/portal/report-digest/{id}
#
bearer admin_web reporting.subscribe device credential
Path parameters
Response
Returns { "data": Deleted }.
| Field | Type | | Constraints |
|---|
deleted | boolean | required | — |
PATCH
/v3/portal/report-digest/{id}
#
bearer admin_web reporting.subscribe device credential
Path parameters
Request body
| Field | Type | | Constraints |
|---|
update_mask | string[] | required | min items 1 · max items 9 |
expected_row_version | integer | required | min 1 |
name | string | optional | max length 80 |
export_kind | string | optional | access_log absentees late guardians statement fleet |
frequency | string | optional | daily weekly monthly |
day_of_week | integer | null | optional | min 0 · max 6 |
day_of_month | integer | null | optional | min 1 · max 28 |
send_at | string | optional | — |
enabled | boolean | optional | — |
role_ids | string (uuid)[] | optional | max items 20 |
user_ids | string (uuid)[] | optional | max items 100 |
Response
Returns { "data": WebReportDigest }.
| Field | Type | | Constraints |
|---|
id | string (uuid) | required | — |
name | string | required | — |
export_kind | string | required | — |
frequency | string | required | — |
day_of_week | integer | null | required | — |
day_of_month | integer | null | required | — |
send_at | string | required | — |
enabled | boolean | required | — |
role_ids | string (uuid)[] | required | — |
user_ids | string (uuid)[] | required | — |
row_version | integer | required | — |
GET
/v3/portal/report/attendance
#
bearer admin_web device credential
GET /v3/portal/report/attendance?view=&period…&filters… (§11.9).
Query parameters
| Name | Type | | Constraints |
|---|
view | string | required | summary average trends absentees late zone_on_time class_summary denials |
from | string | null | optional | — |
to | string | null | optional | — |
zone_id | string | null | optional | — |
route_id | string | null | optional | — |
grade | string | null | optional | max length 32 |
Response
Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
GET
/v3/portal/report/device-usage
#
bearer admin_web device credential
GET /v3/portal/report/device-usage?from=&to= (§11.9b).
Query parameters
| Name | Type | | Constraints |
|---|
from | string | null | optional | — |
to | string | null | optional | — |
Response
Returns { "data": [DeviceUsageRow] } with meta.next_cursor for the next page.
| Field | Type | | Constraints |
|---|
device | object | required | — |
device.id | string (uuid) | required | — |
device.name | string | null | required | — |
taps | integer | required | — |
last_seen_at | string | null | required | — |
battery_pct | integer | null | required | — |
status | string | required | — |
GET
/v3/portal/report/growth
#
bearer admin_web device credential
the monthly trajectory.
Query parameters
| Name | Type | | Constraints |
|---|
months | integer | null | optional | min 1 · max 24 |
Response
Returns { "data": [GrowthMonth] } with meta.next_cursor for the next page.
| Field | Type | | Constraints |
|---|
month | string | required | — |
students | integer | required | — |
riders | integer | required | — |
messages | integer | required | — |
GET
/v3/portal/report/impact
#
bearer admin_web device credential
uniform metric rows.
Query parameters
| Name | Type | | Constraints |
|---|
view | string | required | overview transport meals activities safety |
from | string | null | optional | — |
to | string | null | optional | — |
Response
Returns { "data": [ImpactMetric] } with meta.next_cursor for the next page.
| Field | Type | | Constraints |
|---|
key | string | required | — |
unit | string | required | — |
current | number | null | required | — |
baseline | number | null | required | — |
currency | string | null | required | — |
GET
/v3/portal/report/messaging
#
bearer admin_web device credential
GET /v3/portal/report/messaging?from=&to= (§11.9).
Query parameters
| Name | Type | | Constraints |
|---|
from | string | null | optional | — |
to | string | null | optional | — |
Response
Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
GET
/v3/portal/report/overview
#
bearer admin_web device credential
the landing screen in one call.
Query parameters
| Name | Type | | Constraints |
|---|
date | string | null | optional | — |
Response
Returns { "data": Overview }.
| Field | Type | | Constraints |
|---|
date | string | required | — |
scope | string | required | platform tenant |
parents | object | required | — |
parents.total | integer | required | — |
parents.this_week | integer | required | — |
parents.last_week | integer | required | — |
parents.delta_pct | number | null | required | — |
parents.mapped | integer | required | — |
parents.unmapped | integer | required | — |
schools | object | required | — |
schools.total | integer | required | — |
schools.this_week | integer | required | — |
schools.last_week | integer | required | — |
schools.delta_pct | number | null | required | — |
kids | object | required | — |
kids.total | integer | required | — |
kids.this_week | integer | required | — |
kids.last_week | integer | required | — |
kids.delta_pct | number | null | required | — |
buses | object | required | — |
buses.total | integer | required | — |
buses.this_week | integer | required | — |
buses.last_week | integer | required | — |
buses.delta_pct | number | null | required | — |
bands | object | required | — |
bands.total | integer | required | — |
devices | object | required | — |
devices.total | integer | required | — |
devices.online | integer | required | — |
devices.offline | integer | required | — |
daily_taps | object | required | — |
daily_taps.unique_students | integer | required | — |
daily_taps.total_students | integer | required | — |
daily_taps.percentage | number | required | — |
daily_taps.period_start | string | required | — |
daily_taps.period_end | string | required | — |
GET
/v3/portal/report/transport
#
bearer admin_web device credential
GET /v3/portal/report/transport?view=&period…&route_id= (§11.9).
Query parameters
| Name | Type | | Constraints |
|---|
view | string | required | route-analysis route-ranking fleet-stats cost-audit revenue |
from | string | null | optional | — |
to | string | null | optional | — |
route_id | string | null | optional | — |
Response
Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
GET
/v3/portal/rollcall
#
bearer admin_web device credential
The LIVE rollcall: today's roster vs open presence. History = the report views.
Query parameters
| Name | Type | | Constraints |
|---|
date | string | null | optional | — |
route_id | string | null | optional | — |
Response
Returns { "data": [RollcallRow] } with meta.next_cursor for the next page.
| Field | Type | | Constraints |
|---|
id | string (uuid) | required | — |
name | string | required | — |
grade | string | null | required | — |
present | boolean | required | — |
checked_in_at | string | null | required | — |
zone | string | null | required | — |
zone_kind | string | null | required | — |