List registration opportunities

Returns a paginated list of registration opportunities with optional filtering.

Query Parameters
  • filter[parent_program_id]
    Type: integer

    Filter by program ID.

  • filter[status]
    Type: string

    Filter by status. Supports multiple comma-separated values. Options: active, upcoming, past, ongoing, archived.

  • filter[query]
    Type: string

    Search registration opportunities by name (partial match).

  • filter[with_participants]
    Type: boolean

    Filter to only registration opportunities that have participants.

  • filter[can_register]
    Type: boolean

    Filter to only registration opportunities the authenticated user can register for.

  • filter[upcoming]
    Type: boolean

    Filter to only upcoming registration opportunities.

  • filter[past]
    Type: boolean

    Filter to only past registration opportunities.

  • filter[archived_at]
    Type: string

    Filter by archived status. Pass empty string to exclude archived registration opportunities.

  • filter[deleted_at]
    Type: string

    Filter by deleted status. Pass empty string to exclude deleted registration opportunities.

  • include
    Type: string

    Include related resources (comma-separated). Options: signups, parentProgram, waitlistSignups, attendanceSheets, occurrences.

  • append
    Type: string

    Append computed attributes (comma-separated). Options: audience, signup_count.

  • sort
    Type: string

    Sort results by field. Prefix with - for descending. Options: id, registration_start_date, registration_end_date, event_start_date, event_end_date, created_at.

Headers
  • X-Api-Version
    Type: string

    Optional API version for this request. When omitted, the server uses the default version. This documentation describes version 2026-02-01.

Responses
  • application/json
  • application/json
Request Example for get/programs
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
}