## List a benefit plan year's enrollments `employers.list_benefit_plan_year_enrollments(strbenefit_plan_year_id, EmployerListBenefitPlanYearEnrollmentsParams**kwargs) -> SyncPageNumberPage[EmployerListBenefitPlanYearEnrollmentsResponse]` **get** `/v1/employers/{employer_id}/benefit-plan-years/{benefit_plan_year_id}/enrollments` Returns a paginated list of every member with an enrollment in one of an employer's plan years, any election status: what they elected, where their coverage stands, dependent count, carrier, plan, tier, and the plan's total monthly cost. The caller must be authorized for the employer `empr_<...>`; an unknown or unauthorized employer, or an unknown plan year `plyr_<...>`, returns 404. ### Parameters - `employer_id: str` Unique employer identifier (empr_*) - `benefit_plan_year_id: str` Unique benefit-plan-year identifier (plyr_*). - `election_status: Optional[List[Literal["Enrolled", "Expired", "Pending", "Waived"]]]` Filter by election status. Repeat the parameter to match several. - `"Enrolled"` - `"Expired"` - `"Pending"` - `"Waived"` - `limit: Optional[int]` Items per page (default: 20, max: 100) - `page: Optional[int]` Page number (default: 1) - `search: Optional[str]` Case-insensitive search. Matches member name partially, and the `member_id` exactly — either your own reference id or the prefixed `grpmbr_<...>` id. ### Returns - `class EmployerListBenefitPlanYearEnrollmentsResponse: …` - `carrier: Optional[str]` The carrier for this enrollment: the individual-market carrier for an ICHRA plan, otherwise the benefit's own. Null when the benefit has no carrier. - `dependent_count: int` Dependents covered under this enrollment today. Counts the same dependents `premium_in_cents` is priced for, so a dependent whose termination is dated in the future still counts. - `election_status: Literal["Enrolled", "Waived", "Pending", "Expired"]` * `Enrolled` - Enrolled * `Waived` - Waived * `Pending` - Pending * `Expired` - Expired - `"Enrolled"` - `"Waived"` - `"Pending"` - `"Expired"` - `employee_deduction_in_cents: Optional[int]` What the employee is deducted monthly, in cents: `premium_in_cents` less `employer_contribution_in_cents`, floored at zero. Null when unanswered/waived. - `employee_external_reference_id: Optional[str]` Your own reference id for this employee, as you supplied it. Null when you have not set one. - `employee_id: str` Our id for this person's employment with this employer (`empl_<...>`). A person who leaves and is rehired has two. - `employer_contribution_in_cents: Optional[int]` The employer's monthly share of `premium_in_cents`, in cents. Null when unanswered/waived. - `member_first_name: str` The member's first name. - `member_id: str` Our id for the person (`mbr_<...>`). Stable across every employer they work for. - `member_last_name: str` The member's last name. - `plan: Optional[str]` Chosen plan name, or null when unanswered/waived. - `policy_status: Optional[Literal["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"` - `premium_in_cents: Optional[int]` Monthly premium in cents for the chosen plan, dependents included. The plan's own cost, not the employer's share of it. Null when unanswered/waived. - `tier: Optional[str]` Chosen coverage tier, or null when unanswered/waived. ### Example ```python import os from vitable_connect import VitableConnect client = VitableConnect( api_key=os.environ.get("VITABLE_CONNECT_API_KEY"), # This is the default and can be omitted ) page = client.employers.list_benefit_plan_year_enrollments( benefit_plan_year_id="plyr_abc123def456", employer_id="empr_abc123def456", ) page = page.data[0] print(page.employee_external_reference_id) ``` #### Response ```json { "data": [ { "member_id": "mbr_SGVsbG8gV29ybGQh", "employee_id": "empl_V2VsY29tZSB0byBBY21l", "employee_external_reference_id": "EXT-10023", "member_first_name": "Ada", "member_last_name": "Lovelace", "election_status": "Enrolled", "policy_status": "Coverage Effective", "dependent_count": 1, "carrier": "Vitable", "plan": "Vitable Dental PPO", "tier": "Employee Plus Spouse", "premium_in_cents": 12000, "employer_contribution_in_cents": 9000, "employee_deduction_in_cents": 3000 } ], "pagination": { "page": 1, "limit": 20, "total": 66, "total_pages": 4 } } ```