List members and invitations
List a sub-account's active members (oldest first) plus its pending invitations (unaccepted and unexpired).
GET
https://api.centerfy.ai/webhooks/inbound/agency/sub-accounts/:id/users Headers
| Header | Required | Value | Description |
|---|---|---|---|
x-api-key | Yes | your agency API key (cfy_…) | Agency (organization-wide) API key, created in the agency workspace under Settings → API Keys (“Agency API Keys”; the tab only appears on White Label or SaaS Mode plans). Or send Authorization: Bearer <key>; x-api-key wins if both are present. Keys must start with cfy_. A sub-account key is rejected with 401. |
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The sub-account id. Must belong to the key’s agency and not be deleted. |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer | No | 50 | Page size; minimum 1, maximum 100 (larger values are rejected with 400). |
offset | integer | No | 0 | Number of records to skip for paging; minimum 0. |
Example
curl -X GET "https://api.centerfy.ai/webhooks/inbound/agency/sub-accounts/{id}/users?limit=50&offset=0" \
-H "x-api-key: $CENTERFY_AGENCY_API_KEY" import { CenterfyAgencyClient } from "@centerfy/sdk";
const agency = new CenterfyAgencyClient({ apiKey: process.env.CENTERFY_AGENCY_API_KEY! });
const result = await agency.subAccountUsers.list("<subAccountId>", {
"limit": 50,
"offset": 0
});
console.log(result); centerfy --agency subAccountUsers list <subAccountId> '{"limit":50,"offset":0}' MCP tool: centerfy_agency_sub_account_users_list (see MCP server)
Response
{
"status": "success",
"total": 2,
"limit": 50,
"offset": 0,
"has_more": false,
"users": [
{
"user_id": "8d4c6f51-be70-4192-8d3e-4f5a6b7c8d04",
"email": "[email protected]",
"first_name": "Jordan",
"last_name": "Lee",
"role": "sub_account_owner",
"created_at": "2026-09-14T15:30:00.000Z"
},
{
"user_id": "9e5d7062-cf81-42a3-9e4f-5a6b7c8d9e05",
"email": "[email protected]",
"first_name": "Sam",
"last_name": "Rivera",
"role": "sub_account_user",
"created_at": "2026-09-20T10:00:00.000Z"
}
],
"pending_invitations": [
{
"id": "af6e8173-d092-43b4-af50-6b7c8d9eaf06",
"email": "[email protected]",
"first_name": "Alex",
"last_name": "Kim",
"role": "sub_account_admin",
"created_at": "2026-10-04T09:00:00.000Z",
"expires_at": "2026-10-11T09:00:00.000Z"
}
]
}Errors
404— when the sub-account id is not a uuid, does not exist, is deleted, or belongs to another agency.401— when the key is missing, not cfy_-prefixed or unknown (including sub-account keys); 403 when the agency is not on a White Label or SaaS Mode plan; 429 above 50 requests per minute per agency (Retry-After header set); 500 ‘database error’ on an internal failure.
Notes
limit/offset page the members only; pending_invitations is always returned in full (newest first). email and names are null if the user has no profile.