# List attendance

`GET /onair.attendance.list`

## Description

Returns the attendance report for an On-Air event, combining RSVP data with
join/duration information. Guests with RSVP records are listed first,
followed by any additional attendees who joined without an RSVP.

**Access:** Organization and Personal.

**Required scope:** `onair:read`

---

**OpenAPI Spec:** [onair.json](https://developer.ro.am/onair.json)

## Authentication

```
Authorization: Bearer YOUR_API_KEY
```

## Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `eventId` | query | string | Yes | The event identifier. |

## Responses

### 200 - Attendance report for the event.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `attendees` | OnAirAttendee[] | No |  |

**OnAirAttendee** (array item):

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `email` | string | No | Email address of the attendee. |
| `name` | string | No | Display name of the attendee. |
| `phone` | string | No | Phone number of the attendee. |
| `rsvpStatus` | "invited" | "going" | "maybe" | "notGoing" | No | RSVP status of the attendee. |
| `created` | string | No | When the attendee was added (RFC3339, in the authenticated user's timezone). Omitted when unknown. |
| `rsvpLastUpdate` | string | No | When the RSVP status was last changed (RFC3339, in the authenticated user's timezone). Omitted when unknown. |
| `joinDurationMinutes` | number | No | Total minutes the attendee was joined to the event. |
| `joinStart` | string | No | When the attendee first joined the event (RFC3339, in the authenticated user's timezone). Omitted if the attendee never joined. |
| `customResponses` | object | No | Custom form responses submitted by the attendee. |


#### Example Response

```json
{
  "attendees": [
    {
      "email": "alice@example.com",
      "name": "Alice Johnson",
      "rsvpStatus": "going",
      "created": "2026-03-31T17:00:00-07:00",
      "rsvpLastUpdate": "2026-03-31T19:00:00-07:00",
      "joinDurationMinutes": 55.3,
      "joinStart": "2026-04-01T07:00:00-07:00"
    }
  ]
}
```

### 400 - Bad request.

### 401 - Presented invalid authentication credentials.

### 500 - An internal error occurred.

---

*Machine-readable API documentation.*
*Full documentation: https://developer.ro.am/docs/onair-api/onair-attendance-list*
