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
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
The authenticated user account record.
Unique numeric identifier for the user account.
Display name for the user account.
Email address used to sign in.
true when the account is active and not suspended.
true when the user has operator-level admin access.
Current bearer token for the session (mirrors the Authorization header value).
The default location associated with this user.
Numeric identifier of the default location.
Display name of the default location.
DefaultBusiness.WebAddress
Subdomain identifier for the default location.
All customer profiles accessible to this user.
Numeric identifier of the customer profile. Use this as coworkerId in profile-scoped endpoints.
Display name for this profile.
Company name for this profile.
true when this profile is active.
Profiles[].IsDefaultProfile
true when this is the currently active profile for the session.
Profile type: 1 = Individual, 2 = Company.
Profiles[].HasVirtualOffice
true when a Virtual Office contract is active for this profile.
Profiles[].VirtualOfficePaused
true when the Virtual Office contract is currently paused.
Profiles[].VirtualOfficeContractId
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
| Context | Source file |
|---|
| Session bootstrap — loads all profiles on sign-in | src/states/useAuthContext.tsx |
| Account switcher dropdown in navigation | src/components/NavBar/AccountDropdown.tsx |
Error Responses
The bearer token is missing, expired, or invalid.
| Method | Endpoint | Description |
|---|
PUT | /api/public/coworkers/profiles/current | Switch the active profile for the session |
GET | /api/public/coworkers/profiles/current/benefits | Get plan benefits for the active profile |
GET | /en/profile?_resource=Coworker | Retrieve full editable customer profile |