List Team Profiles
Returns an array of team profile summaries for teams the authenticated customer belongs to. Each entry includes the team’s details, permission flags (can add/remove/cancel members), all team members with their contracts, and recent bookings. Primarily used in the booking flow to populate the “book for team” selector.
This endpoint uses a view-style URL (/en/team/profiles) rather than the /api/public/ convention. It returns server-rendered JSON and is called
with the bookForTeam=true query parameter in the booking context.
Authentication
Requires a valid customer bearer token.
Query Parameters
When true, scopes the response to teams the customer can book on behalf of. Added conditionally in the booking flow.
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
Returns an array of TeamProfile objects (not wrapped in a list envelope).
TeamProfile Fields
Whether the authenticated customer can add new members to this team.
Whether the authenticated customer can remove members from this team.
Whether the authenticated customer can cancel member contracts in this team.
Recent bookings made by team members.
Extended member objects that include contract information alongside standard Customer fields.
[].AllTeamMembers[].Contracts
Active contracts for this member, including plan name, start date, next invoice date, price, and cancellation details.
Examples
Fetch team profiles for booking
GET /en/team/profiles?bookForTeam=true
Authorization: Bearer {token}
[
{
"CanAddNewMembers": true,
"CanRemoveMembers": true,
"CanCancelMembers": false,
"Team": {
"Id": 55,
"Name": "Tech Innovators",
"BusinessName": "Downtown Coworking Hub",
"TeamMembersCount": 12,
"ProfileSummary": "Building the future",
"MaxTeamMemberCount": 20
},
"RecentBookings": null,
"AllTeamMembers": [
{
"Id": 101,
"FullName": "Jane Smith",
"Email": "jane@techinnovators.com",
"Contracts": [
{
"Id": 5001,
"StartDate": "2024-01-15T00:00:00",
"NextInvoice": "2025-02-01T00:00:00",
"Price": 250.0,
"CurrencyCode": "GBP"
}
]
}
]
}
]
TypeScript Integration
import { endpoints } from '@/api/endpoints'
import { TeamProfiles } from '@/types/endpoints/TeamProfiles'
import { useData } from '@/hooks/useData'
const { resource: teamProfiles } = useData<TeamProfiles>(httpClient, endpoints.teams.profiles)
Usage in Portal
| Context | Source file |
|---|
Booking flow team selector (/checkout/...) | src/views/public/checkout/booking/useBookingData.tsx |
Error Responses
The customer is not authenticated or the session has expired.
| Method | Endpoint | Description |
|---|
GET | /api/public/teams/my | List the customer’s teams |
GET | /api/public/teams/{teamId}/profile | Full team profile |
POST | /api/public/teams/{teamId}/members | Add members to a team |