View attendance

Attendance in Communal is tracked through two resources: attendance sheets (one per session per date) and attendance records (one per participant per sheet). This guide shows you how to list attendance sheets for a session, load records for a specific date, and retrieve individual attendance entries with participant details.

Before you begin

1. List attendance sheets for a session

Start by fetching the attendance sheets for a registration opportunity. Each sheet represents a single date, so a multi-day session will have one sheet per meeting date.

curl -X GET "https://api.getcommunal.com/api/attendance_sheets?filter[registration_opportunity_id]=101" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

The response includes a paginated list of sheets, each identified by its date and linked to the registration opportunity.

{
  "data": [
    {
      "id": 10,
      "registration_opportunity_id": 101,
      "date": "2025-06-15",
      "created_at": "2025-06-15T10:30:00.000000Z",
      "updated_at": "2025-06-15T10:30:00.000000Z"
    },
    {
      "id": 11,
      "registration_opportunity_id": 101,
      "date": "2025-06-16",
      "created_at": "2025-06-16T09:00:00.000000Z",
      "updated_at": "2025-06-16T09:00:00.000000Z"
    }
  ],
  "meta": { "current_page": 1, "last_page": 1, "per_page": 30, "total": 2 }
}

2. Filter sheets by date

When you need the attendance sheet for a specific day — for example to show today's roster — add the filter[date] parameter.

curl -X GET "https://api.getcommunal.com/api/attendance_sheets?filter[registration_opportunity_id]=101&filter[date]=2025-06-15" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

This returns at most one sheet matching that session and date. Use this to resolve the correct sheet ID before loading its attendance records.

3. Load a sheet with its attendance records

To get a complete attendance view for a single date, fetch the sheet by ID with include=records. Each record carries a status and optional notes for one participant.

curl -X GET "https://api.getcommunal.com/api/attendance_sheets/10?include=records" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
{
  "data": {
    "id": 10,
    "registration_opportunity_id": 101,
    "date": "2025-06-15",
    "records": [
      {
        "id": 501,
        "attendance_sheet_id": 10,
        "program_signup_id": 156,
        "status": "present",
        "notes": null
      },
      {
        "id": 502,
        "attendance_sheet_id": 10,
        "program_signup_id": 157,
        "status": "absent",
        "notes": "Left early due to illness"
      }
    ]
  }
}

Attendance statuses are: present, absent, late, excused, excluded, and unmarked (the default when a record is first created).

4. List attendance records with participant details

When building a roster view that shows participant names alongside their attendance status, query the records endpoint directly and include the program signup.

curl -X GET "https://api.getcommunal.com/api/attendance_records?filter[attendance_sheet_id]=10&include=programSignup" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

The programSignup include returns the signup record with participant contact details like associated_name and associated_email, so you can display a complete attendance list without additional requests.

To load the full context for a single attendance record — including both the sheet and the signup — use the show endpoint with both includes:

curl -X GET "https://api.getcommunal.com/api/attendance_records/501?include=attendanceSheet,programSignup" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

What's next

  • Retrieve program signups — list and filter the signups that attendance records link to
  • Browse registration opportunities — find the session IDs to query attendance for
  • See the Attendance Sheet and Attendance Record endpoints in the API Reference for the complete list of fields and includes