Skip to main content
GET
/
en
/
team
/
profiles
{
  "[].CanAddNewMembers": true,
  "[].CanRemoveMembers": true,
  "[].CanCancelMembers": true,
  "[].Team": {},
  "[].RecentBookings": "<any>",
  "[].AllTeamMembers": [
    {}
  ],
  "[].AllTeamMembers[].Contracts": [
    {}
  ],
  "401 Unauthorized": {}
}

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

bookForTeam
boolean
When true, scopes the response to teams the customer can book on behalf of. Added conditionally in the booking flow.
_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

Returns an array of TeamProfile objects (not wrapped in a list envelope).

TeamProfile Fields

[].CanAddNewMembers
boolean
Whether the authenticated customer can add new members to this team.
[].CanRemoveMembers
boolean
Whether the authenticated customer can remove members from this team.
[].CanCancelMembers
boolean
Whether the authenticated customer can cancel member contracts in this team.
[].Team
Team
Full team object with the same fields as the response from GET /api/public/teams/{teamId}/profile.
[].RecentBookings
any
Recent bookings made by team members.
[].AllTeamMembers
AllTeamMember[]
Extended member objects that include contract information alongside standard Customer fields.
[].AllTeamMembers[].Contracts
CoworkerContract[]
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

ContextSource file
Booking flow team selector (/checkout/...)src/views/public/checkout/booking/useBookingData.tsx

Error Responses

401 Unauthorized
error
The customer is not authenticated or the session has expired.
MethodEndpointDescription
GET/api/public/teams/myList the customer’s teams
GET/api/public/teams/{teamId}/profileFull team profile
POST/api/public/teams/{teamId}/membersAdd members to a team