Skip to main content
GET
/
api
/
public
/
teams
/
my
{
  "Records[].Id": 123,
  "Records[].Name": "<string>",
  "Records[].UniqueId": "<string>",
  "Records[].IdString": "<string>",
  "Records[].Description": {},
  "Records[].ProfileSummary": "<string>",
  "Records[].ProfileIsPublic": true,
  "Records[].ProfileWebsite": {},
  "Records[].ProfileTags": "<string>",
  "Records[].ProfileTagsList": [
    "<string>"
  ],
  "Records[].BusinessName": "<string>",
  "Records[].BusinessHomeUrl": "<string>",
  "Records[].TeamMembersCount": 123,
  "Records[].TeamAdministratorsFullNames": [
    "<string>"
  ],
  "Records[].TeamAdministrators": [
    {}
  ],
  "Records[].TeamMembers": [
    {}
  ],
  "Records[].AllTeamMembers": [
    {}
  ],
  "Records[].PayingMemberId": {},
  "Records[].CreateSingleInvoiceForTeam": true,
  "Records[].MaxTeamMemberCount": {},
  "Records[].HasContactDetails": true,
  "Records[].HasDefaultPlan": true,
  "Records[].DefaultTariffId": {},
  "Records[].DefaultTariffName": {},
  "Records[].DefaultMemberTariffKeepNewAccountsOnHold": true,
  "Records[].DisableAttendaceDashboard": true,
  "Records[].DiscountCharges": {},
  "Records[].DiscountExtraServices": {},
  "Records[].DiscountTariffs": {},
  "Records[].DiscountTimePasses": {},
  "Records[].HasCommunityGroup": true,
  "Records[].GoogleMapsLink": {},
  "Records[].HasTeamLogo": true,
  "Records[].HasImage1": true,
  "Records[].HasImage2": true,
  "Records[].HasImage3": true,
  "Records[].HasImages": true,
  "Records[].CreatedOn": "<string>",
  "Records[].CreatedOnUtc": "<string>",
  "Records[].UpdatedOn": "<string>",
  "Records[].UpdatedOnUtc": "<string>",
  "401 Unauthorized": {},
  "400 Bad Request": {}
}

List User Teams

Returns a paginated list of teams the authenticated customer belongs to. Pass isTeamAdmin=true to restrict the results to teams where the customer has admin rights — used across the portal to gate management interfaces. Pass isTeamAdmin=false to return all teams regardless of role.
A team is a group of customers within a coworking location that can share resources, bookings, and billing. The portal maps teams to companies or departments that co-habit a space.

Authentication

Requires a valid customer bearer token. The response is automatically scoped to the authenticated customer — no additional filtering is needed.

Query Parameters

isTeamAdmin
boolean
required
true — return only teams where the customer is an administrator. false — return all teams the customer belongs to (admins and members).
teamId
number
Filter results to a single team by its numeric ID. When omitted, returns all teams matching the isTeamAdmin filter.
_shape
string
Comma-separated dot-notated field paths to include in the response. When provided, only the specified fields are returned — useful for reducing payload size. Example: _shape=Records.Id,Records.Name,Records.TeamMembersCount
_page
number
1-based page number. Default: 1
_pageSize
number
Records per page. Default: 25 · Maximum: 100
_orderBy
string
Response field to sort by. Default: Name
_sortDirection
string
asc or desc. Default: asc

Response

Returns the standard ApiListResult<Team> envelope (see API Overview for pagination fields). The Records array contains team objects.

Core Fields

Records[].Id
number
required
Unique integer identifier for the team. Use this as {teamId} in all team-scoped endpoints.
Records[].Name
string
required
Display name of the team.
Records[].UniqueId
string
UUID for the team — stable across renames and useful as a cache key.
Records[].IdString
string
String cast of Id. Provided for environments that lose integer precision (e.g., JavaScript JSON.parse on 64-bit IDs).

Profile Fields

Records[].Description
string | null
Full-length team description. May contain HTML.
Records[].ProfileSummary
string
Short tagline shown in team cards and selectors.
Records[].ProfileIsPublic
boolean
When true, the team profile is visible in the public member directory.
Records[].ProfileWebsite
string | null
Team website URL.
Records[].ProfileTags
string
Space-separated tag string. Use ProfileTagsList for array access.
Records[].ProfileTagsList
string[]
Pre-split array of tag strings derived from ProfileTags.

Location

Records[].BusinessName
string
Name of the coworking location this team belongs to.
Records[].BusinessHomeUrl
string
URL of the coworking location’s home page.

Social Media

All social fields are string | null. Provide a full URL (e.g., https://twitter.com/handle) unless stated otherwise.
FieldDescription
TwitterX / Twitter profile URL
FacebookFacebook page URL
LinkedinLinkedIn company page URL
InstagramInstagram profile URL
GithubGitHub org or user URL
PinterestPinterest profile URL
SkypeSkype username
TelegramTelegram handle
FlickrFlickr profile URL
VimeoVimeo channel URL
TumblrTumblr blog URL
BloggerBlogger profile URL

Members

Records[].TeamMembersCount
number
Total count of active members (admins + regular members).
Records[].TeamAdministratorsFullNames
string[]
Display names of all team admins — useful for a quick summary without loading full Customer objects.
Records[].TeamAdministrators
Coworker[]
Full Coworker objects for admins only.
Records[].TeamMembers
Coworker[]
Full Coworker objects for non-admin members.
Records[].AllTeamMembers
Coworker[]
Combined Coworker objects for all members (admins + regular). Use this instead of merging the two arrays above.

Billing & Configuration

Records[].PayingMemberId
number | null
Customer ID of the member who receives consolidated invoices, if CreateSingleInvoiceForTeam is true.
Records[].CreateSingleInvoiceForTeam
boolean
When true, all team charges are rolled into a single invoice addressed to PayingMemberId.
Records[].MaxTeamMemberCount
number | null
Maximum allowed members. null means unlimited.
Records[].HasContactDetails
boolean
Whether billing/contact details have been configured for this team.
Records[].HasDefaultPlan
boolean
Whether the team has a default membership plan assigned.
Records[].DefaultTariffId
number | null
ID of the default membership plan assigned to new team members. null if no default plan is set.
Records[].DefaultTariffName
string | null
Display name of the default membership plan.
Records[].DefaultMemberTariffKeepNewAccountsOnHold
boolean
When true, new members added to the team are placed on hold until manually activated.
Records[].DisableAttendaceDashboard
boolean
When true, the attendance dashboard is hidden for this team. Note the typo in the field name (Attendace) — it is preserved as-is in the API.
Records[].DiscountCharges
number | null
Percentage discount applied to charges for team members.
Records[].DiscountExtraServices
number | null
Percentage discount applied to extra services for team members.
Records[].DiscountTariffs
number | null
Percentage discount applied to membership plans for team members.
Records[].DiscountTimePasses
number | null
Percentage discount applied to time passes for team members.
Records[].HasCommunityGroup
boolean
When true, the team has an associated community discussion group.
Google Maps link for the team’s location.

Media

true if the team has an uploaded logo. Construct the logo URL as: https://[space].spaces.nexudus.com/api/public/teams/{Id}/logo
Records[].HasImage1
boolean
true if profile image 1 has been uploaded.
Records[].HasImage2
boolean
true if profile image 2 has been uploaded.
Records[].HasImage3
boolean
true if profile image 3 has been uploaded.
Records[].HasImages
boolean
Convenience flag — true if any of the three profile images are present.

Timestamps

All datetime fields are ISO 8601 strings. *On fields are in the location’s local timezone; *OnUtc fields are UTC.
Records[].CreatedOn
string
Local datetime the team was created.
Records[].CreatedOnUtc
string
UTC datetime the team was created.
Records[].UpdatedOn
string
Local datetime of the last update.
Records[].UpdatedOnUtc
string
UTC datetime of the last update.

Examples

Fetch admin teams (full payload)

GET /api/public/teams/my?isTeamAdmin=true
Authorization: Bearer {token}
{
  "Records": [
    {
      "Id": 55,
      "Name": "Tech Innovators",
      "Description": "A collaborative team focused on cutting-edge technology solutions",
      "ProfileSummary": "Building the future, one innovation at a time",
      "ProfileIsPublic": true,
      "ProfileWebsite": "https://techinnovators.example.com",
      "ProfileTags": "technology startup innovation collaboration",
      "ProfileTagsList": ["technology", "startup", "innovation", "collaboration"],
      "BusinessName": "Downtown Coworking Hub",
      "BusinessHomeUrl": "https://downtown-hub.example.com",
      "Twitter": "https://twitter.com/techinnovators",
      "Facebook": null,
      "Linkedin": "https://linkedin.com/company/techinnovators",
      "Instagram": null,
      "Github": "https://github.com/techinnovators",
      "Pinterest": null,
      "Skype": null,
      "Telegram": null,
      "Flickr": null,
      "Vimeo": null,
      "Tumblr": null,
      "Blogger": null,
      "TeamMembersCount": 12,
      "TeamAdministratorsFullNames": ["Jane Smith", "John Doe"],
      "TeamAdministrators": [{ "Id": 101, "FullName": "Jane Smith", "Email": "jane@techinnovators.com" }],
      "TeamMembers": [{ "Id": 102, "FullName": "Bob Wilson", "Email": "bob@techinnovators.com" }],
      "AllTeamMembers": [
        { "Id": 101, "FullName": "Jane Smith", "Email": "jane@techinnovators.com" },
        { "Id": 102, "FullName": "Bob Wilson", "Email": "bob@techinnovators.com" }
      ],
      "PayingMemberId": 101,
      "CreateSingleInvoiceForTeam": true,
      "HasContactDetails": true,
      "HasDefaultPlan": true,
      "MaxTeamMemberCount": 20,
      "DisableAttendaceDashboard": false,
      "HasTeamLogo": true,
      "HasImage1": true,
      "HasImage2": false,
      "HasImage3": false,
      "HasImages": true,
      "Id": 55,
      "IdString": "55",
      "UniqueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "CreatedOn": "2024-01-15T09:30:00",
      "UpdatedOn": "2024-07-20T14:22:33",
      "CreatedOnUtc": "2024-01-15T09:30:00Z",
      "UpdatedOnUtc": "2024-07-20T14:22:33Z"
    }
  ],
  "CurrentPageSize": 1,
  "CurrentPage": 1,
  "CurrentOrderField": "Name",
  "CurrentSortDirection": "asc",
  "FirstItem": 1,
  "HasNextPage": false,
  "HasPreviousPage": false,
  "LastItem": 1,
  "PageNumber": 1,
  "PageSize": 25,
  "TotalItems": 1,
  "TotalPages": 1
}

Fetch all teams with a minimal field set

Use _shape to return only the fields your UI needs, reducing payload size significantly.
GET /api/public/teams/my?isTeamAdmin=false&_shape=Records.Id,Records.Name,Records.TeamMembersCount
Authorization: Bearer {token}
{
  "Records": [
    { "Id": 55, "Name": "Tech Innovators", "TeamMembersCount": 12 },
    { "Id": 67, "Name": "Marketing Team", "TeamMembersCount": 8 },
    { "Id": 89, "Name": "Design Studio", "TeamMembersCount": 5 }
  ],
  "CurrentPageSize": 3,
  "CurrentPage": 1,
  "CurrentOrderField": "Name",
  "CurrentSortDirection": "asc",
  "FirstItem": 1,
  "HasNextPage": false,
  "HasPreviousPage": false,
  "LastItem": 3,
  "PageNumber": 1,
  "PageSize": 25,
  "TotalItems": 3,
  "TotalPages": 1
}

TypeScript Integration

The portal types this response as TeamList (from src/types/endpoints/TeamList.ts) and accesses it through the endpoints.teams helper:
import { endpoints } from '@/api/endpoints'
import { TeamList } from '@/types/endpoints/TeamList'
import { useData } from '@/hooks/useData'

// Minimal selector data (team switcher dropdowns, nav menus)
const { resource: adminTeams } = useData<TeamList>(
  httpClient,
  endpoints.teams.list(true), // isTeamAdmin=true
  { shape: { fields: ['Records.Id', 'Records.Name'] } },
)

// Richer data for management pages
const { resource: allTeams } = useData<TeamList>(
  httpClient,
  endpoints.teams.list(false), // isTeamAdmin=false
  {
    shape: {
      fields: ['Records.Id', 'Records.Name', 'Records.ProfileSummary', 'Records.TeamMembersCount'],
    },
  },
)

Usage in Portal

The isTeamAdmin flag drives a clear permission split across the portal:
ContextisTeamAdminSource file
Team Dashboard team-switchertruesrc/views/user/dashboards/team/TeamDashboardPage.tsx
Team Profile editortruesrc/views/user/team/profile/TeamProfessionalProfilePage.tsx
Team Permissions managementtruesrc/views/user/team/permissions/TeamPermissionsPage.tsx
Team Attendance managementtruesrc/views/user/team/attendance/AttendanceManagementPage.tsx
Global navigation menutruesrc/states/useMenuItems.tsx
Team Attendance dashboardfalsesrc/views/user/team/attendance/AttendanceDashboardPage.tsx
Attendance managementtruesrc/views/user/team/attendance/AttendanceManagementPage.tsx
My Bookings team selectorfalsesrc/views/user/activity/bookings/MyBookingsSection.tsx
Booking visitorsfalsesrc/views/public/checkout/booking/components/BookingVisitors.tsx
Onboarding profile actionfalsesrc/views/user/dashboards/personal/components/OnBoarding/components/CompleteProfileActionPanel.tsx
Team members sectionfalsesrc/views/user/team/members/TeamMembersSection.tsx

Error Responses

401 Unauthorized
error
The customer is not authenticated or the session has expired. Re-authenticate and retry.
400 Bad Request
error
A query parameter value is invalid — for example, a non-boolean isTeamAdmin or an out-of-range _pageSize.
MethodEndpointDescription
GET/api/public/teams/{teamId}/profileFull profile for a single team
PUT/api/public/teams/{teamId}/profileUpdate team profile (admin only)
GET/api/public/teams/{teamId}/kpiTeam KPI metrics
GET/api/public/teams/{teamId}/attendanceTeam attendance data
GET/api/public/teams/{teamId}/metricsTeam performance metrics
POST/api/public/teams/{teamId}/membersAdd members to a team
DELETE/api/public/teams/{teamId}/members/{coworkerId}Remove a member from a team