---
title: "Notify Email"
method: POST
path: "/internal/notifications/email"
tags: ["internal"]
---

# Notify Email

`POST /internal/notifications/email`

Email-only dispatch for notifications Modal already inserted.

The modal-side producers (security crons, signals cron) insert their
notification rows directly with one-unread-per-repo dedupe and then
hit this endpoint, so the insert never depends on API availability
while email rendering and Resend config stay backend-side. Callers
only invoke it after a successful (non-deduped) insert, which is
what keeps email volume bounded by the dedupe.

## Headers

- `x-service-token` string, required

## Request body

- NotifyEmailRequest
  - `user_id` string, required
  - `kind` string, required
  - `payload` object

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/repowise/apis/repowise-hosted-api.md) · [All operations](https://skmtc.dev/repowise/apis/repowise-hosted-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/repowise/repowise-hosted-api/revisions/1e57283a9737/schema)
