Get Team Metrics
Returns an array of monthly metric snapshots for a team. Each entry covers one calendar month and includes invoiced amounts, booking and check-in minutes, revenue, and outstanding charges. Used on the team dashboard to render trend charts.
Authentication
Requires a valid customer bearer token. The customer must be a team administrator of the specified team.
Path Parameters
Query Parameters
Comma-separated list of field paths to include in the response. When provided, only the
specified fields are returned — useful for reducing payload size. Supports nested paths
using dot notation.
Response
Array of monthly metric snapshots, ordered chronologically.
Per-Month Fields
Unique identifier for the metric record.
ISO 8601 date representing the first day of the month this record covers.
ISO 4217 currency code for all monetary values in this record.
Total invoiced amount for the member in this month.
Metrics[].TeamInvoicedAmount
Total invoiced amount across the entire team in this month.
Total revenue for the team in this month.
Metrics[].CheckingMinutes
Member’s checked-in time in minutes.
Metrics[].TeamCheckingMinutes
Total team checked-in time in minutes.
Member’s booked time in minutes.
Metrics[].TeamBookingMinutes
Total team booked time in minutes.
Total number of bookings.
Total number of active membership plans.
Number of time passes used.
Metrics[].TotalUnpaidNexKiosk
Total unpaid NexKiosk charges.
Total amount currently due.
Metrics[].UnPaidAttendees
Unpaid event attendee charges.
Metrics[].NotInvoicedCharges
Total charges not yet invoiced.
Metrics[].UnInvoicedCharges
Uninvoiced miscellaneous charges.
Metrics[].UnInvoicedProducts
Uninvoiced product charges.
Metrics[].UnInvoicedTimePasses
Uninvoiced time pass charges.
Uninvoiced extra service charges.
ISO 8601 datetime of the next scheduled invoice, or null if none is scheduled.
Metrics[].DasySinceLastAccess
Days since the member’s last portal access. Note the typo (Dasy) — it is preserved as-is in the API.
Examples
Fetch team metrics
GET /api/public/teams/55/metrics
Authorization: Bearer {token}
{
"Metrics": [
{
"Id": 1001,
"MonthDate": "2025-01-01T00:00:00",
"CurrencyCode": "GBP",
"InvoicedAmount": 1250.0,
"TeamInvoicedAmount": 8500.0,
"Revenue": 8500.0,
"CheckingMinutes": 2400,
"TeamCheckingMinutes": 18000,
"BookingMinutes": 480,
"TeamBookingMinutes": 3200,
"TotalBookings": 15,
"TotalTariffs": 12,
"TotalOther": 0,
"TimePasses": 3,
"Bookings": 450.0,
"TotalUnpaid": 200.0,
"TotalUnpaidNexKiosk": 0,
"TotalDue": 200.0,
"UnPaidAttendees": 0,
"NotInvoicedCharges": 50.0,
"UnInvoicedCharges": 25.0,
"UnInvoicedProducts": 15.0,
"UnInvoicedTimePasses": 10.0,
"UnInvoicedExtraServices": 0,
"NextInvoice": "2025-02-01T00:00:00",
"DasySinceLastAccess": 2
}
]
}
TypeScript Integration
import { endpoints } from '@/api/endpoints'
import { TeamMetrics } from '@/types/endpoints/TeamMetrics'
import { useData } from '@/hooks/useData'
const { resource: metricsData } = useData<TeamMetrics>(httpClient, endpoints.teams.metrics(teamId))
Usage in Portal
| Context | Source file |
|---|
Team dashboard metrics section (/dashboard/team/{teamId}) | src/views/user/dashboards/team/components/TeamMetricsSection.tsx |
Error Responses
The customer is not authenticated or the session has expired.
Team with the specified ID does not exist.
| Method | Endpoint | Description |
|---|
GET | /api/public/teams/{teamId}/kpi | Per-member KPI data |
GET | /api/public/teams/{teamId}/attendance | Team attendance data |
GET | /api/public/teams/{teamId}/profile | Full team profile |
GET | /api/public/teams/my | List the customer’s teams |