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

# talkvalue path event person list

> List people registered for an event with channel, company, job-title, keyword, and pagination filters.

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

```bash theme={null}
talkvalue path event person list <eventId> [options]
```

## Arguments

| Argument    | Type    | Description                                                              |
| ----------- | ------- | ------------------------------------------------------------------------ |
| `<eventId>` | integer | Event ID. Use [`event list`](/cli/commands/path/event/list) to find one. |

## Options

| Flag                    | Type                 | Description                                                                                   |
| ----------------------- | -------------------- | --------------------------------------------------------------------------------------------- |
| `--keyword <keyword>`   | string               | Free-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>`     | integer              | Limit by company ID.                                                                          |
| `--company-name <name>` | string               | Limit by company display name.                                                                |
| `--job-title <title>`   | string               | Limit by job title.                                                                           |
| `--page <n>`            | integer              | Page number (zero-indexed). Defaults to `0`.                                                  |
| `--page-size <n>`       | integer              | Page 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

```bash theme={null}
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

```bash theme={null}
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

```bash theme={null}
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](/cli/recipes/scripting-with-jq) for richer pagination patterns.

## Response

```jsonc theme={null}
{
  "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`](/cli/commands/path/channel/list) and [`path event`](/cli/commands/path/event/list).

## See also

* [`event person export`](/cli/commands/path/event/person-export). Stream every registrant as CSV.
* [`path person list`](/cli/commands/path/person/list). Workspace-wide people query with the same filter grammar.
* [Recipe: New registrants this week](/cli/recipes/new-registrants). `--sort joinedAt,desc` report.
* [Events](/path/manage/events). The dashboard surface this command mirrors.
