[BETA] Send a push announcement to app users

Sends an announcement (title + body) as a push and/or in-app notification, and records it in the "Messages" tab of the school's app. The endpoint validates and resolves external references, then dispatches asynchronously — a 200 confirms dispatch, not delivery.

Inline links: when delivery is push_and_inbox the body may contain inline Markdown links — [text](https://url), e.g. Retrouvez tous les détails ici : [Voir le blog](https://edusign.com/blog). The in-app inbox renders them as tappable hyperlinks; the push shows the link text only (a lock-screen notification cannot render links). URLs must be absolute http(s). Inline links are rejected when delivery is push_only (there is no inbox record to render them in).

Scheduling: provide an optional sendAt (ISO 8601 with a timezone — a trailing Z or a numeric offset, must be in the future) to schedule the announcement instead of sending it now. A scheduled announcement returns 202 with the sendAt echoed; it is delivered by the scheduler at that instant (to a granularity of a few minutes). Omit sendAt to send immediately (200). Scheduling is atomic: if the scheduling service is unavailable the request fails with 502 and no message is created, so it is safe to retry.

Availability: this endpoint is only available to schools with a white-label app; it has no effect for schools without one.

Audience note: recipients.type "targeted_users" targets any user stored in the school's users table by their id or external reference — not only students. Some schools register non-student roles there so those users can access the white-label app, so the audience is not limited to actual students.

Public audiences: recipients.type "all" and "unauthenticated" reach anonymous, non-enrolled devices, so they require an active public white-label app. Without it the request is rejected with 403; the other audiences ("authenticated", "targeted_users", "targeted_groups") are unaffected.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

Notification title. The OS truncates the lock-screen preview beyond ~40-60 chars.

string
required

Notification body as plain text. Max 1500 characters for push_and_inbox, 120 for push_only (lock-screen preview). When delivery is push_and_inbox the body may contain inline Markdown links (text) — rendered as hyperlinks in the in-app inbox and flattened to their text in the push. Inline links are not allowed for push_only; URLs must be absolute http(s).

string
required

push_and_inbox delivers a push and records it in the in-app notification centre; push_only delivers a push without an in-app record.

string

Content language. Defaults to the school language when omitted.

string

ISO 8601 date-time to send the announcement at, with a timezone (a trailing Z or a numeric offset, e.g. 2026-07-23T13:00:00+02:00). When omitted the announcement is sent immediately. When set it must be in the future.

recipients
object
required
Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json