## List member enrollments `members.list_enrollments(member_id) -> MemberListEnrollmentsResponse` **get** `/v1/members/{member_id}/enrollments` Lists a member's benefit enrollments across every employer — benefit type and product, employer, carrier, plan, tier, employee deduction, employer contribution and total premium, the individual enrollment coverage boundary (`coverage_end`), the separate pre-effective cancellation boundary (`cancelled_date`), and the distinct benefit plan-year boundary (`plan_year_coverage_end`) used to determine whether the plan year itself has ended, whether a qualifying life event would currently be required for reissue under the product/open-enrollment rule, enrollment/open-enrollment window, and two statuses: `election_status` (what the member answered) and `policy_status` (what became of their coverage, null unless they enrolled). Every row includes a stable enrollment ID and the exact employer and benefit plan-year IDs used to fetch that row's plan-year detail. The full list is returned across all states so the client derives active plans (effective and upcoming) and the enrollment history from those per-row statuses. For an organization caller the rows are scoped to companies in that organization's book; a member (self/household) or Vitable Admin sees all enrollments. A member not visible to the caller returns a 404. ### Parameters - `member_id: String` Unique member identifier (mbr_*) ### Returns - `class MemberListEnrollmentsResponse` Unpaginated `{"data": [...]}` list of member enrollments. - `data: Array[{ id, benefit_plan_year_id, benefit_type, 21 more}]` - `id: String` Opaque, stable enrollment identifier used to target enrollment actions - `benefit_plan_year_id: String` Exact benefit plan-year identifier for this enrollment - `benefit_type: :Medical | :Dental | :Vision | :Hospital` * `Medical` - Medical * `Dental` - Dental * `Vision` - Vision * `Hospital` - Hospital - `:Medical` - `:Dental` - `:Vision` - `:Hospital` - `cancelled_date: Date` Earliest applicable coverage boundary (YYYY-MM-DD) when coverage was cancelled before its effective start; null unless the enrollment was cancelled - `election_status: :Enrolled | :Waived | :Pending | :Expired` * `Enrolled` - Enrolled * `Waived` - Waived * `Pending` - Pending * `Expired` - Expired - `:Enrolled` - `:Waived` - `:Pending` - `:Expired` - `employer_id: String` Exact employer identifier for this enrollment - `employer_name: String` Name of the employer the enrollment is through - `enrollment_window_start: Date` Enrollment / open-enrollment window start date (YYYY-MM-DD) - `in_last_month_of_coverage: bool` True when today falls in the final month of the plan-year coverage window; drives end-of-coverage enrollment actions on the client. - `is_within_enrollment_window: bool` True when today falls inside the enrollment window this member has to answer in; drives enrollment-action availability on the client. - `plan_year_coverage_end: Date` Benefit plan-year coverage end date (YYYY-MM-DD), distinct from this enrollment's coverage_end; null when the plan year is open-ended - `policy_status: :"Coverage Upcoming" | :"Coverage Effective" | :"Coverage Ended" | :Cancelled` * `Coverage Upcoming` - Coverage Upcoming * `Coverage Effective` - Coverage Effective * `Coverage Ended` - Coverage Ended * `Cancelled` - Cancelled - `:"Coverage Upcoming"` - `:"Coverage Effective"` - `:"Coverage Ended"` - `:Cancelled` - `product_code: :EBA | :VPC | :VPC_CORE | 12 more` * `EBA` - Eba Mec * `VPC` - Vpc Enhanced * `VPC_CORE` - Vpc Core * `MEC` - Vpc Mec * `MEC2` - Mec2 * `MEC_PLUS` - Mec Plus * `MVP` - Mvp * `MVP2` - Mvp2 * `MVPSL` - Mvpsl * `MVPSL2` - Mvpsl2 * `VD` - Dental * `VV` - Vision * `ICHRA` - Ichra * `ICHRA_PREMIUM_PLUS` - Ichra Premium Plus * `ICHRA_REIMBURSEMENT_ONLY` - Ichra Reimbursement Only - `:EBA` - `:VPC` - `:VPC_CORE` - `:MEC` - `:MEC2` - `:MEC_PLUS` - `:MVP` - `:MVP2` - `:MVPSL` - `:MVPSL2` - `:VD` - `:VV` - `:ICHRA` - `:ICHRA_PREMIUM_PLUS` - `:ICHRA_REIMBURSEMENT_ONLY` - `product_name: String` Display name of the benefit product - `requires_qle_for_reissue: bool` Whether a qualifying life event would be required to reissue this enrollment under the product and open-enrollment rule at the time this list was read - `carrier_name: String` Insurance carrier name; null when no active carrier period is resolvable - `coverage_end: Date` Coverage window end date (YYYY-MM-DD); null while coverage is open-ended - `coverage_start: Date` Coverage window start date (YYYY-MM-DD) - `employee_deduction_in_cents: Integer` Employee monthly payroll deduction in cents; null unless the row is an election - `employer_contribution_in_cents: Integer` Employer monthly contribution in cents; null unless the row is an election - `enrollment_window_end: Date` Enrollment / open-enrollment window end date (YYYY-MM-DD); null when open-ended - `plan_name: String` Chosen benefit plan name; null unless the row is an election - `premium_in_cents: Integer` Total monthly plan premium in cents; null unless the row is an election - `tier_name: String` Chosen benefit plan tier name (e.g., Employee Only); null unless the row is an election ### Example ```ruby require "vitable_connect" vitable_connect = VitableConnect::Client.new( api_key: "My API Key", environment: "environment_1" # defaults to "production" ) response = vitable_connect.members.list_enrollments("mbr_abc123def456") puts(response) ``` #### Response ```json { "data": [ { "id": "enrl_AAAAAAAAAAAAAAAAAAAAAQ", "employer_id": "empr_AAAAAAAAAAAAAAAAAAAAAQ", "benefit_plan_year_id": "plyr_AAAAAAAAAAAAAAAAAAAAAQ", "benefit_type": "Medical", "product_code": "MEC_PLUS", "requires_qle_for_reissue": false, "product_name": "MEC Plus", "employer_name": "Acme Corp", "carrier_name": "Vitable", "plan_name": "MEC Plus Standard", "tier_name": "Employee Only", "employee_deduction_in_cents": 5000, "employer_contribution_in_cents": 25000, "premium_in_cents": 30000, "coverage_start": "2026-04-01", "coverage_end": "2026-08-31", "cancelled_date": null, "plan_year_coverage_end": "2026-12-31", "enrollment_window_start": "2026-03-01", "enrollment_window_end": "2026-03-31", "election_status": "Enrolled", "policy_status": "Coverage Effective", "in_last_month_of_coverage": true, "is_within_enrollment_window": false }, { "id": "enrl_AAAAAAAAAAAAAAAAAAAAAg", "employer_id": "empr_AAAAAAAAAAAAAAAAAAAAAg", "benefit_plan_year_id": "plyr_AAAAAAAAAAAAAAAAAAAAAg", "benefit_type": "Dental", "product_code": "VD", "requires_qle_for_reissue": true, "product_name": "Vitable Dental", "employer_name": "Acme Corp", "carrier_name": "Vitable", "plan_name": null, "tier_name": null, "employee_deduction_in_cents": null, "employer_contribution_in_cents": null, "premium_in_cents": null, "coverage_start": null, "coverage_end": null, "cancelled_date": null, "plan_year_coverage_end": "2026-12-31", "enrollment_window_start": "2026-03-01", "enrollment_window_end": "2026-03-31", "election_status": "Waived", "policy_status": null, "in_last_month_of_coverage": false, "is_within_enrollment_window": false }, { "id": "enrl_AAAAAAAAAAAAAAAAAAAAAw", "benefit_type": "Dental", "product_code": "VD", "requires_qle_for_reissue": true, "product_name": "Vitable Dental", "employer_name": "Acme Corp", "carrier_name": "Vitable", "plan_name": "Vitable Dental Standard", "tier_name": "Employee Only", "employee_deduction_in_cents": 1200, "employer_contribution_in_cents": 800, "premium_in_cents": 2000, "coverage_start": null, "coverage_end": null, "cancelled_date": "2026-03-15", "plan_year_coverage_end": "2026-12-31", "enrollment_window_start": "2026-03-01", "enrollment_window_end": "2026-03-31", "election_status": "Enrolled", "policy_status": "Cancelled", "in_last_month_of_coverage": false, "is_within_enrollment_window": false } ] } ```