---
title: "Notify Eligible Students"
method: POST
path: "/admin/holiday-rollout/notify-eligible"
tags: ["Admin - Holiday Rollout"]
---

# Notify Eligible Students

`POST /admin/holiday-rollout/notify-eligible`

Send a mobile push (APNs/FCM) to eligible students who have the app.

Students already notified for this campaign are always excluded
(`holiday_rollout_notifications` keeps one marker per student), so the
endpoint can be re-run safely to catch newly eligible students. Use
dry_run=true (default) to preview the audience without sending.

## Request body

- NotifyEligibleRequest
  - `title` string, required
  - `body` string, required
  - `group` string, nullable
  - `dry_run` boolean

## Response `200`

Successful Response

- NotifyEligibleResponse
  - `dry_run` boolean, required
  - `eligible` integer, required — Eligible students in the chosen group(s)
  - `already_notified` integer, required — Eligible students already notified for this campaign
  - `with_device` integer, required — Remaining recipients that have at least one device token
  - `sent` integer
  - `failed` integer

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) · [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) · [OpenAPI document](https://skmtc.dev/excellence-ai/apis/excellence-learning/revisions/2a0c1636fd3b?raw)
