> ## Documentation Index
> Fetch the complete documentation index at: https://docs.linkedcamp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sub-accounts

> List the sub-accounts under your agency. Owner-only, and the source of every userId.

One tool, and it is the entry point to everything in
[MCP for agencies](/mcp/agencies): it is where a `userId` comes from, and seven
other tools accept one to answer for that client instead of you.

> [!WARNING]
>
> **Owner-only.** Only an account owner's key can use this. It is not hidden
> from the tool list, though — every client is shown the tool, and the refusal
> comes when it is called. Seeing it listed does not mean your key can use it.

| Tool | Kind |
| - | - |
| [`subaccount_list`](#subaccount_list) | Read-only |

## subaccount\_list

Read-only

The active sub-accounts under your agency: id, name, email, plan and state.

Scoping is not yours to pass. The list is always your own agency, and never
includes you. There is no argument that widens it, and no credential fields are
returned.

`whoami` reports your role under `_derived` if you need to check before calling.

### Parameters

**keyword** `string`

Filter by name.

**page** `integer` (default: 1)

Page number.

**pageSize** `integer` (default: 50)

Results per page, up to 200.

### What counts as active

A sub-account is listed when it is enabled and on a plan. Three kinds are left
out: disabled accounts, deleted accounts, and accounts not on a plan yet.

`excluded` in the response says how many were left out, so a list shorter than
you expected is never silent.

An account that is not listed cannot be passed as a `userId` either — one rule
decides both, so the list is exactly the set you can act on.

> [!NOTE]
>
> **An empty result is ambiguous, and the tool says so.** You get an empty list
> both when you have no active sub-accounts and when the key is not an account
> owner — the two cannot be told apart from the response. Do not report "you have
> no sub-accounts" from an empty list alone; check the role with `whoami` first.

### Where the id is used

Seven tools take a `userId` and answer for that sub-account. Six read; one
writes:

| Tool | Kind |
| - | - |
| [`campaign_list`](/mcp/tools/campaigns#campaign_list) | Read-only |
| [`linkedin_account_list`](/mcp/tools/accounts#linkedin_account_list) | Read-only |
| [`email_account_list`](/mcp/tools/accounts#email_account_list) | Read-only |
| [`analytics_campaign`](/mcp/tools/analytics#analytics_campaign) | Read-only |
| [`analytics_reporting`](/mcp/tools/analytics#analytics_reporting) | Read-only |
| [`tag_list`](/mcp/tools/library#tag_list) | Read-only |
| [`agent_duplicate`](/mcp/tools/agents#agent_duplicate) | **Write** — creates an agent inside that account |

Take the id from here. Never construct or guess one: a wrong `userId` does not
fail quietly, it names a different account. An id from outside your own agency
is refused by the server rather than hidden, so there is nothing to retry.

Records reached by id — `campaignId`, `leadId`, `conversationId`,
`linkedAccountId` — work on a sub-account's records too, including writes. See
[MCP for agencies](/mcp/agencies#records-by-id).

### Not the same as team\_members\_list

[`team_members_list`](/mcp/tools/settings#team_members_list) lists MANAGERs on
your own account — people with access to **your** data. This lists separate
accounts with their own data, leads and campaigns.

Creating, disabling and licensing sub-accounts happens in the web app; none of
it is exposed over MCP.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.