Skip to main content
GET
/
api
/
public
/
teams
/
{teamId}
/
kpi
{
  "Kpi": [
    {}
  ],
  "Kpi[].CoworkerId": 123,
  "Kpi[].CoworkerFullName": "<string>",
  "Kpi[].CoworkerEmail": "<string>",
  "Kpi[].UninvoicedProducts": 123,
  "Kpi[].UninvoicedExtraServices": 123,
  "Kpi[].UnivoicedEventAttendees": 123,
  "Kpi[].UnivoicedTimepasses": 123,
  "Kpi[].RemainingBookingCredit": 123,
  "Kpi[].RemainingTimeCreditMinutes": 123,
  "Kpi[].RemainingTimeCreditDays": 123,
  "Kpi[].RemainingTimeCreditWeeks": 123,
  "Kpi[].RemainingTimeCreditMonths": 123,
  "Kpi[].RemainingTimeCreditUses": 123,
  "Kpi[].RemainingTimePassesMinutes": 123,
  "Kpi[].RemainingTimePassesCount": 123,
  "Kpi[].BookedTimeTotal": 123,
  "Kpi[].BookedTimeThisMonth": 123,
  "Kpi[].CheckedTimeTotal": 123,
  "Kpi[].CheckedTimeThisMonth": 123,
  "401 Unauthorized": {},
  "404 Not Found": {}
}

Get Team KPIs

Returns key performance indicators for every member of a team. Each entry includes uninvoiced charges, remaining booking and time credits, and total/monthly usage. Used on the team dashboard to give administrators a quick financial and usage overview.

Authentication

Requires a valid customer bearer token. The customer must be a team administrator of the specified team.

Path Parameters

teamId
number
required
Numeric identifier of the team. Returned as Id from GET /api/public/teams/my.

Query Parameters

_shape
string
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

Kpi
TeamKpi[]
required
Array of per-member KPI objects.

Per-Member Fields

Kpi[].CoworkerId
number
Numeric identifier of the team member.
Kpi[].CoworkerFullName
string
Display name of the team member.
Kpi[].CoworkerEmail
string
Email address of the team member.
Kpi[].UninvoicedProducts
number
Count of purchased products not yet invoiced.
Kpi[].UninvoicedExtraServices
number
Count of extra services not yet invoiced.
Kpi[].UnivoicedEventAttendees
number
Count of event attendee charges not yet invoiced. Note the typo (Univoiced) — it is preserved as-is in the API.
Kpi[].UnivoicedTimepasses
number
Count of time passes not yet invoiced. Note the typo (Univoiced) — it is preserved as-is in the API.
Kpi[].RemainingBookingCredit
number
Remaining booking credit balance.
Kpi[].RemainingTimeCreditMinutes
number
Remaining time credit in minutes.
Kpi[].RemainingTimeCreditDays
number
Remaining time credit in days.
Kpi[].RemainingTimeCreditWeeks
number
Remaining time credit in weeks.
Kpi[].RemainingTimeCreditMonths
number
Remaining time credit in months.
Kpi[].RemainingTimeCreditUses
number
Remaining time credit uses.
Kpi[].RemainingTimePassesMinutes
number
Remaining time pass minutes.
Kpi[].RemainingTimePassesCount
number
Remaining time pass count.
Kpi[].BookedTimeTotal
number
Total booked time in minutes across all time.
Kpi[].BookedTimeThisMonth
number
Total booked time in minutes for the current month.
Kpi[].CheckedTimeTotal
number
Total checked-in time in minutes across all time.
Kpi[].CheckedTimeThisMonth
number
Total checked-in time in minutes for the current month.

Examples

Fetch team KPIs

GET /api/public/teams/55/kpi
Authorization: Bearer {token}
{
  "Kpi": [
    {
      "CoworkerId": 101,
      "CoworkerFullName": "Jane Smith",
      "CoworkerEmail": "jane@techinnovators.com",
      "UninvoicedProducts": 2,
      "UninvoicedExtraServices": 0,
      "UnivoicedEventAttendees": 1,
      "UnivoicedTimepasses": 0,
      "RemainingBookingCredit": 500,
      "RemainingTimeCreditMinutes": 120,
      "RemainingTimeCreditDays": 0,
      "RemainingTimeCreditWeeks": 0,
      "RemainingTimeCreditMonths": 0,
      "RemainingTimeCreditUses": 5,
      "RemainingTimePassesMinutes": 60,
      "RemainingTimePassesCount": 1,
      "BookedTimeTotal": 4200,
      "BookedTimeThisMonth": 360,
      "CheckedTimeTotal": 3800,
      "CheckedTimeThisMonth": 300
    }
  ]
}

TypeScript Integration

import { endpoints } from '@/api/endpoints'
import { TeamKpiList } from '@/types/endpoints/TeamKpi'
import { useData } from '@/hooks/useData'

const { resource: kpiData } = useData<TeamKpiList>(httpClient, endpoints.teams.kpi(teamId), { shape: { fields: ['Kpi'] } })

Usage in Portal

ContextSource file
Team dashboard KPI section (/dashboard/team/{teamId})src/views/user/dashboards/team/components/TeamKpiSection.tsx

Error Responses

401 Unauthorized
error
The customer is not authenticated or the session has expired.
404 Not Found
error
Team with the specified ID does not exist.
MethodEndpointDescription
GET/api/public/teams/{teamId}/metricsTeam performance metrics
GET/api/public/teams/{teamId}/attendanceTeam attendance data
GET/api/public/teams/{teamId}/profileFull team profile
GET/api/public/teams/myList the customer’s teams