Skip to main content
Page through the people registered for a single event. Combine filters to slice the roster, then pipe to jq or save as JSON. The dashboard event-detail page uses the same backend query.

Synopsis

talkvalue path event person list <eventId> [options]

Arguments

ArgumentTypeDescription
<eventId>integerEvent ID. Use event list to find one.

Options

FlagTypeDescription
--keyword <keyword>stringFree-text match against name, email, phone, company, and job title.
--channel-id <id>integer (repeatable)Limit to people also joined to the given channel. Repeat to OR multiple.
--company-id <id>integerLimit by company ID.
--company-name <name>stringLimit by company display name.
--job-title <title>stringLimit by job title.
--page <n>integerPage number (zero-indexed). Defaults to 0.
--page-size <n>integerPage size. Defaults to the server default.
--sort <value>string (repeatable)Sort expression field,direction (for example, joinedAt,desc). Repeat for secondary sorts.

Examples

1. Browse the latest registrants

talkvalue path event person list 18 --sort "joinedAt,desc" --page-size 20
Prints the 20 most recent registrants as a table: ID, name, primary email, company, job title, joined-at, created-at.

2. Filter by channel and pipe to jq

talkvalue path event person list 18 \
  --channel-id 7 \
  --json \
  | jq '.data[] | {name, primaryEmail, companyName}'
Returns people on event 18 who also belong to channel 7, stripped to three fields. The --json envelope carries .pagination.

3. Walk every page in a script

page=0
while :; do
  resp=$(talkvalue path event person list 18 --page "$page" --page-size 100 --json)
  echo "$resp" | jq -e '.data | length > 0' >/dev/null || break
  echo "$resp" | jq '.data[]'
  page=$((page + 1))
done
Loops until a page returns no rows. See Scripting with jq for richer pagination patterns.

Response

{
  "data": [
    {
      "id": 142,
      "name": "Alice Kim",
      "primaryEmail": "alice@acme.com",
      "primaryPhone": "+1-415-555-0199",
      "company": { "id": 88, "displayName": "Acme Inc.", "domain": "acme.com", "nameUpdatable": true },
      "companyName": "Acme Inc.",
      "jobTitle": "Head of Growth",
      "channels": [/* … */],
      "events": [/* … */],
      "joinedAt": "2026-05-02T17:00:00Z",
      "createdAt": "2026-04-12T00:00:00Z"
    }
  ],
  "pagination": { "page": 0, "pageSize": 20, "totalElements": 247, "totalPages": 13 }
}
pagination appears only in --json. companyName is a flattened convenience field. The full company object is also included. joinedAt is when the person registered for the event. The channels array carries a slim per-person shape — { id, name, icon, joinedAt } — and events carries { id, name, joinedAt }. These are narrower than the full records returned by path channel and path event.

See also