Groups
The group commands read LinkedIn groups: the groups a member belongs to, one group's full detail, and a group's member roster. All commands are account-scoped and require --account (or a default set via curviate config set-account).
All three subcommands are reads: they never accept --preview (passing it is a usage error, exit code 2). Every command supports --json (automatic when stdout is not a TTY) and --fields for a dot-path projection; the two list commands additionally support --limit, --cursor, --all, and --max-pages.
Commands
# List the groups a member belongs to (paginated read)
# Reads YOUR connected account's own groups by default.
# --target reads another member's public group set (their interests-groups
# section) instead of your own. Accepts a vanity slug or a full /in/ URL,
# passed through as-is. Omit it to enumerate your own groups.
curviate group list [--target <vanity|url>] [--limit <n>] [--cursor <token>] [--all] [--max-pages <n>]The id on each returned group is what group get and group members consume. The --target value is passed through as-is; an unresolvable one surfaces a clear error from the API rather than silently returning an empty list.
# Get one group's full detail (scalar read)
# <group> accepts the group's id or its LinkedIn group URL, passed verbatim.
curviate group get <group>group get returns:
{
"object": "Group",
"id": "12345678",
"entity_urn": "urn:li:fsd_group:12345678",
"name": "GTM Engineering",
"member_count": 4820,
"description": "A community for go-to-market engineers.",
"type": "STANDARD",
"public_visibility": true
}Both group list and group get return a slim default: sample_past_members[] is dropped; everything else, including admin{}, stays. Pass --verbose to include sample_past_members[].
# List a group's members (paginated read)
# --name filters the roster by member name (prefix/substring, multi-word,
# case-insensitive): the folded-in member search, the SAME endpoint with a
# name filter, not a separate command.
curviate group members <group> [--name <query>] [--limit <n>] [--cursor <token>] [--all] [--max-pages <n>]Each member item carries its profile URL, name, and headline. A cursor is scoped to the --name it was minted under — replaying a cursor with a different --name is rejected upstream, so keep --name stable while paginating one search.
Pagination
The two list commands are cursor-paginated. A page returns a cursor; pass it back with --cursor <token> to fetch the next page, and walk until cursor is null. To stream every page as NDJSON in one command, use --all (bounded by --max-pages, default 100):
curviate group members 12345678 --all --account acc_YOUR_ACCOUNT_IDExamples
List your own groups
curviate group list --account acc_YOUR_ACCOUNT_IDList another member's public groups
# By vanity slug or full URL
curviate group list --target janesmith --account acc_YOUR_ACCOUNT_ID
curviate group list --target https://linkedin.com/in/janesmith --account acc_YOUR_ACCOUNT_IDGet one group's detail
# By group id
curviate group get 12345678 --account acc_YOUR_ACCOUNT_ID
# By LinkedIn group URL
curviate group get https://www.linkedin.com/groups/12345678/ --account acc_YOUR_ACCOUNT_IDSearch a group's members by name
curviate group members 12345678 --name "sophie" --account acc_YOUR_ACCOUNT_ID