Skip to main content
GET
/
api
/
public
/
coworkers
/
profiles
{
  "User": {},
  "User.Id": 123,
  "User.FullName": "<string>",
  "User.Email": "<string>",
  "User.Active": true,
  "User.IsAdmin": true,
  "User.AccessToken": "<string>",
  "DefaultBusiness": {},
  "DefaultBusiness.Id": 123,
  "DefaultBusiness.Name": "<string>",
  "DefaultBusiness.WebAddress": "<string>",
  "Profiles": [
    {}
  ],
  "Profiles[].Id": 123,
  "Profiles[].FullName": "<string>",
  "Profiles[].CompanyName": "<string>",
  "Profiles[].Active": true,
  "Profiles[].IsDefaultProfile": true,
  "Profiles[].CoworkerType": 123,
  "Profiles[].HasVirtualOffice": true,
  "Profiles[].VirtualOfficePaused": {},
  "Profiles[].VirtualOfficeContractId": {},
  "401 Unauthorized": {}
}

List Customer Profiles

Returns all customer profiles linked to the authenticated user account, together with the user record and default business. A single user account can have multiple profiles — for example, an individual member profile and a company profile — and can switch between them. The portal fetches this on every authenticated session bootstrap to populate the account switcher.
A profile in Nexudus represents a customer record tied to a specific location. One user can have profiles across multiple locations or multiple profile types (individual, company) within the same location.

Authentication

Requires a valid customer bearer token.

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. Example: _shape=Records.FullName,Records.CompanyName,Records.Avatar.

Response

User
object
The authenticated user account record.
User.Id
number
Unique numeric identifier for the user account.
User.FullName
string
Display name for the user account.
User.Email
string
Email address used to sign in.
User.Active
boolean
true when the account is active and not suspended.
User.IsAdmin
boolean
true when the user has operator-level admin access.
User.AccessToken
string
Current bearer token for the session (mirrors the Authorization header value).
DefaultBusiness
object
The default location associated with this user.
DefaultBusiness.Id
number
Numeric identifier of the default location.
DefaultBusiness.Name
string
Display name of the default location.
DefaultBusiness.WebAddress
string
Subdomain identifier for the default location.
Profiles
array
All customer profiles accessible to this user.
Profiles[].Id
number
Numeric identifier of the customer profile. Use this as coworkerId in profile-scoped endpoints.
Profiles[].FullName
string
Display name for this profile.
Profiles[].CompanyName
string
Company name for this profile.
Profiles[].Active
boolean
true when this profile is active.
Profiles[].IsDefaultProfile
boolean
true when this is the currently active profile for the session.
Profiles[].CoworkerType
number
Profile type: 1 = Individual, 2 = Company.
Profiles[].HasVirtualOffice
boolean
true when a Virtual Office contract is active for this profile.
Profiles[].VirtualOfficePaused
boolean | null
true when the Virtual Office contract is currently paused.
Profiles[].VirtualOfficeContractId
number | null
ID of the Virtual Office contract, if one exists. Use with GET /api/public/billing/coworkerContracts/{contractId}.

Example Response

{
  "User": {
    "Id": 42,
    "FullName": "Jane Doe",
    "Email": "jane.doe@example.com",
    "Active": true,
    "IsAdmin": false,
    "AccessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
  },
  "DefaultBusiness": {
    "Id": 7,
    "Name": "Nexudus HQ",
    "WebAddress": "nexudushq"
  },
  "Profiles": [
    {
      "Id": 101,
      "FullName": "Jane Doe",
      "CompanyName": "",
      "Active": true,
      "IsDefaultProfile": true,
      "CoworkerType": 1,
      "HasVirtualOffice": false,
      "VirtualOfficePaused": null,
      "VirtualOfficeContractId": null
    },
    {
      "Id": 102,
      "FullName": "Acme Design Co.",
      "CompanyName": "Acme Design Co.",
      "Active": true,
      "IsDefaultProfile": false,
      "CoworkerType": 2,
      "HasVirtualOffice": true,
      "VirtualOfficePaused": false,
      "VirtualOfficeContractId": 55
    }
  ]
}

TypeScript Integration

import endpoints from '@/api/endpoints'
import { CoworkerProfiles } from '@/types/sys/CoworkerProfiles'
import { useData } from '@/api/fetchData'

const { resource: profiles } = useData<CoworkerProfiles>(httpClient, endpoints.coworkers.profiles)

const activeProfile = profiles?.Profiles.find((p) => p.IsDefaultProfile)

Usage in Portal

ContextSource file
Session bootstrap — loads all profiles on sign-insrc/states/useAuthContext.tsx
Account switcher dropdown in navigationsrc/components/NavBar/AccountDropdown.tsx

Error Responses

401 Unauthorized
error
The bearer token is missing, expired, or invalid.
MethodEndpointDescription
PUT/api/public/coworkers/profiles/currentSwitch the active profile for the session
GET/api/public/coworkers/profiles/current/benefitsGet plan benefits for the active profile
GET/en/profile?_resource=CoworkerRetrieve full editable customer profile