List registration opportunities
Returns a paginated list of registration opportunities with optional filtering.
- Type: integerfilter[parent
_program _id] Filter by program ID.
- Type: stringfilter[status]
Filter by status. Supports multiple comma-separated values. Options: active, upcoming, past, ongoing, archived.
- Type: stringfilter[query]
Search registration opportunities by name (partial match).
- Type: booleanfilter[with
_participants] Filter to only registration opportunities that have participants.
- Type: booleanfilter[can
_register] Filter to only registration opportunities the authenticated user can register for.
- Type: booleanfilter[upcoming]
Filter to only upcoming registration opportunities.
- Type: booleanfilter[past]
Filter to only past registration opportunities.
- Type: stringfilter[archived
_at] Filter by archived status. Pass empty string to exclude archived registration opportunities.
- Type: stringfilter[deleted
_at] Filter by deleted status. Pass empty string to exclude deleted registration opportunities.
- Type: stringinclude
Include related resources (comma-separated). Options: signups, parentProgram, waitlistSignups, attendanceSheets, occurrences.
- Type: stringappend
Append computed attributes (comma-separated). Options: audience, signup_count.
- Type: stringsort
Sort results by field. Prefix with - for descending. Options: id, registration_start_date, registration_end_date, event_start_date, event_end_date, created_at.
- Type: stringX
- Api - Version Optional API version for this request. When omitted, the server uses the default version. This documentation describes version 2026-02-01.
- application/json
- application/json
curl 'https://api.getcommunal.com/api/programs?filter[parent_program_id]=5&filter[status]=upcoming&filter[query]=basketball&filter[with_participants]=true&filter[can_register]=true&filter[upcoming]=true&filter[past]=true&filter[archived_at]=&filter[deleted_at]=&include=signups%2CparentProgram&append=signup_count&sort=-event_start_date' \
--header 'X-Api-Version: 2026-02-01' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
"data": [
{
"id": 42,
"name": "Youth Basketball Camp",
"description": "A fun week-long basketball camp for ages 8-12.",
"parent_program_id": 5,
"class_limit": 25,
"event_start_date": "2025-07-01T09:00:00.000000Z",
"event_end_date": "2025-07-05T16:00:00.000000Z",
"registration_start_date": "2025-05-01T00:00:00.000000Z",
"registration_end_date": "2025-06-25T23:59:59.000000Z",
"registration_open_until_event_start": true,
"readable_event_start_date": "July 1, 2025",
"readable_event_end_date": "July 5, 2025",
"readable_registration_start_date": "May 1, 2025",
"readable_registration_end_date": "June 25, 2025",
"event_start_time": "09:00:00",
"event_end_time": "16:00:00",
"readable_event_start_time": "9:00 AM",
"readable_event_end_time": "4:00 PM",
"status": "active",
"ongoing": false,
"archived_at": "2025-01-30T18:00:00.000000Z",
"deleted_at": "2025-01-25T12:00:00.000000Z",
"waitlist_enabled": true,
"exclude_from_reminder_emails": false,
"is_priority_waitlist_locked": false,
"multiple_signups": false,
"display_to_all_users": true,
"hide_from_non_buyers": false,
"dob_validation": true,
"min_date_of_birth": "2017-12-31",
"max_date_of_birth": "2013-01-01",
"program_prices": [
{
"price": 7500,
"label": "Member"
},
{
"price": 10000,
"label": "Non-Member"
}
],
"free": false,
"ignore_gst": false,
"product_id": "prod_abc123",
"registration_start_time": "00:00:00",
"registration_end_time": "23:59:59",
"is_event": false,
"prompt_for_registrant": false,
"prompt_for_number_of_guests": false,
"force_additional_member_info": false,
"allow_file_uploads": false,
"file_uploads_required": false,
"file_uploads_max": 5,
"pay_by_cash": true,
"collect_additional_information": false,
"form_id": 15,
"created_at": "2025-01-15T10:30:00.000000Z",
"updated_at": "2025-01-20T14:45:00.000000Z",
"member_savings": 1000,
"price_for_user": 7500,
"num_signups_remaining_for_user": 2,
"lowest_price_excluded": 5000,
"highest_price": 15000,
"signup_count": 18,
"is_full": false,
"spots_remaining": 7,
"user_signup_count": 1,
"volunteer_price": 5000,
"volunteer_price_is_free": true,
"price_id_for_user": "price_abc123",
"required_membership_id_for_user": "prod_abc123",
"price_recurs_for_user": true,
"price_interval_for_user": "month",
"price_interval_count_for_user": 1,
"can_user_purchase": true,
"required_membership_names": [
"Base Membership",
"Premium Membership"
],
"signups": "string",
"parent_program": "string",
"prices": "string",
"metadata": "string",
"waivers": "string",
"waitlist_signups": "string",
"attendance_sheets": "string",
"occurrences": "string",
"recurrence_rule": "string"
}
],
"current_page": 1,
"from": null,
"last_page": 1,
"per_page": 1,
"to": null,
"total": 0
}