Skip to main content
The Attendance API enables ushers to track attendance counts (adults and children) for meetings and log visitor information for follow-up.

Authentication

All attendance endpoints require authentication via JWT token and appropriate permissions:
  • church.read - Required for viewing attendance
  • reunions.view - Required for recording attendance and visitors
Pass the JWT token in the Authorization header as Bearer YOUR_TOKEN

Get Attendance

Retrieve attendance count and visitor list for a specific meeting.
GET /api/attendance?meeting_id={meetingId}
meeting_id
number
required
The ID of the meeting to retrieve attendance for
church_id
number
The church ID (optional, determined from user context if not provided)

Response

success
boolean
Whether the request was successful
count
object
Attendance count object
visitors
array
Array of visitor objects

Example

cURL
curl -X GET "https://your-domain.com/api/attendance?meeting_id=123" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
Response
{
  "success": true,
  "count": {
    "adults": 87,
    "children": 23,
    "total": 110
  },
  "visitors": [
    {
      "id": 1,
      "first_name": "John",
      "last_name": "Doe",
      "phone": "+1234567890",
      "email": "[email protected]",
      "notes": "Interested in joining the worship team"
    }
  ]
}

Save Attendance Count

Record or update the attendance count for a meeting.
POST /api/attendance/count?meeting_id={meetingId}
meeting_id
number
required
The ID of the meeting to record attendance for

Request Body

adults
number
required
Number of adults present
children
number
required
Number of children present

Response

success
boolean
Whether the count was saved successfully

Example

cURL
curl -X POST "https://your-domain.com/api/attendance/count?meeting_id=123" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "adults": 87,
    "children": 23
  }'
Response
{
  "success": true
}

Add Visitor

Log a first-time visitor to a meeting for follow-up.
POST /api/attendance/visitor?meeting_id={meetingId}
meeting_id
number
required
The ID of the meeting the visitor attended

Request Body

first_name
string
required
Visitor’s first name
last_name
string
Visitor’s last name
phone
string
Visitor’s phone number
email
string
Visitor’s email address
notes
string
Additional notes or comments about the visitor

Response

success
boolean
Whether the visitor was logged successfully

Example

cURL
curl -X POST "https://your-domain.com/api/attendance/visitor?meeting_id=123" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "Jane",
    "last_name": "Smith",
    "phone": "+1234567890",
    "email": "[email protected]",
    "notes": "Visiting from out of town"
  }'
Response
{
  "success": true
}

Delete Visitor

Remove a visitor record from the system.
DELETE /api/attendance/visitor?id={visitorId}
id
number
required
The ID of the visitor to delete
church_id
number
The church ID for permission verification

Response

success
boolean
Whether the visitor was deleted successfully

Example

cURL
curl -X DELETE "https://your-domain.com/api/attendance/visitor?id=1" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
Response
{
  "success": true
}

Get Attendance Report

Retrieve attendance statistics for a church over a date range.
GET /api/attendance/report
church_id
number
The church ID (optional, determined from user context if not provided)
start
string
Start date in YYYY-MM-DD format (defaults to first day of current month)
end
string
End date in YYYY-MM-DD format (defaults to last day of current month)

Response

success
boolean
Whether the request was successful
report
array
Array of attendance records with date, adults, children, and total counts

Example

cURL
curl -X GET "https://your-domain.com/api/attendance/report?start=2024-01-01&end=2024-01-31" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
Response
{
  "success": true,
  "report": [
    {
      "date": "2024-01-07",
      "adults": 95,
      "children": 28,
      "total": 123
    },
    {
      "date": "2024-01-14",
      "adults": 87,
      "children": 23,
      "total": 110
    }
  ]
}

Error Responses

All attendance endpoints may return the following error responses:
StatusErrorDescription
400Missing meeting_idThe meeting_id parameter is required
400Missing first_nameFirst name is required when adding a visitor
401UnauthorizedInvalid or missing JWT token
403ForbiddenUser lacks required permissions

Calendar API

Manage meetings and service scheduling

Teams API

Organize usher teams and assignments

Build docs developers (and LLMs) love